Knots uses Changesets to manage release metadata.
- Add a changeset for user-facing changes.
- Merge to
main. - Changesets workflow opens/updates a
Version PackagesPR. - Merge version PR.
- Release workflow builds binaries, creates release assets, and publishes tag
v<version>.
Published assets:
knots-v<semver>-darwin-arm64.tar.gzknots-v<semver>-linux-x86_64.tar.gzknots-v<semver>-linux-aarch64.tar.gzknots-v<semver>-checksums.txt
Run the installer smoke script before publishing major release process changes:
scripts/release/smoke-install.shThe script validates both latest and pinned install flows and confirms kno.previous is
retained after reinstall. It also verifies the installed binary exactly matches the local
cargo build --release output (version + SHA-256 hash).
Optional smoke test env vars:
KNOTS_SMOKE_INSTALL_DIR=/absolute/pathkeeps the installed binary at a persistent location.KNOTS_SMOKE_KEEP_TMP=1retains temporary tarball/server artifacts after the run.
Use channel scripts to keep both binaries installed and switch with a symlink:
# Install GitHub release binary into ~/.local/bin/acartine_knots/release/kno
scripts/release/channel-install.sh release
# Install local smoke-tested build into ~/.local/bin/acartine_knots/local/kno
scripts/release/channel-install.sh local
# Switch active ~/.local/bin/kno symlink
scripts/release/channel-use.sh release
scripts/release/channel-use.sh local
# Show current active target
scripts/release/channel-use.sh showYou can override defaults with:
KNOTS_CHANNEL_ROOT(default:~/.local/bin/acartine_knots)KNOTS_ACTIVE_LINK(default:~/.local/bin/kno)KNOTS_LEGACY_LINK(default:~/.local/bin/knots)
Knots remains supported as a compatibility alias:
knots --versionKnots exposes workflow routing metadata for downstream consumers. When you change workflow/profile definitions or knot-view serialization, keep these surfaces aligned:
step_metadataandnext_step_metadataon knot JSON responses such askno show --jsonandkno ls --jsonstep_owner,next_owner,step_artifact, and review hint fields in CLI show outputstep_metadataandnext_step_metadatain persisted.knots/index/.../idx.knot_head.jsonevents
The metadata contract is:
owner.kindidentifies the responsible actor for the current or next actionoutput.artifact_typeandoutput.access_hintdescribe the expected artifactreview_hinttells reviewers what to inspect on review-oriented steps
Any change to these fields should include documentation updates and response- level tests that cover at least three workflow patterns.