Release process¶
This is the maintainer cut. .github/workflows/release.yml only
runs gh release create when a v* tag is pushed. Versions,
newsfragments, bindings wraps, and the Zenodo pin are not
automated.
d-SEAMS is five packages:
repo |
product |
|---|---|
|
|
|
|
|
|
periodic k-nearest neighbour search |
|
|
Bindings do not live in seams-core. -Dwith_python=true and
-Dwith_lua=enabled are Meson errors that name those repositories.
Do not add a language binding here. Do not resurrect
yodaStruct -c or conf.yaml.
Checklist¶
Feature work is on
main, or on a native GitHub stack that lands onmain.CI is green on the merge commit (
CIandDocs).Collect Keep a Changelog fragments under
changelog.d/that are not already inCHANGELOG.md. Name each file+slug.added.md(orchanged,deprecated,removed,fixed,security). Fragments whose text is already inCHANGELOG.mdreprint those notes if they stay in the directory. Then:towncrier build --version X.Y.ZThat writes
CHANGELOG.mdand removes the consumed fragments.Bump
pixi.toml,meson.build, andCITATION.cfftogether. Pass--version X.Y.Zto towncrier; do not store a stale version intowncrier.toml. Syncdocs/orgmode/changelog.orgwith the newCHANGELOG.mdsection.nix/package.nixanddocs/source/Doxyfile_seams.cfgPROJECT_NUMBERalso carry a version string; do not leave them behind the cut.Export org docs with
pixi run -e docs docbld(same command as the contributing page andci_docs.yml). Org underdocs/orgmode/is the source. RST underdocs/source/is generated and is not committed.Open a
chore: cut X.Y.Zpull request. Merge when CI is green.Tag
vX.Y.Zond-SEAMS/seams-coreand push the tag.release.ymlmints the GitHub release (gh release create --generate-notes).Point PydSEAMSlib and yodaStruct
subprojects/seams-core.wraprevisionat that tag. Bump those package versions to the sameX.Y.Zwhen the wrap is the only change. When the wrap stays and a front end binds new engine surfaces, cut a frontend-only minor: keep the wrap tag, bump the package version, and tag that repository. Tag those repositories on their own schedule.Zenodo: run
repro/stage_zenodo.shand pin the software in that record to the release tag, never a commit. Do not mint a new DOI version for prose. Seerepro/zenodo/README.md.GitHub native stacked PRs are same-repo only. Use
gh stack linkto attach PRs andgh stack mergeto land them. Cross-fork stacks are not supported. Merge-top lands the whole stack. Usegh stack merge(async stack merge), not a lonegh pr mergeof a mid-stack PR, if the stack object is to stay intact.
Version files¶
seams-core cut:
file |
field |
|---|---|
|
|
|
|
|
|
|
towncrier output for |
|
new section from |
|
|
|
|
Front ends, after the engine tag exists:
file |
field |
|---|---|
|
|
PydSEAMSlib |
package version |
PydSEAMSlib |
|
yodaStruct |
package version |
yodaStruct |
|
Newsfragments¶
One file for each user-visible change, under changelog.d/,
named +slug.<type>.md or <github-issue>.<type>.md. Types are
the Keep a Changelog set: added, changed, deprecated,
removed, fixed, security. Write the fragment in the same
pull request as the change. The cut in step 3 consumes only
fragments that are not already reflected in CHANGELOG.md.
Every d-SEAMS package uses this layout.