Skip to content

Name the changelog timezone and all five version places - #312

Merged
chris-colinsky merged 2 commits into
mainfrom
docs/releasing-timezone-and-version-places
Oct 5, 2026
Merged

chris-colinsky merged 2 commits into
mainfrom
docs/releasing-timezone-and-version-places

Conversation

@chris-colinsky

Copy link
Copy Markdown
Member

Two gaps in RELEASING.md, each of which cost time during the v0.17.0 release.

The changelog date had no timezone

The requirement said "the date matches the day the rc tag is pushed" and stopped there. A tag pushed in the evening US-Pacific carries a UTC timestamp on the following day, so for a few hours every night the two clocks disagree — and a reviewer reading UTC calls a correct heading stale, which is exactly what happened on #309.

The convention the tags actually show is the maintainer's local day:

changelog tag local
v0.17.0 2026-10-04 2026-10-04 matches
v0.16.0 2026-07-18 2026-07-18 matches
v0.15.0 2026-06-22 2026-06-23 drifted
v0.14.0 2026-06-17 2026-06-17 matches

v0.16.0 and v0.14.0 both have UTC timestamps on the day after their headings, which is what makes the local reading the live convention rather than a coincidence. v0.15.0 is the counter-example and it is simply wrong — a day behind its own local tag day, shipped and never corrected.

So the doc now names the timezone and says to set the date immediately before merging the version bump, because setting it earlier is what produces drift.

The version lands in five files, not three

The item named pyproject.toml, __version__ and the smoke-test assertion. Two more carry it:

  • uv.lock locks the local package's own version
  • src/openarmature/AGENTS.md stamps version X.Y.Z (spec vA.B.C) into its header

Neither fails anything until an artifact is built, which is what makes them easy to miss. Both are generated, so the doc says to run scripts/build_agents_md.py and let uv touch the lock rather than hand-editing either.

The rc/real-release two-commit requirement was already documented and is now stated where someone reads it while doing the work, rather than only in the comment at the top of release.yml. I read past it once this cycle and nearly pushed v0.17.0-rc1 against a pyproject saying 0.17.0, which the workflow would have rejected.

Scope

Documentation only. No behaviour, no code. tests/test_smoke.py passes unchanged.

Two gaps that each cost time during the v0.17.0 release.

The changelog date requirement never named a timezone. A tag pushed in
the evening US-Pacific carries a UTC timestamp on the next day, so for a
few hours every night the two disagree and a reviewer reading UTC calls a
correct heading stale, which is exactly what happened on #309. The
convention the tags actually show is the maintainer's local day: v0.16.0
and v0.14.0 both have headings a day behind their UTC timestamps.
v0.15.0 is the counter-example and it is simply wrong, a day behind its
own local tag day.

The version-bump item named three files. Five carry it. uv.lock locks the
local package's own version and the bundled AGENTS.md stamps it into its
header, and neither fails anything until an artifact is built, so both
are easy to miss. They are generated, so the doc says to run the
generator rather than hand-edit.

Also records why the rc and real-release bumps cannot be one commit, in
the place someone reads while doing it rather than in the comment at the
top of the workflow.
Copilot AI balanced review requested due to automatic review settings October 5, 2026 06:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Later release procedures omit two newly documented version locations, and the stated CI behavior is inaccurate.

Review effort: Balanced
Findings: 1 Low severity

Open (1)
What changed in this PR

Clarifies release documentation to prevent changelog date and package version drift.

Changes:

  • Defines changelog dates using the releasing maintainer’s local timezone.
  • Documents five package-version locations and generated-file workflows.
  • Reinforces separate RC and final-release version commits.
File Description
RELEASING.md Expands changelog dating and version-bump guidance.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread RELEASING.md Outdated
The claim that nothing fails until the artifact is built was wrong three
ways. A stale uv.lock fails the uv-lock pre-commit hook at commit time
and uv sync --frozen in both CI and the release workflow; a stale bundled
AGENTS.md fails test_agents_md_matches_generator_output.

Saying no signal exists when three do is worse than saying nothing,
because it teaches a maintainer not to look for the failure that will
actually stop them.

The two generated files are easy to miss because the checklist omitted
them, not because they go undetected: you found out from a failing hook
instead of from the doc, which is backwards for a checklist meant to
prevent surprises. Naming each mechanism is the more useful form anyway,
since it says which failure corresponds to which omission.
@chris-colinsky
chris-colinsky merged commit b80a1d2 into main Oct 5, 2026
5 checks passed
@chris-colinsky
chris-colinsky deleted the docs/releasing-timezone-and-version-places branch October 5, 2026 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants