-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Release Production
-
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 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=/mingw-w64-x86_64/bin:$PATH scripts/crosscompile win64 --target=win64-x86_64 --host=x86_64-w64-mingw32 --with-oniguruma= $ find build/win64
Building a cross-compiled Oniguruma is very similar:
$ PATH=/bin:$PATH ./configure --target=... --host=... $ PATH=/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