-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Release Production
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
- Install mingw and/or other cross-compilation toolkits and then use scripts/crosscompile to build for other platforms. E.g.:
$ make distclean
$ PATH=<path-to-mingw>/mingw-w64-x86_64/bin:$PATH scripts/crosscompile win64 --target=win64-x86_64 --host=x86_64-w64-mingw32 --with-oniguruma=<path-to-cross-compiled-oniguruma>
$ find build/win64
Building a cross-compiled Oniguruma is very similar:
$ PATH=<path-to-cross-compilation-tools>/bin:$PATH ./configure --target=... --host=...
$ PATH=<path-to-cross-compilation-tools>/bin:$PATH make -j16 LDFLAGS=-all-static clean all install DESTDIR=...
-
Rename each executable something like
jq-<OS>-<arch>
orjq-<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.
- Home
- FAQ
- jq Language Description
- Cookbook
- Modules
- Parsing Expression Grammars
- Docs for Oniguruma Regular Expressions (RE.txt)
- Advanced Topics
- Guide for Contributors
- How To
- C API
- jq Internals
- Tips
- Development