Skip to content

feat: add make patch/minor/major version bump targets - #250

Merged
SkyeAv merged 2 commits into
mainfrom
feat/make-version-bumps
Nov 4, 2026
Merged

SkyeAv merged 2 commits into
mainfrom
feat/make-version-bumps

Conversation

@SkyeAv

@SkyeAv SkyeAv commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Adds three Makefile targets that increment the release version everywhere the release workflow looks, making a chore(release): X.Y.Z commit mechanical.

Version bump script

  • Adds scripts/bump_version.py (patch / minor / major, optional --date), updating the four surfaces a release commit touches (shape taken from the 22.2.2 release commit): the version key in pyproject.toml [project], the [[package]] tablassert entry in uv.lock, the version: line in CITATION.cff, and CHANGELOG.md.
  • Changelog roll: an existing ## Unreleased heading becomes ## X.Y.Z - YYYY-MM-DD with its body kept; with no Unreleased section an empty dated section opens above the last release. Changelog prose stays manual; released sections are never rewritten.
  • All-or-nothing: every surface is parsed and transformed before the first write, so a parse failure exits non-zero with the tree byte-identical.
  • Deliberately untouched: rust/Cargo.toml - the tablassert-rs crate is versioned independently and no release commit has ever bumped it.

Makefile and docs

  • Adds make patch / make minor / make major running the script via uv run; .PHONY updated.
  • CONTRIBUTING.md task-runner table gains the three targets plus a release-flow paragraph; AGENTS.md build section notes the targets.

Testing

  • uv run pytest tests/test_bump_version.py -q -> 20 passed (bump math incl. 9-boundary carry, per-surface edits, uv.lock scoping against a same-version decoy package, Unreleased roll and insert, all-or-nothing failure, real-checkout round trip).
  • make check on an 80-core remote box -> check_rc=0: pytest 1352 passed, 1 skipped, cargo test 156 passed (127 + 11 + 17 + 1), clippy clean, ruff/format/pyright green.
  • uv lock --check -> resolved 139 packages (repo tree unmutated by testing).
  • npx markdownlint-cli2 -> 0 issues in 24 files.

Deferred

  • The two initial test_realworld_configs failures on the remote box were environmental (LANG=en_US makes Python read fixtures as non-UTF-8; PYTHONUTF8=1 fixes it, blob byte-identical to origin/main). A PYTHONUTF8=1 default or UTF-8 locale enforcement could be a follow-up if others hit it.

@coderabbitai

coderabbitai Bot commented Nov 4, 2026

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d2a141ac-368e-4236-acef-a418f3b6da99
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@SkyeAv SkyeAv changed the title feat/make version bumps feat: add make patch/minor/major version bump targets Nov 4, 2026
@SkyeAv
SkyeAv merged commit 1285c69 into main Nov 4, 2026
9 checks passed
SkyeAv added a commit that referenced this pull request Nov 9, 2026
Cut 22.3.0 and bump the package version in pyproject.toml,
CITATION.cff, and uv.lock.

Minor: add mechanical patch/minor/major release targets (#250) and
share one Unicode-aware level-two filter between fullmap build and
query paths, fixing non-ASCII term resolution (#252). Existing
fullmaps must be rebuilt with build-fullmap after upgrading; the
on-disk schema tag is unchanged.

The real-checkout bump test now derives its expected patch version
from pyproject.toml instead of pinning 22.2.2.

Changelog:
- Added the 22.3.0 - 2026-11-09 section covering #250 and #252
  with PR links and the fullmap rebuild requirement.

Docs: added the PyPI downloads badge to README.md.

Testing:
- make check -> Ruff, formatting, Pyright, and Clippy passed;
  Python 1355 passed, 1 skipped; Rust 158 passed, 1 ignored.
- uv lock --check -> resolved 139 packages.
- uv run mkdocs build --strict -> documentation built.
- npx markdownlint-cli2 -> 0 issues in 24 files.
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