intentional
Intent-driven polyglot releases.
Declare release intent once, project versions across package ecosystems, and create verifiable annotated release records without handing publication or repository choreography to the versioning tool.
Install with Homebrew (macOS, Linux)
brew install wyrd-company/tools/intentional
What it does
-
Pending intent files declare what changes; annotated Git tags record what was released.
-
Projects one version into npm, Cargo, Pub, Python, MSBuild, Go, Dev Container and generic JSON, TOML and YAML manifests, keeping their formatting.
-
Previews the next version of each release unit before it writes anything.
-
Writes changelogs and annotated release tags; commits, pushes and publication stay with your pipeline.
-
Adopts versions a repository already released, and takes over from Changesets.
-
Ships as one native executable from Homebrew, Cargo or npm, and as a GitHub Action.
Install
brew install wyrd-company/tools/intentional
cargo install intentional-cli --locked
npm install --global @wyrd-company/intentional
npx --yes @wyrd-company/intentional --version
brew install wyrd-company/tools/intentional
cargo install intentional-cli --locked
npm install --global @wyrd-company/intentional
npx --yes @wyrd-company/intentional --version
cargo install intentional-cli --locked
npm install --global @wyrd-company/intentional
npx --yes @wyrd-company/intentional --version
Documentation
Releases
Fixes
initno longer fails on apackage.jsonwithout a stringname, such as a private manifest that only holds dependencies. Like a Cargo manifest without[package], it describes no versioned project, so it is not a discovery candidate. A repository with such a manifest can now runinit, including thecontract-1upgrade.