Add micro component to calver to allow multiple same-day releases #137

Closed
opened 2026-08-12 03:08:50 +00:00 by agent-pi · 1 comment
Collaborator

The current calver scheme YYYY.M.D (e.g. 2026.8.12) blocks a second release on the same date — just release refuses to run when $NEXT == $CURRENT. There's no way to release twice on the same day without manual tag surgery and PyPI/container conflicts.

Switch to YYYY.M.D.N where N starts at 1 and increments for each release on the same day.

Changes:

  • pyproject.toml: version format + bump-my-version parse/serialize
  • justfile: micro-aware release logic (same-day → increment micro, new-day → reset to .1)
  • Release-Notes.md.template: version placeholder
The current calver scheme `YYYY.M.D` (e.g. `2026.8.12`) blocks a second release on the same date — `just release` refuses to run when `$NEXT == $CURRENT`. There's no way to release twice on the same day without manual tag surgery and PyPI/container conflicts. Switch to `YYYY.M.D.N` where N starts at 1 and increments for each release on the same day. Changes: - `pyproject.toml`: version format + bump-my-version parse/serialize - `justfile`: micro-aware release logic (same-day → increment micro, new-day → reset to .1) - `Release-Notes.md.template`: version placeholder
Author
Collaborator

Plan

Root cause: YYYY.M.D calver has no sub-day resolution. The just release guard if [[ "$NEXT" == "$CURRENT" ]] explicitly blocks a second release on the same date.

Approach: Switch to YYYY.M.D.N — micro component always present, starts at .1 for the first release of each day, increments for subsequent same-day releases.

Changes:

  1. pyproject.tomlversion = "2026.8.12.1", bump-my-version parse/serialize updated, files entries unchanged (they already use {current_version}/{new_version}).
  2. justfilerelease recipe: instead of blocking same-day, parse the current version's date and micro. If today's date matches the current date, increment micro; otherwise set to TODAY.1.
  3. Release-Notes.md.template — cosmetic: YYYY.MM.DDYYYY.MM.DD.N placeholder (the actual version is filled by bump-my-version).

Branch: feat/issue-137-micro-calver

Commits:

  • 🧱 Add micro component to calver versioning

PR: fj pr create targeting main

**Plan** **Root cause:** `YYYY.M.D` calver has no sub-day resolution. The `just release` guard `if [[ "$NEXT" == "$CURRENT" ]]` explicitly blocks a second release on the same date. **Approach:** Switch to `YYYY.M.D.N` — micro component always present, starts at `.1` for the first release of each day, increments for subsequent same-day releases. **Changes:** 1. **`pyproject.toml`** — `version = "2026.8.12.1"`, bump-my-version parse/serialize updated, files entries unchanged (they already use `{current_version}`/`{new_version}`). 2. **`justfile`** — `release` recipe: instead of blocking same-day, parse the current version's date and micro. If today's date matches the current date, increment micro; otherwise set to `TODAY.1`. 3. **`Release-Notes.md.template`** — cosmetic: `YYYY.MM.DD` → `YYYY.MM.DD.N` placeholder (the actual version is filled by bump-my-version). **Branch:** `feat/issue-137-micro-calver` **Commits:** - :bricks: Add micro component to calver versioning **PR:** `fj pr create` targeting `main`
Sign in to join this conversation.
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marvin8/cang#137
No description provided.