Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release and distribution #1

Open
albx79 opened this issue Nov 3, 2019 · 3 comments
Open

release and distribution #1

albx79 opened this issue Nov 3, 2019 · 3 comments

Comments

@albx79
Copy link
Contributor

albx79 commented Nov 3, 2019

I have reserved a name on the official Rust package repository (https://crates.io/crates/what-bump). At the moment it contains a hello world, but once we go open, I can publish the actual code there (manually, from my PC).

However, we have two desiderata:

  1. One shouldn't need my PC to do a release; it should be an automated workflow managed by CicleCI
  2. cargo install shouldn't be the only way to get what-bump; ideally there should be a homebrew formula for people who don't have the rust toolchain installed
    • other package managers are acceptable too, but we believe that homebrew is best suited for CLI apps
    • I'm open to hearing options, especially for Linux where homebrew is not that widespread
albx79 added a commit that referenced this issue Dec 12, 2019
@albx79
Copy link
Contributor Author

albx79 commented Dec 23, 2019

Getting project version from the command line using cargo and jq:
cargo metadata --no-deps | jq ".packages[0].version"

Listing release tag with newest on top (and "head" to get latest version):
git tag | grep -E '[0-9]+.[0-9]+.[0-9]+.*' | sort -rV | head -1

@albx79 albx79 closed this as completed in 1ea274e Dec 23, 2019
@albx79
Copy link
Contributor Author

albx79 commented Jan 20, 2020

The release process should perform the following steps:

  • bump version
  • tag git
  • build release artifact that's available to download from github
  • build docker image that's available on dockerhub
  • publish to crates.io
  • generate the change log, that's available as release notes on github

Also, it should be:

  • performed entirely on CI
  • manually triggered by merging onto a special branch

For this to work properly, it's mandatory that we address #16 (handle multi-parent commits), so that version bump and change log generation can be performed across multiple branches.

@albx79 albx79 reopened this Jan 20, 2020
@albx79
Copy link
Contributor Author

albx79 commented Feb 28, 2020

The latest release script does pretty much everything there is to do (version bump, tag, create release, build docker image, upload artifact to github, upload image to docker hub, and upload sources to crates.io).

The next step is to run the whole script inside a container, so that it will be eventually possible to run it on circleci.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant