Releases: antikas/pinax-tracker
Release list
Pinax 0.2.0
Pinax 0.2.0 makes every state change visible to every other clone the moment the command returns, and gives a claim a way to be released and to expire.
What is new since 0.1.3:
- Every command that appends an event (add, claim, done, block, park, priority, dep, note, annul) runs one publish sequence: it fetches
origin, folds the union of the local log and the remote default branch's committed shards, appends the event, regenerates the board and item pages, commits the shard and the projection with the repository's hooks running, and pushes the remote default branch when it is checked out. Two clones that both append before either pushes resolve deterministically; a skewed clock is refused before anything is appended; a projection conflict is resolved by regeneration.--offline(orPINAX_OFFLINE=1) commits locally only;claimalways needs the remote. The exit codes are documented in the README (0, 2, 4, 5, 7). pinax release ITEM_ID --reason TEXTreleases a claim so another actor can take the item;pinax policy claim-expiry --hours Nsets a repository-level expiry after which a claim is treated as released, deterministically from the log.--under ITEM_IDonready,nextandstatusrestricts the view to one ancestor's subtree; the JSON forms gain anunderkey (ready --jsonbecomes{"ready": [...], "under": "<id>"}only when--underis given, and keeps its bare array otherwise).statusshows a parent's roll-up beside its own status.- Two decision records accompany the code: ADR-006 (sync on mutation) and ADR-007 (claim release and expiry).
Upgrade note. AutoBuild 0.5.0 and the coordinated AutoBuild skill still add, commit and push the tracker directory themselves after claim and done. A machine running either keeps its pinax command at 0.1.3 until the AutoBuild follow-up (Y1) that hands those commits to Pinax has landed; upgrading before then makes both sides commit the same change.
Install: pipx install pinax-tracker==0.2.0 or python -m pip install pinax-tracker==0.2.0. Python 3.10 or later and Git.
Provenance: the public tree is the release export of private commit 247ff2a9e430fe9c9d3f6ae8a788e56ac80face3; the projected tree's own suite passed on Python 3.11 on Windows (382 passed, 1 skipped, 313 deep-marked tests deselected). The wheel is reproducible from the tagged tree with SOURCE_DATE_EPOCH set to the tagged commit's time; the sdist's gzip header carries its build time, so its hash is the one recorded in SHA256SUMS. The published distributions are the files attached here, verified against SHA256SUMS by the publishing workflow.
Known limits carried from 0.1: the predecessor field is not hashed and there is no remote anchoring or signature.
Pinax 0.1.3
Pinax 0.1.3 completes the PyPI package metadata: the project page now renders the README, and the package declares its MIT licence and repository links.
The runtime source is identical to 0.1.2.
Pinax 0.1.2
Pinax 0.1.2 publishes the tracker to PyPI as pinax-tracker.
The package installs with pip install pinax-tracker or pipx install pinax-tracker and provides the pinax command. The runtime is standard-library Python and depends only on Git.
The source is otherwise identical to 0.1.1: the full CLI, deterministic event fold and projections, portfolio and status views, tests, hooks, linked-worktree support, and strict event validation.
Version 1 deliberately does not hash the predecessor field and provides no remote anchoring or signatures. These limits are documented.
Pinax 0.1.1
Pinax 0.1.1 publishes the complete current Git-native tracker as a clean public release.
It includes the full CLI, deterministic event fold and projections, portfolio and status views, tests, hooks, linked-worktree support, and stricter event validation.
The public source and documentation are finished-product material. Obsolete walkthrough media has been removed.
Version 1 deliberately does not hash the predecessor field and provides no remote anchoring or signatures. These limits are documented.