geogi / rslease Goto Github PK
View Code? Open in Web Editor NEWOpinionated automated release actions for Rust projects
Opinionated automated release actions for Rust projects
rslease 2.0.1 Opinionated automated release actions for Rust projects. USAGE: rslease.exe [FLAGS] [OPTIONS] FLAGS: -h, --help Prints help information -i, --install Install the new version locally. -M, --major Release is a new major version (X.y.z). Default: new minor version. -n, --no-push Do not perform a final push to the remote. -p, --patch Release is a patch (x.y.Z). Default: new minor version. -V, --version Prints version information OPTIONS: -f, --for <base> Use this version as the base (X or X.Y). Default: latest. -b, --branch <commit> Start from this branch or commit. Default: no checkout. -r, --repo <path> Path to the git repository to use. Default: current directory. This program performs the following actions: + In --repo, by default the current directory. + If --branch is specified, checkout the commit. + Check if repo is clean and up to date: `git status`, `git rev-list`. + Retrieve the latest semver tag from git, possibly coerced by --for. + Increase the semver. Defaults to minor, use --patch or --major as needed. + Edit Cargo.toml, replacing `version`. + Run the cargo commands: `update`, `clippy -D warnings`, `fmt`. + Commit and create a new semver tag for the version. + If --install, run `cargo install`. + If a semver tag for the next minor does not already exist: ++ Edit Cargo.toml, replacing `version` with the next minor with '-dev' prerelease. ++ Run `cargo update` again. ++ Commit. + Unless --no-push, push the new HEAD, then push the new tag. WARNING: Cargo.toml is naively edited using regexps. Most importantly, the first occurrence of `^version = ..$` must belong to [package]. See the v1 for safe parsing, which sadly came with too many caveats.
Right now pushing a patch reverts the -dev
prefix, which is bad (see wiki). This was made because of possible interactions with --for
(i.e. pushing a v1.0.1 when v1.1 exists should not create a v1.1-dev) but even beyond that some thinking may be necessary.
Should patch releases go to a different branch ? We probably don't want to see the manifest in master do this :
During rslease own dev, I mistakenly forgot to pull before running it, but I had modified the README directly from GitHub. I had used no-push
so no harm was done but it would be better if rslease tried to pull before any other action.
Because it won't work in some instances, e.g. on a detached HEAD when starting from a tag (which might not be the best idea but still), maybe add a switch like no-pre-pull
.
Currently, rslease must be installed with cargo install
, which is perfectly fine since itβs a
Rust-centric development tool. Still, it is a standalone executable that could be automatically
built using GitHub Actions and distributed as an asset in each GitHub Release. This would be a
fine training for using Actions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.