feat(standards): MR-based tag strategy + repository inventory (registry://repos)
Versioning standard now documents the MR flow: bump pyproject.toml/VERSION and promote CHANGELOG in the MR (referencing the version/tag, not a commit id), merge/squash, then tag the resulting commit. Adds the agent-assisted tagging procedure (wait for the go-ahead, find the version-bump commit, tag only it, ask the user to push) to both the reference page and the releasing wiki runbook. Adds the repo inventory (src/repos.json -> mcp/repos.json), the registry://repos resource + list_repos tool, the 15_repository_inventory lib page, and two MCP prompts: compliance (remediate repos) and release (agent tagging).
This commit is contained in:
74
standards/src/lib/15_repository_inventory.md
Normal file
74
standards/src/lib/15_repository_inventory.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Repository Inventory
|
||||
|
||||
## Summary
|
||||
|
||||
The canonical list of Aetos repositories covered by the CI and versioning
|
||||
standards, with the artifact each one produces, its version source, and its
|
||||
Drone shape. Every entry maps to the contract in
|
||||
[11 – Versioning & Changelog](11_versioning_and_changelog.md) and the two CI
|
||||
files in [10 – Drone Pipelines](10_drone_pipelines.md).
|
||||
|
||||
The same data is published machine-readably as the `registry://repos` MCP
|
||||
resource (and the `list_repos` tool), sourced from `standards/src/repos.json`.
|
||||
Paths are relative to the `aetos/` workspace root.
|
||||
|
||||
---
|
||||
|
||||
## Packages (Type A)
|
||||
|
||||
A wheel + sdist published to the private index. Version source is
|
||||
`pyproject.toml`; Drone file is `python-lib.yaml` (tag-triggered).
|
||||
|
||||
| Repo | Path | Docs | MCP server |
|
||||
|------|------|------|------------|
|
||||
| `dagpipe` | `dagpipe` | lib, wiki | `dagpipe:8006` |
|
||||
| `doc-forge` | `doc-forge` | lib, wiki | `docforge:8001` |
|
||||
| `hexa` | `hexa` | lib, wiki | `hexa:8008` |
|
||||
| `mail-intake` | `mail-intake` | lib, wiki | `mail_intake:8002` |
|
||||
| `mongo-ops` | `mongo-ops` | lib, wiki | `mongo_ops:8007` |
|
||||
| `omniread` | `omniread` | lib, wiki | `omniread:8003` |
|
||||
| `openapi-first` | `openapi-first` | lib, wiki | `openapi_first:8004` |
|
||||
| `py-jwt` | `py-jwt` | lib, wiki | `jwtlib:8005` |
|
||||
|
||||
---
|
||||
|
||||
## Services & sites (Type B)
|
||||
|
||||
A container image pushed to the registry and run on the Docker host. Version
|
||||
source is the `VERSION` file; Drone file is `service-docker.yaml`.
|
||||
|
||||
| Repo | Type | Path | Trigger | Docs |
|
||||
|------|------|------|---------|------|
|
||||
| `auth-server` | service | `auth-server` | tag | api, lib, wiki |
|
||||
| `docs` | site | `docs` | push | — |
|
||||
| `mcp` | site | `mcp` | push | — |
|
||||
|
||||
The **service** variant is tag-triggered and enforces `tag == VERSION`. The
|
||||
**site** variant is push-triggered, ships `:latest`, and has no tag guard.
|
||||
|
||||
---
|
||||
|
||||
## Required files per repo
|
||||
|
||||
| Type | Version source | Changelog | Drone |
|
||||
|------|----------------|-----------|-------|
|
||||
| package | `pyproject.toml` | `CHANGELOG.md` | `python-lib.yaml` |
|
||||
| service / site | `VERSION` | `CHANGELOG.md` | `service-docker.yaml` |
|
||||
|
||||
Every covered repository must be able to satisfy `tag == version`:
|
||||
the version file (never a commit id) is bumped in the release MR, the MR is
|
||||
merged, and the tag is created on the merged commit.
|
||||
|
||||
---
|
||||
|
||||
## Reading this at runtime
|
||||
|
||||
- Resource: `registry://repos`
|
||||
- Tool: `list_repos()`
|
||||
- Humans: this page (mirror of `standards/src/repos.json`).
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- [10 – Drone Pipelines](10_drone_pipelines.md) · [11 – Versioning & Changelog](11_versioning_and_changelog.md) · [13 – Library Registry](13_library_registry.md)
|
||||
Reference in New Issue
Block a user