Repository navigation
feat(release): commit a release manifest the site reads from main - #2560
Merged
Merged
Conversation
docs/releases.json lists every results release, newest first, so fedcourts.ai can build its Results index from main and publishing a release needs no site change. ReleaseManifest validates it (URL-safe unique slugs, unique results/ tags, newest first, docs/ Markdown paths, bare DOIs) and tests/test_release_manifest.py checks the committed file and that each entry's summary and audit exist at its tag (or in the working tree where the tag is absent). docs/pipeline.md states where it lives and that a release's entry rides the release PR via staging. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DfjaLBEcsn9UBUSe33fpwE
…ifest The site serves /results/<slug> from the documents at the entry's tag, so a tag not named for its slug would show one release under another's address. Labels are unique too, and code_doi is described as the software record's concept DOI. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DfjaLBEcsn9UBUSe33fpwE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by ModelMirror · project thread
What & why
Before: the site kept its own list of releases (
src/lib/releases.jsin fedcourts.ai), so every new release also needed a fedcourts.ai change.After:
docs/releases.jsonlists every release, newest first, and the site reads it frommain. A new release now reaches the site through its own PR, its tag, and a promotion. The manifest is validated for:results/<slug>;docs/;How:
stagingand a promotion. It is not data written by a writer.docs/pipeline.mdadds this to the release checklist.code_doi10.5281/zenodo.22966596, the software record's concept DOI, which its summary cites.ReleaseManifestpydantic model is exported toschemas/.docs/releases.jsonfalls in CI's code lane, so a manifest change runs the full gate.Artifact: this is the source the public Results page reads its release list from.
Effect check (after promotion):
curl -sf https://raw.githubusercontent.com/ModelMirrorAI/fedcourtsai/main/docs/releases.jsonreturns the manifest, and ModelMirrorAI/fedcourts.ai#37 then builds green.Pairs with: ModelMirrorAI/fedcourts.ai#37 (closes fedcourts.ai#31). That PR merges only after this one reaches
main.Review:
code-reviewer, which also covered the docs change, found no blockers. I applied both of its recommended changes and all three nits that needed code: the tag must name the slug, thecode_doidescription, and unique labels. I also noted the Release 1 ordering above. The checked values (tag, publish date, both DOIs, document paths at the tag) match the published release.Merge: no owned paths, so I'll merge this to
stagingmyself once CI is green.Linked issue
Closes #2356
Checklist
stagingand targetsstaging; focused on one thing.tests/test_release_manifest.pypasses (20) and docs-tests pass (10). The two full-suite failures are the known root/proxy container cases (tests: two tests fail only in containers that run as root or behind an HTTPS proxy #2388).schemas/.docs/pipeline.md).🤖 Generated with Claude Code
https://claude.ai/code/session_01DfjaLBEcsn9UBUSe33fpwE