Skip to content

Release when uxarray does, not on the fifth of the month - #140

Merged
rajeeja merged 1 commit into
mainfrom
rajeeja/calver-release
Sep 11, 2026
Merged

rajeeja merged 1 commit into
mainfrom
rajeeja/calver-release

Conversation

@rajeeja

@rajeeja rajeeja commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Versions become CalVer mirroring upstream uxarray's year.month with our own patch, read from PyPI rather than upstream's tags, which mix v2026.09.0 and v2026.4.0; zero padding is refused because PEP 440 strips it and the dist would disagree with its own tag. The release commit moves both ends of the uxarray pin, since a floor raised without its ceiling makes the package uninstallable beside the release it was just tested against. The workflow no longer tags or publishes — green opens a release pull request, red opens an issue, and the cutover from 0.3.1 stays a manual dispatch.

The release poll ran at 05:00 on the 5th, but upstream skipped 2026.01 and
2026.05, shipped twice in August, and released 2026.09.0 on the 10th, so the
poll was early or late every time and never on the thing it was waiting for.
It now runs daily and reads the newest uxarray from PyPI rather than from
upstream's tags, which mix v2026.09.0 and v2026.4.0.

Versions become CalVer: upstream's year.month, our own patch. Zero padding is
refused where it enters, because PEP 440 strips the leading zero and a dist
built from 2026.09.0 publishes as 2026.9.0 and disagrees with the tag it came
from. The release commit moves both ends of the uxarray pin; raising the floor
alone would leave a ceiling written for the previous month and make the
package uninstallable beside the release it was just tested against. An
unreachable PyPI decides nothing: the version falls back to a patch bump and
the pin is left as reviewed.

The workflow no longer tags, creates a GitHub release, or dispatches the
publish job. Green opens a release pull request against the upstream version
it was checked with, red opens an issue naming it, and a human merge is the
only path to PyPI. The checks run with --no-sync so the explicit install of
that upstream release is not undone by a re-sync to uv.lock.

The cutover from 0.3.1 is deliberately not here; it is a manual dispatch.
@rajeeja
rajeeja force-pushed the rajeeja/calver-release branch from e8b30d1 to be0bc0c Compare September 11, 2026 16:12
@rajeeja
rajeeja merged commit 4f9f6cf into main Sep 11, 2026
13 checks passed
@rajeeja
rajeeja deleted the rajeeja/calver-release branch September 11, 2026 16:22
rajeeja added a commit that referenced this pull request Sep 12, 2026
The release poll ran at 05:00 on the 5th, but upstream skipped 2026.01 and
2026.05, shipped twice in August, and released 2026.09.0 on the 10th, so the
poll was early or late every time and never on the thing it was waiting for.
It now runs daily and reads the newest uxarray from PyPI rather than from
upstream's tags, which mix v2026.09.0 and v2026.4.0.

Versions become CalVer: upstream's year.month, our own patch. Zero padding is
refused where it enters, because PEP 440 strips the leading zero and a dist
built from 2026.09.0 publishes as 2026.9.0 and disagrees with the tag it came
from. The release commit moves both ends of the uxarray pin; raising the floor
alone would leave a ceiling written for the previous month and make the
package uninstallable beside the release it was just tested against. An
unreachable PyPI decides nothing: the version falls back to a patch bump and
the pin is left as reviewed.

The workflow no longer tags, creates a GitHub release, or dispatches the
publish job. Green opens a release pull request against the upstream version
it was checked with, red opens an issue naming it, and a human merge is the
only path to PyPI. The checks run with --no-sync so the explicit install of
that upstream release is not undone by a re-sync to uv.lock.

The cutover from 0.3.1 is deliberately not here; it is a manual dispatch.
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.

1 participant