@r5n/sisyphus
v0.13.1
Published
Sisyphus CLI - A tool for versioning and publishing packages
Readme
Sisyphus
Small change records. One release.
Record pending package changes as stones: reviewable JSON files in .sisyphus/stones/. Roll them together to bump versions, write changelogs and create a release commit. Enable tags, pushes, npm publication and provider releases when you need them.
Runs on Bun. The command is sisyphus, or sis for short. Packages are discovered from your root package.json workspaces.
Quick start
bun add -g @r5n/sisyphus
sis init
sis version
sis check
sis rollinit creates the configuration. version prompts for package bumps and a message, then saves a stone. check previews the release. roll applies the pending stones and creates a release commit.
Publishing is opt-in. By default, roll updates local files and creates the commit. Review the release options before enabling external operations.
Everyday commands
| Task | Command |
| --- | --- |
| Create a stone interactively | sis version |
| Preview stones from conventional commits | sis version --fromCommits --dryRun |
| Inspect pending changes | sis check |
| Edit or combine stones | sis stone |
| Preview a release | sis roll --dryRun |
| Resume an interrupted release | sis roll --resume |
| Create a stone from a pull request | sis pr -u <url> |
| Install CI workflows | sis actions init |
Use sis -i for the interactive menu and sis <command> --help for options. Sisyphus follows workspace dependencies, supports prerelease channels and keeps a durable ledger so interrupted external operations can be reconciled before resuming.
Guides
| Guide | Covers | | --- | --- | | Command reference | Versioning, releases, stones, pull requests, migration and CI commands | | Configuration and release model | Config fields, stone format, dependency propagation, prereleases and builds | | GitHub Actions | Push-based releases, trusted publishing and generated workflows |
Configuration has an editor schema.
Requirements
- Bun and Git; a root
workspacesfield unless usingsinglemode. - Authenticated
ghfor GitHub pull requests and releases. GitLab operations useGITLAB_TOKENorglab.
