Repository navigation
Releases: leonkacowicz/trck
Release list
v0.31.1
What's Changed
- homebrew: pin the v0.30.1 checksums by @leonkacowicz in #63
- Fix repo Git setup for ref-backed trackers by @leonkacowicz in #64
- list: --contains TEXT, body search as a filter by @leonkacowicz in #65
- serve: the HTTP layer — loopback listener, compiled-in assets, clean shutdown by @leonkacowicz in #67
- help:
--helplists the verbs instead of describing the project by @leonkacowicz in #66 - serve: poll and fast-forward the tracker ref on a timer by @leonkacowicz in #68
- serve: POST to Op — the page's staged edits become in-process write verbs by @leonkacowicz in #69
- serve: SSE re-render — ref movement pushes to open pages by @leonkacowicz in #70
- html graph: draw the hierarchy edges
depsdraws by @leonkacowicz in #71 - release: v0.31.0 by @leonkacowicz in #72
- writes: a write from a subdirectory no longer deletes the tracker by @leonkacowicz in #73
- release: v0.31.1 by @leonkacowicz in #74
Full Changelog: v0.30.1...v0.31.1
v0.30.1
What's Changed
- homebrew: pin the v0.30.0 checksums by @leonkacowicz in #57
- docs: the ritual was the engine's job all along by @leonkacowicz in #58
- diff: name the ref on the right, not a working tree that took no part by @leonkacowicz in #59
- tests: an index built to break the serialiser, instead of the real one by @leonkacowicz in #60
- discovery: stop at the git repository root by @leonkacowicz in #61
- release: v0.30.1 by @leonkacowicz in #62
Full Changelog: v0.30.0...v0.30.1
v0.30.0
What's Changed
- homebrew: pin the v0.29.1 checksums by @leonkacowicz in #29
- #ahgehpa: read verbs take content from Ctx, not paths by @leonkacowicz in #31
- #32gyghs: a harness for a ref-backed tracker in a temp git repo by @leonkacowicz in #32
- #3dv63bn: --ref/$TRCK_REF and the tracker-ref resolution order by @leonkacowicz in #33
- #yuj6azz: finalize returns a changeset and an Op instead of writing files by @leonkacowicz in #34
- ci: adopt ratchet 0.2.0, and measure the comparison baseline by @leonkacowicz in #35
- #2ybw758: read the tracker out of a git ref by @leonkacowicz in #36
- #p95aabv: new says where its body comes from by @leonkacowicz in #37
- #nabxbdk: $EDITOR on the template, checked before it is accepted by @leonkacowicz in #38
- #jgf9ktx: blobs to tree to commit-tree, then CAS the local ref by @leonkacowicz in #39
- #zxz9vu2: trck edit — rewrite an issue's prose by @leonkacowicz in #40
- #93zhqbd: structured commit subjects and a replayable Trck-Op trailer by @leonkacowicz in #41
- #abynj5c: read the local tracker branch, not just origin's by @leonkacowicz in #42
- #5w9d7sq: push with CAS, and rebuild the operation when someone else lands first by @leonkacowicz in #43
- #dak2sjq: trck sync, and saying what a write left unshared by @leonkacowicz in #44
- #yqb2afy: a narrowed fetch refspec hides the tracker, and setup-git widens it by @leonkacowicz in #45
- #c3uzxka: diff resolves revisions on the tracker branch by @leonkacowicz in #46
- #jvk5637: no test fixture puts a tracker at the temp directory's top level by @leonkacowicz in #47
- #9gxktnk: replay the whole pending stack, and refuse an op that no longer applies by @leonkacowicz in #48
- hooks: the pre-commit guard stops running trck check by @leonkacowicz in #49
- ref: validate and name a write where it landed, not where it was read by @leonkacowicz in #50
- #sny6t9q: detach a worktree that has the tracker branch checked out by @leonkacowicz in #51
- CI: the tracker gets its own workflow, and the classifier forgets it exists by @leonkacowicz in #52
- CI: the tracker workflow's manual trigger has to name the branch by @leonkacowicz in #53
- ci: tracker.yml leaves main, because it could never have fired from here by @leonkacowicz in #55
- release: v0.30.0 by @leonkacowicz in #56
- main: remove issues/ — the flip by @leonkacowicz in #54
Full Changelog: v0.29.1...v0.30.0
v0.29.1
What's Changed
- homebrew: pin the v0.29.0 checksums instead of :no_check by @leonkacowicz in #27
- html: hold the view pane's scroll across a selection by @leonkacowicz in #24
- release: v0.29.1 by @leonkacowicz in #28
Full Changelog: v0.29.0...v0.29.1
v0.29.0
What's Changed
- docs: release commits go through a PR by @leonkacowicz in #6
- gutter: split the renderer into its four steps by @leonkacowicz in #7
- tracker: file the SUMMARY.md redesign by @leonkacowicz in #8
- repo: one module per verb by @leonkacowicz in #9
- ci: skip the engine suites on tracker- and prose-only pull requests by @leonkacowicz in #10
- graph: split the derived view by the direction it reads by @leonkacowicz in #13
- json: split the reader from the writer, and the reader three ways by @leonkacowicz in #14
- ci: the matrix job must always report, so shrink it instead of skipping it by @leonkacowicz in #12
- issues: close #nbjnx54 by @leonkacowicz in #11
- issue: a module per step of reading a row by @leonkacowicz in #16
- docs: de-stale the README and document
trck htmlby @leonkacowicz in #15 - render: split the row renderer, and decompose its three fat functions by @leonkacowicz in #18
- issues: file the silent data loss when a merge driver goes stale by @leonkacowicz in #17
- validate: the per-row checks become a list of named checks by @leonkacowicz in #19
- help: split the verb table by dispatch group, no threshold moved by @leonkacowicz in #20
- verbs: finalize becomes the four jobs it was doing by @leonkacowicz in #21
- rewrite issue template as raw string by @leonkacowicz in #22
- graph tab opens with done work omitted by @leonkacowicz in #23
- html: size the shell by layout instead of a hardcoded chrome height by @leonkacowicz in #25
- release: v0.29.0 by @leonkacowicz in #26
Full Changelog: v0.28.0...v0.29.0
v0.28.0
What's Changed
- implement
pathandwhichby @leonkacowicz in #1 - Windows path output, structural paydown, and a topological list order by @leonkacowicz in #2
- ready: only offer work nobody has started (#6ezbd38) by @leonkacowicz in #3
- trck-html: put the ready column between backlog and ongoing by @leonkacowicz in #4
- vocabulary: rename
ongoingtoin-progressby @leonkacowicz in #5
New Contributors
- @leonkacowicz made their first contribution in #1
Full Changelog: v0.27.0...v0.28.0
v0.27.0
Breaking: --depends is now --requires
trck new "Ship it" --requires aaaaaaa,bbbbbbb # was --dependsdeps --requires already meant "what this issue needs". The flag on new described the same
edges under a second name, and now both spell it the same way. The old spelling is not silently
ignored — it is refused with a message naming the replacement:
error: `--depends` is now `--requires` (it reads with `trck deps --requires`, which shows the
same edges). Try: trck new --requires <ids>
Nothing about the data changed: existing trackers, depends_on in index.jsonl, and every
other verb are untouched.
trck <verb> --help explains the verb
It used to print the same summary of the program whatever verb came before it — the least
useful moment to be told what trck is in general. Every verb now has its own usage line,
description, arguments, options, and an example where one is worth showing. trck repo --help
lists the subcommands.
A test ties that help to the parser in both directions: a verb cannot document a flag it would
refuse, nor accept one it leaves unmentioned. Two inaccuracies surfaced the moment it ran and
are fixed here — deps no longer advertises a --graph it does not accept, and diff
documents --from.
Installing on Windows actually works
The installer required unzip to open the Windows archive. A stock Windows does not have it,
and Git for Windows does not add one, so curl … | sh downloaded the artifact, verified its
checksum, and then failed on the last step. It now unpacks with tar, which Windows has
shipped since Windows 10 1803, falling back to unzip where that is what exists. CI runs the
installer under Git Bash on a real Windows machine so this cannot quietly break again.
Also
trck list | headno longer panics. A closed pipe is the shell working as designed, and it
now ends the process quietly instead of printing a backtrace.trck repo setup-gitpins the tracker's formats to LF. These files are compared byte for
byte, so a CRLF checkout meant the first verb to run rewrote them whole. Existing
.gitattributesare upgraded in place rather than gaining a second, stale rule.trck initno longer writes an engine into your repository.
Install or upgrade:
curl -fsSL https://raw.githubusercontent.com/leonkacowicz/trck/main/scripts/install.sh | shv0.26.0
v0.25.1 — the final Python engine
This is the final release of the Python engine. trck is a single binary from
v0.26.0 onward.
Nothing about your tracker changes. The on-disk format is identical, and the binary reads an
existing issues/ directory exactly as it stands — there is no migration to run.
Getting the binary
curl -fsSL https://raw.githubusercontent.com/leonkacowicz/trck/main/scripts/install.sh | shIt picks the right target from uname, verifies the published checksum, and installs to the
first writable directory on a short list. Binaries for Linux (glibc and musl, x86_64 and
aarch64), macOS (Intel and Apple Silicon) and Windows are attached to the v0.26.0 release, and
there is a Homebrew formula in packaging/homebrew/.
What changed in 0.25.1
trck update no longer tries to update. It fetched ./trck from the repository tree at the
newest release tag, and that file is going away — an engine that kept fetching would report
HTTP Error 404 and blame the network for a decision this project made, forever, because no
later Python release will exist to correct it. It now says where to go instead.
trck update --ref <tag> still fetches a specific Python version if you need to pin one.
Why
The engine was one standard-library-only Python file, which bought a great deal: no install, no
dependencies, and a copy you could commit next to your data. What it could not buy was speed at
the size trackers actually reach, or a single artifact that runs where Python isn't. The Rust
engine is measured against the same executable specification this one was — conformance/, 227
fixtures, run against the binary on every commit and against the published artifact before any
release is allowed to exist.
Marked as a pre-release so that curl | sh and /releases/latest continue to resolve to the
binary. It is not a preview — it is the last one.
v0.25.0
No breaking changes. Update with trck update (or drop in the new ./trck) and carry on —
nothing to migrate, no flags removed.
This is a layout release: trck deps and the HTML graph both got a lot better at drawing a
dependency DAG you can actually follow.
trck deps — shorter gutter lanes
The gutter graph now shortens a lane by sliding nodes along the order, so a dependency line
spans fewer rows and crosses less of the graph on its way. The result is stable: the same
tracker renders the same graph regardless of the order ids happen to arrive in.
tools/trck-html — a readable dependency graph
- Rows ordered by barycentre. Nodes are placed on the average position of their
neighbours, then rows are reordered when it cuts crossings, with a final pass that relocates
single nodes that are still badly placed. - Layer-skipping edges routed through placeholders. An edge that jumps several layers no
longer cuts straight across unrelated nodes — it is routed through invisible placeholder
nodes, one per layer it crosses, so it follows the same lanes as everything else. - Edge geometry. Edges land on the arrowhead's base rather than its tip, and the vertical
gap between layers is twice a node's height, which leaves room for the arrows to breathe. - Hover accenting. Putting the pointer on a node accents its edges, so you can trace what
one issue depends on and what depends on it without leaving the graph.
tools/trck-html — view defaults
- Facet checkboxes start checked, so a fresh view shows everything rather than nothing.
- Tree parents start collapsed, and toggling a facet no longer forces them open.
- Font stacks hoisted to one place and led with better families.
Tests
test_an_id_prefix_resolves pins its ids instead of generating random ones, which removes a
flake when two generated ids happened to share a 2-character prefix.