GithubHelp home page GithubHelp logo

cargo-unleash's Introduction

cargo release automation tooling for massiv mono-repo. Developed primarily for Parity Substrate.

Changes

see Changelog.md

Installation

Use cargo install to install:

cargo install cargo-unleash --version 1.0.0-alpha.11

Usage

Try and have it report what it would do on your mono repo with

cargo unleash em-dragons --dry-run

There are more options available on the CLI, just run with --help:

cargo-unleash 1.0.0-alpha.11
Release the crates of this massiv monorepo

USAGE:
    cargo-unleash [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help
            Prints help information

    -V, --version
            Prints version information

    -v, --verbose
            Show verbose cargo output


OPTIONS:
    -l, --log <log>
            Specify the log levels [default: warn]

    -m, --manifest-path <manifest-path>
            The path to workspace manifest

            Can either be the folder if the file is named `Cargo.toml` or the path to the specific `.toml`-manifest to
            load as the cargo workspace. [default: ./]

SUBCOMMANDS:
    add-owner      Add owners for a lot of crates
    check          Check whether crates can be packaged
    de-dev-deps    Deactivate the `[dev-dependencies]`
    em-dragons     Unleash 'em dragons
    help           Prints this message or the help of the given subcommand(s)
    set            Set a field in all manifests
    to-release     Calculate the packages and the order in which to release
    version        Messing with versioning

em-dragons

The main command is cargo unleash em-dragons, here is its help. All subcommands have extensive --help for you.

$ cargo-unleash em-dragons --help

Unleash 'em dragons

Package all selected crates, check them and attempt to publish them.

USAGE:
    cargo-unleash em-dragons [FLAGS] [OPTIONS]

FLAGS:
        --build
            Actually build the package in check

            By default, this only runs `cargo check` against the package build. Set this flag to have it run an actual
            `build` instead.
        --dry-run
            dry run

    -h, --help
            Prints help information

        --ignore-publish
            Ignore whether `publish` is set.

            If nothing else is specified `publish = true` is assumed for every package. If publish is set to false or
            any registry, it is ignore by default. If you want to include it regardless, set this flag.
        --include-dev-deps
            Do not disable dev-dependencies

            By default we disable dev-dependencies before the run.
        --no-check
            dry run

    -V, --version
            Prints version information


OPTIONS:
        --owner <add-owner>
            Ensure we have the owner set as well

    -i, --ignore-pre-version <ignore-pre-version>...
            Ignore version pre-releases

            Skip if the SemVer pre-release field is any of the listed. Mutually exclusive with `--package`
    -p, --packages <packages>...
            Only use the specfic set of packages

            Apply only to the packages named as defined. This is mutually exclusive with skip and ignore-version-pre.
            Default: []
    -s, --skip <skip>...
            skip the package names matching ...

            Provide one or many regular expression that, if the package name matches, means we skip that package.
            Mutually exclusive with `--package`
        --token <token>
             [env: CRATES_TOKEN]

Common Usage Examples

Release all crates not having the -dev-pre version set

cargo-unleash em-dragons --ignore-pre-version dev

Release all crates not having test in the name

cargo-unleash em-dragons --skip test

Set the pre-version to -dev

cargo-unleash version set-pre dev

Bump the pre-version, so for e.g. from alpha.1 to alpha.2 or beta.3 to beta.4:

cargo-unleash version bump-pre

In the wild

You are using the tooling and want to be mentioned here–create an issue

License & Credits

This Software is released under the GNU General Public License (GPL) 3.0.

This, 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 and cargo hack.

cargo-unleash's People

Contributors

gnunicorn avatar xanewok avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.