Craft is a command line tool that helps automate and pipeline package releases. It enforces a specific workflow for managing release branches, changelogs, and artifact publishing.
π Full Documentation
Download the latest binary release, or install via npm:
npm install -g @sentry/craft# Auto-determine version from conventional commits
craft prepare auto
# Or specify a version explicitly
craft prepare 1.2.3
# Publish to all configured targets
craft publish 1.2.3- Auto Versioning - Automatically determine version bumps from conventional commits
- Multiple Targets - Publish to GitHub, NPM, PyPI, Docker, Crates.io, NuGet, and more
- Changelog Management - Auto-generate changelogs from commits or validate manual entries
- Workspace Support - Handle monorepos with NPM/Yarn workspaces
- CI Integration - Wait for CI to pass, download artifacts, and publish
Create a .craft.yml in your project root:
minVersion: "2.0.0"
changelog:
policy: auto
targets:
- name: github
- name: npm
access: publicSee the configuration reference for all options.
| Target | Description |
|---|---|
github |
GitHub releases and tags |
npm |
NPM registry (with workspace support) |
pypi |
Python Package Index |
crates |
Rust crates.io |
nuget |
.NET NuGet |
docker |
Docker registries |
brew |
Homebrew formulas |
gcs |
Google Cloud Storage |
gh-pages |
GitHub Pages |
cocoapods |
CocoaPods |
gem |
RubyGems |
maven |
Maven Central |
hex |
Elixir Hex |
pub-dev |
Dart/Flutter pub.dev |
aws-lambda-layer |
AWS Lambda layers |
powershell |
PowerShell Gallery |
See the targets documentation for configuration details.
See CONTRIBUTING.md for development setup and guidelines.
MIT