Skip to content

Design candidate: an ecosystem-tools listing class (the old directory's 'other' category) #4

Description

@davidpesce

Design candidate, not scheduled. Filed so the idea has a public home; motivated by tmuras/moosh#569.

The gap

The old plugins directory had an "other" category for ecosystem tools that are not Moodle plugins: Moosh, MDK, development tooling. The Marketplace migration dropped the category, so those tools lost their listing and their download links now 404. Moosh is the flagship case: an external CLI tool that deliberately runs outside any Moodle instance, with no component name and no version.php. Its maintainer has concluded, correctly, that converting it into Moodle plugin structure is not feasible.

camp cannot list such tools today, and the mismatch is structural rather than procedural. Everything in the data model hangs off the component frankenstyle name and root version.php: the namespace primary key, the schema component pattern, moodle-version ints, supported-Moodle ranges, the moodle-plugin-ci legs, tier semantics. Seeding a tool under an invented component name would assert a plugin type that is false.

What a deliberate design would need

The core verification machinery does not actually require plugin-ness. Deterministic rebuild at a tag, the hash ledger, append-only history, advisories, and the archive all work for any git-tagged project. The parts that need design:

  • A separate namespace: no frankenstyle, so its own naming rules that cannot collide with component names. Probably a tools/ tree with plain names.
  • A reduced tier model: source-verified rebuild is achievable, but there is no moodle-version, no supported range, no plugin-ci legs, so the trust story caps lower and the schema must say so honestly.
  • A scope fence, because "other" invites everything. The directory-era precedent is a reasonable one: tools for operating or developing Moodle, with an established community footprint.
  • An RFC scope amendment: the RFC is explicitly a plugin repository, so this is a decision about mission, not a seeding tweak.

Why it may be worth doing

The niche is orphaned: the Marketplace explicitly does not serve non-plugins, so there is no competitive tension, and it fits the registry's archive-as-memory role. The directory-era "other" listings are part of the ecosystem's history.

Why not now

The design cost is real (schema, namespace, site surfaces, RFC amendment) and the practical emergency in the motivating case does not need camp: GitHub releases already distribute Moosh. Parked until the current queue clears.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions