Release Production - troyp/jq GitHub Wiki

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

⚠️ **GitHub.com Fallback** ⚠️