{% extends "public_base.html" %} {% import "marketplace/_macros.html" as mk %} {% block title %}{{ _("Publish your feature") }} ยท {{ _("Marketplace") }}{% endblock %} {% block hero %}

{{ _("Publish your feature") }}

{{ _("There is no upload button, and that is the point. Releasing on your own GitHub is publishing, and the marketplace index is rebuilt from your feature's contract.") }}

{% endblock %} {% block content %}
  1. 1

    {{ mk.icon("package") }}{{ _("Build your feature") }}

    {{ _("Scaffold it in your SPLENT workspace. The contract (what it provides and what it requires) is inferred from the code and kept in the feature's own pyproject.toml. You never write index data by hand.") }}

    $ splent feature:create my_feature
  2. 2

    {{ mk.icon("tag") }}{{ _("Release it") }}

    {{ _("One command bumps the version, regenerates the contract, tags the repository and uploads to PyPI. The Git tag IS the publication. There is no separate submission step.") }}

    $ splent feature:release
  3. 3

    {{ mk.icon("git-branch") }}{{ _("Get listed") }}

    {{ _("Open a pull request adding your GitHub organisation or repository to the registry file of the index. Once reviewed and merged, the indexer reads your released tags. You never push data into the marketplace.") }}

    registry.toml in splent-io/splent_index {{ mk.icon("external-link", 13) }}

  4. 4

    {{ mk.icon("check-circle") }}{{ _("You are in") }}

    {{ _("The index rebuilds automatically from the latest released tags. Your feature appears here with its contract, dependencies and collisions. To fix or update anything, just release again.") }}

    {{ _("Browse the catalog") }} {{ mk.icon("arrow-right", 13) }}

{% endblock %}