Open buchanae opened 7 years ago
Some of the steps are documented here: https://ohsu-comp-bio.github.io/funnel/docs/development/#release-process
Three gold stars if we can do this via TravisCI when a PR is merged to master.
Had a bunch of new issues today:
git describe --tags --long --dirty
LDFLAG gets in the way of releasing when I am also fixing the Makefile's release utils.One improvement I think we can make is to use the docs/
folder on the master branch for the website, which would remove the weird gh-pages
stuff.
Errors from other platforms:
$ tar xvfz funnel-linux-amd64-0.3.0.tar.gz
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
./
tar: Ignoring unknown extended header keyword `LIBARCHIVE.creationtime'
tar: Ignoring unknown extended header keyword `SCHILY.dev'
tar: Ignoring unknown extended header keyword `SCHILY.ino'
tar: Ignoring unknown extended header keyword `SCHILY.nlink'
./funnel
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors
Release content prep PR (in progress):
Release process from master branch:
make
funnel version
make upload-release
funnel version
funnel version
make website
This has gotten a lot easier, but there are still some tweaks to make, so leaving it open for at least on e more iteration.
Ideas for improvement:
We should also include the docker container in the release process. That is currently way out of date.
I created a homebrew tap for us: https://github.com/ohsu-comp-bio/homebrew-formula
Unfortunately, homebrew is particular about how you name your repo, so it can't live in the funnel repo.
brew tap ohsu-comp-bio/formula
brew install funnel
Latest version is slightly more streamlined:
make website
to build the website content.make build-release
, run funnel version
on each release artifact (mac, linux, docker)git pull
to get the commits from the PR merged from above.make build-release
. Upload tarballs from ./build/release
to the github draft release.docker push ohsucompbio/funnel:$version
to publish the docker containerHere's a cool idea: https://github.com/buchanae/funnel/blob/release-notes-builder/util/release-notes/build.go
It's pretty easy to access git commit logs and github commit + PR/issue data. We could use that to generate our release notes from the commits and PRs in the log since the last release tag.
With #504 this inches towards more simplicity. The new process is:
git tag x.y.z
(this is how goreleaser finds the version. don't bother pushing the tag)make release
. This will create a draft release in github.
./build/releases/darwin_amd64/funnel version
https://github.com/ohsu-comp-bio/funnel/commit/04eefda1bfd3367f3928aeaf5b698e38050f32d9 adds some docs about the latest release process
I still wish this was easier. In particular, it's still possible to mess something up in between updating the website, committing to master, creating a tag, building a release, etc.
Some ideas:
If we can figure out those steps, I think we'll finally arrive at a one-step release.
Releasing a new version requires great care currently. Ideally we can do it all in one command.