{"id":19358626,"url":"https://github.com/paritytech/cargo-unleash","last_synced_at":"2025-04-23T11:32:19.110Z","repository":{"id":37178102,"uuid":"241066356","full_name":"paritytech/cargo-unleash","owner":"paritytech","description":"cargo release automatisation tooling for massiv mono-repos","archived":false,"fork":false,"pushed_at":"2023-03-06T22:13:07.000Z","size":471,"stargazers_count":53,"open_issues_count":29,"forks_count":14,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-04-09T19:13:41.443Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paritytech.png","metadata":{"files":{"readme":"Readme.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-17T09:23:42.000Z","updated_at":"2023-02-27T23:37:05.000Z","dependencies_parsed_at":"2023-02-12T06:46:00.328Z","dependency_job_id":null,"html_url":"https://github.com/paritytech/cargo-unleash","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fcargo-unleash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fcargo-unleash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fcargo-unleash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Fcargo-unleash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/cargo-unleash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223922076,"owners_count":17225636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T07:12:30.647Z","updated_at":"2024-11-10T07:12:31.342Z","avatar_url":"https://github.com/paritytech.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cargo [unleash em 🐉](https://github.com/paritytech/cargo-unleash)\n\n`cargo` release automation tooling for _massiv mono-repo_. Developed primarily for [Parity Substrate](https://github.com/paritytech/substrate).\n\n## Changes\n\nsee [Changelog.md](./Changelog.md)\n\n## Installation\n\nUse `cargo install` to install:\n```bash\ncargo install cargo-unleash --version 1.0.0-alpha.13\n```\n\n## Usage\n\nTry and have it report what it would do on your mono repo with\n\n```bash\n\ncargo unleash em-dragons --dry-run\n```\n\nThere are more options available on the CLI, just run with `--help`:\n\n```bash\nRelease the crates of this massiv monorepo\n\nUSAGE:\n    cargo-unleash [FLAGS] [OPTIONS] \u003cSUBCOMMAND\u003e\n\nFLAGS:\n    -h, --help\n            Prints help information\n\n    -V, --version\n            Prints version information\n\n    -v, --verbose\n            Show verbose cargo output\n\n\nOPTIONS:\n    -l, --log \u003clog\u003e\n            Specify the log levels [default: warn]\n\n    -m, --manifest-path \u003cmanifest-path\u003e\n            The path to workspace manifest\n\n            Can either be the folder if the file is named `Cargo.toml` or the path to the specific `.toml`-manifest to\n            load as the cargo workspace. [default: ./]\n\nSUBCOMMANDS:\n    add-owner      Add owners for a lot of crates\n    check          Check whether crates can be packaged\n    clean-deps     Check the package(s) for unused dependencies\n    de-dev-deps    Deactivate the `[dev-dependencies]`\n    em-dragons     Unleash ’em dragons\n    help           Prints this message or the help of the given subcommand(s)\n    rename         Rename a package\n    set            Set a field in all manifests\n    to-release     Calculate the packages and the order in which to release\n    version        Messing with versioning\n```\n\n### em-dragons\n\nThe main command is `cargo unleash em-dragons`, here is its help. All subcommands have extensive `--help` for you.\n\n```bash\n$ cargo-unleash em-dragons --help\nUnleash ’em dragons\n\nPackage all selected crates, check them and attempt to publish them.\n\nUSAGE:\n    cargo-unleash em-dragons [FLAGS] [OPTIONS]\n\nFLAGS:\n        --build\n            Actually build the package in check\n\n            By default, this only runs `cargo check` against the package build. Set this flag to have it run an actual\n            `build` instead.\n        --check-readme\n            Generate \u0026 verify whether the Readme file has changed.\n\n            When enabled, this will generate a Readme file from the crate’s doc comments (using cargo-readme), and check\n            whether the existing Readme (if any) matches.\n        --dry-run\n            dry run\n\n        --empty-is-failure\n            Consider no package matching the criteria an error\n\n    -h, --help\n            Prints help information\n\n        --ignore-publish\n            Ignore whether `publish` is set.\n\n            If nothing else is specified, `publish = true` is assumed for every package. If publish is set to false or\n            any registry, it is ignored by default. If you want to include it regardless, set this flag.\n        --include-dev-deps\n            Do not disable dev-dependencies\n\n            By default we disable dev-dependencies before the run.\n        --include-pre-deps\n            Even if not selected by default, also include depedencies with a pre (cascading)\n\n        --no-check\n            dry run\n\n    -V, --version\n            Prints version information\n\n\nOPTIONS:\n        --owner \u003cadd-owner\u003e\n            Ensure we have the owner set as well\n\n    -c, --changed-since \u003cchanged-since\u003e\n            Automatically detect the packages, which changed compared to the given git commit.\n\n            Compares the current git `head` to the reference given, identifies which files changed and attempts to\n            identify the packages and its dependents through that mechanism. You can use any `tag`, `branch` or\n            `commit`, but you must be sure it is available (and up to date) locally.\n    -i, --ignore-pre-version \u003cignore-pre-version\u003e...\n            Ignore version pre-releases\n\n            Skip if the SemVer pre-release field is any of the listed. Mutually exclusive with `--package`\n    -p, --packages \u003cpackages\u003e...\n            Only use the specfic set of packages\n\n            Apply only to the packages named as defined. This is mutually exclusive with skip and ignore-version-pre.\n    -s, --skip \u003cskip\u003e...\n            Skip the package names matching ...\n\n            Provide one or many regular expression that, if the package name matches, means we skip that package.\n            Mutually exclusive with `--package`\n        --token \u003ctoken\u003e\n            the crates.io token to use for uploading\n\n            If this is nor the environment variable are set, this falls back to the default value provided in the user\n            directory [env: CRATES_TOKEN]\n```\n\n## Common Usage Examples\n\n**Release all crates** not having the `-dev`-pre version set\n```bash\ncargo-unleash em-dragons --ignore-pre-version dev\n```\n\n**Check if a PR can be released** (checking only changes in the PR compared to `main`)\n```bash\ncargo-unleash check --changed-since=main\n```\n\n**Release all crates** not having `test` in the name\n```bash\ncargo-unleash em-dragons --skip test\n```\n\n**Set the pre-version to `-dev`**\n```bash\ncargo-unleash version set-pre dev\n```\n\n**Bump the pre-version**, so for e.g. from `alpha.1` to `alpha.2` or `beta.3` to `beta.4`:\n```bash\ncargo-unleash version bump-pre\n```\n\n## In the wild\n\n_You are using the tooling and want to be mentioned here–[create an issue](https://github.com/gnunicorn/cargo-unleash/issues/new)_\n\n - [Parity Substrate](https://github.com/paritytech/substrate) automatic releasing via [Gitlab CI](https://github.com/paritytech/substrate/blob/master/.gitlab-ci.yml)\n - [Parity SS58-registry](https://github.com/paritytech/ss58-registry) automatic releasing via [Gitlab CI](https://github.com/paritytech/ss58-registry/blob/main/.gitlab-ci.yml)\n - [Juice](https://github.com/spearow/juice)\n - [fatality](https://github.com/drahnr/fatality)\n\n## License \u0026 Credits\n\nThis Software is released under the [GNU General Public License (GPL) 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).\n\nThis, as any other software, is build on the shoulders of giants. In particular, this uses `cargo` internally and draws heavily on the knowledge established by [cargo publish-all](https://gitlab.com/torkleyy/cargo-publish-all) and [cargo hack](https://github.com/taiki-e/cargo-hack).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fcargo-unleash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Fcargo-unleash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Fcargo-unleash/lists"}