feat(standards): drop the site CI variant + require changelog reconciliation before release
- Remove the push-triggered build-and-deploy-site pipeline and every "site" reference; Type B is now a single tag-triggered service pipeline (service-docker.yaml). - Inventory now covers packages + the auth-server service only (repos.json 11 -> 9; docs/mcp are no longer part of the standard). - Versioning standard: reconcile [Unreleased] against the last tag before promoting, and always show proposed entries to the user for approval. - Update registry.py compliance/release text and list_repos types, build.py component descriptions, and rebuild the MCP bundle + lib/wiki HTML.
This commit is contained in:
16
registry.py
16
registry.py
@@ -105,10 +105,10 @@ _COMPLIANCE_TEXT = (
|
||||
"For each repository, bring it to the standard for its `type`:\n\n"
|
||||
"- **package** — `version` in `pyproject.toml`; root `CHANGELOG.md`; Drone file\n"
|
||||
" from `get_drone_template(\"drone-pypi\")` (`python-lib.yaml`, tag-triggered).\n"
|
||||
"- **service / site** — root `VERSION`; root `CHANGELOG.md`; Drone file from\n"
|
||||
" `get_drone_template(\"drone-service\")` (`service-docker.yaml`; tag-triggered\n"
|
||||
" service variant, push-triggered site variant). The service must read its\n"
|
||||
" version from `VERSION` (e.g. a build arg) — never hardcode it.\n\n"
|
||||
"- **service** — root `VERSION`; root `CHANGELOG.md`; Drone file from\n"
|
||||
" `get_drone_template(\"drone-service\")` (`service-docker.yaml`, tag-triggered\n"
|
||||
" with a `tag == VERSION` guard). The service must read its version from\n"
|
||||
" `VERSION` (e.g. a build arg) — never hardcode it.\n\n"
|
||||
"Steps:\n"
|
||||
"1. Inspect each repo (`git -C <path> tag`, version file, `CHANGELOG.md`,\n"
|
||||
" `.drone.yml`) and list the gaps — never assume.\n"
|
||||
@@ -129,7 +129,7 @@ _RELEASE_TEXT = (
|
||||
"1. Wait for that explicit go-ahead.\n"
|
||||
"2. Find the commit that introduced the version bump `x.y.z`:\n"
|
||||
" - package: `git log -S 'version = \"x.y.z\"' -n 1 --format='%H %s' -- pyproject.toml`\n"
|
||||
" - service / site: `git log -S 'x.y.z' -n 1 --format='%H %s' -- VERSION`\n"
|
||||
" - service: `git log -S 'x.y.z' -n 1 --format='%H %s' -- VERSION`\n"
|
||||
"3. Verify that commit's version file equals `x.y.z` (the Drone guard enforces\n"
|
||||
" `tag == version`).\n"
|
||||
"4. Tag **only** that commit, lightweight and bare: `git tag x.y.z <sha>`.\n"
|
||||
@@ -517,13 +517,13 @@ class StandardsMCPServer(MCPServer):
|
||||
def list_repos(type: str | None = None) -> list[dict[str, Any]]:
|
||||
"""List the repositories covered by the CI and versioning standards.
|
||||
|
||||
Each entry has: ``name``, ``type`` ("package" | "service" | "site"),
|
||||
Each entry has: ``name``, ``type`` ("package" | "service"),
|
||||
``path`` (relative to the aetos/ workspace root), ``version_source``
|
||||
("pyproject.toml" | "VERSION"), ``drone`` (the template file),
|
||||
``trigger`` ("tag" | "push"), ``docs`` kinds, and ``mcp``.
|
||||
``trigger`` ("tag"), ``docs`` kinds, and ``mcp``.
|
||||
|
||||
Args:
|
||||
type (str | None): Optional filter, e.g. "package" or "site".
|
||||
type (str | None): Optional filter, e.g. "package" or "service".
|
||||
|
||||
Returns:
|
||||
list[dict[str, Any]]: Matching repository entries.
|
||||
|
||||
Reference in New Issue
Block a user