Skip to content
nicowilliams edited this page Jan 1, 2015 · 4 revisions

When tagging for a release, make sure to autoreconf after tagging, or after fetching new tags, otherwise ./configure will have the wrong version baked in, and then so will the resulting Makefile.

Keep a distinct, clean workspace just for release building.

$ cd ~/workspaces # or whatever
$ git clone <your-dev-repo> jq-rel
$ cd jq-rel
$ git checkout -f master
$ git clean -fx
$ git pull -u
$ git pull --tags
$ autoreconf -fi
$ ./configure ... && make dist
$ tar xvf $(git describe --tags --match 'jq-*').tar.gz
$ cd $(git describe --tags --match 'jq-*')
$ ./configure ... && make -j16 check
$ # If checks pass, then you can release, if not fix bugs, repeat this

Cross-compile or otherwise build executables for all supported platforms.

Rename each executable something like jq-<OS>-<arch> or jq-<OS>-<arch>.exe as appropriate.

When a release is ready, tag it, create the release in github, add the source tarball made by make dist, add the executables to the release, save, review, publish.

Last step: update the gh-pages branch and push it to update https://stedolan.github.io/jq

Clone this wiki locally