Publish an Action
Publish your action on crates.io so that other projects can find and mount it.
Publish your action on crates.io so that other projects can add it to their harnesses. You control its releases, and users adopt them through dependency updates.
This guide publishes otter-check-readme, the action of Build an
Action. You need a working action with tests. To try it in
a project first, set up a harness with Get Started.
A Crate of Your Own
Keep your action in your own crate and repository. This lets you maintain it for your workflow and release it on your schedule. The Rakko repository contains actions for Aonyx’s projects and does not accept new actions from other authors. The support policy explains this scope.
Fill In the Manifest
crates.io needs a description and a license for each crate. Add them to the
[package] table of your Cargo.toml, with the repository of the crate and
the keyword rakko-action:
[package]
name = "otter-check-readme"
description = "Checks that a project has a README"
license = "MIT OR Apache-2.0"
repository = "https://github.com/otter/otter-check-readme"
keywords = ["rakko-action"]
The rakko-action keyword helps people find your crate alongside other
Rakko actions on crates.io.
Each library dependency must have a version available on crates.io. Use
cargo add to add registry dependencies to the manifest.
Write a README
crates.io uses your README.md as the crate’s page. Describe what the action
does, which tools it requires, and how to mount it in a harness. Include the
command name and flags so that readers can run it. Build an Action
shows the mount code.
Check the Package
If your action embeds mise.rakko.toml, include that file in the package.
List the package files and make sure that the mise file appears:
cargo package --list
Build the package without uploading it:
cargo publish --dry-runPublish the Crate
cargo publish
Then give the repository of the crate the GitHub topic rakko-action, so that
others find it on GitHub as well. With the GitHub command line, run this in
the repository:
gh repo edit --add-topic rakko-action
You can also add the topic in the settings of the repository on GitHub.
Release a New Version
Projects adopt new releases through dependency updates, for example with
Renovate. If a release changes a tool pin, users must run
mise run rakko -- doctor --fix before their harness commands can run again.
Include that step in the release notes. Keep a Harness
Current explains how projects can automate it.