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
Terminal recording of intentional adding a change intent and previewing the next release version.
Intentional computes and previews the next version from a pending change intent.

What it does

  1. Pending intent files declare what changes; annotated Git tags record what was released.

  2. Projects one version into npm, Cargo, Pub, Python, MSBuild, Go, Dev Container and generic JSON, TOML and YAML manifests, keeping their formatting.

  3. Previews the next version of each release unit before it writes anything.

  4. Writes changelogs and annotated release tags; commits, pushes and publication stay with your pipeline.

  5. Adopts versions a repository already released, and takes over from Changesets.

  6. Ships as one native executable from Homebrew, Cargo or npm, and as a GitHub Action.

Install

brew install wyrd-company/tools/intentional

Documentation

Releases

Latest 0.4.1 Release notes on GitHub

Fixes

  • init no longer fails on a package.json without a string name, 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 run init, including the contract-1 upgrade.
All releases