summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOwen Ou <169064+owenthereal@users.noreply.github.com>2023-06-01 10:09:39 -0700
committerGitHub <noreply@github.com>2023-06-01 10:09:39 -0700
commit4975b01a213164a534f16ee0669ee187fc52cfdb (patch)
tree404ad883d39b719d6540293c6aa0b9f8d6339e29
parent89caf46a5fb0a97274f034affbe5ec05297107b1 (diff)
Merge old jqlang/jq master to the latest (#2596)
* Try making some GitHub Actions * GHA: Add OS X, Windows, and Linux w/ scan-build builds * Add link to discord server Add link to discord server * Update Ubuntu to 22.04 for GitHub Actions * Remove if condition for Ubuntu build * Fix MacOS OS on GitHub Actions * Fix python3 package on GitHub Actions * Disalbe valgrind Getting failed tests: https://github.com/jqlang/jq/actions/runs/5113866588/jobs/9193542140#step:9:341 * Format file * Fix macos build * Fix syntax errors of windows build https://github.com/jqlang/jq/actions/runs/5114162556/workflow * Install windows package with choco * Pin oniguruma to 5a24a49d710a9e3bb8ff11d12e1eae5a9f9df40c MacOS build [fails](https://github.com/jqlang/jq/actions/runs/5114162555/jobs/9194126677#step:6:3160) due to ``` posix.c:94:3: error: implicit declaration of function 'onig_end' is invalid in C99 [-Werror,-Wimplicit-function-declaration] onig_end(); ``` The current `oniguruma` revision 6fa38f4084b448592888ed9ee43c6e90a46b5f5c (15 Mar 2017) lacks the following explicit declaration in src/onigposix.h: ``` ONIG_EXTERN int onig_end P_((void)); ``` This was added to oniguruma in revision 5a24a49d710a9e3bb8ff11d12e1eae5a9f9df40c (8 Sep 2017). Ref: https://github.com/jqlang/jq/issues/2381 * Revert windows build to use pacman * Don't zip jq.exe * Fixing windows build * Update .gitattriutes for eol on Windows * Skip workflow_dispatch for windows build * Clean up builds * Use LF line endings for all text Ref: https://github.com/actions/checkout/issues/135 * Fix test that has rounding error https://github.com/jqlang/jq/pull/2596#issuecomment-1568498993 * Enable CI for all --------- Co-authored-by: Nicolas Williams <nico@cryptonector.com>
-rw-r--r--.gitattributes1
-rw-r--r--.github/workflows/linux.yml70
-rw-r--r--.github/workflows/macos.yml62
-rw-r--r--.github/workflows/scanbuild.yml77
-rw-r--r--.github/workflows/windows.yml45
-rw-r--r--README.md6
m---------modules/oniguruma0
-rw-r--r--tests/jq.test2
8 files changed, 261 insertions, 2 deletions
diff --git a/.gitattributes b/.gitattributes
index 59661532..366d3c2b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1,3 @@
.gitattributes export-ignore
.gitignore export-ignore
+* text=auto eol=lf
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
new file mode 100644
index 00000000..8c38da91
--- /dev/null
+++ b/.github/workflows/linux.yml
@@ -0,0 +1,70 @@
+name: Linux Build
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+jobs:
+ linux:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ name: [linux-clang, linux-gcc]
+ include:
+ - name: linux-clang
+ os: ubuntu-22.04
+ compiler: clang
+ cflags: ''
+ - name: linux-gcc
+ os: ubuntu-22.04
+ compiler: gcc
+ cflags: '-Wnonnull'
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: Install packages
+ run: |
+ sudo apt-get update -qq
+ sudo apt-get install -y \
+ automake \
+ autoconf \
+ bison \
+ flex \
+ gdb \
+ python3 \
+ valgrind
+ - name: Build
+ env:
+ CC: ${{ matrix.compiler }}
+ MAKEVARS: ${{ matrix.makevars }}
+ run: |
+ autoreconf -fi
+ rm src/lexer.c src/lexer.h
+ rm src/parser.c src/parser.h
+ ./configure --disable-valgrind --with-oniguruma=builtin YACC="$(which bison) -y" $COVERAGE
+ make -j4
+ make dist
+ - name: Test
+ env:
+ CC: ${{ matrix.compiler }}
+ MAKEVARS: ${{ matrix.makevars }}
+ run: |
+ ulimit -c unlimited
+ make -j4 check
+ - name: Upload Test Logs
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-logs
+ path: |
+ test-suite.log
+ tests/*.log
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: jq-${{ matrix.name }}
+ path: |
+ jq
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
new file mode 100644
index 00000000..aa2c1847
--- /dev/null
+++ b/.github/workflows/macos.yml
@@ -0,0 +1,62 @@
+name: MacOS Build
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+jobs:
+ macos:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ name: [macos-12-clang, macos-13-clang]
+ include:
+ - name: macos-12-clang
+ os: macos-12
+ compiler: clang
+ - name: macos-13-clang
+ os: macos-13
+ compiler: clang
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: Install packages
+ run: |
+ brew update
+ brew install autoconf automake libtool flex bison python3
+ sed -i.bak '/^AM_INIT_AUTOMAKE(\[-Wno-portability 1\.14\])$/s/14/11/' modules/oniguruma/configure.ac
+ - name: Build
+ env:
+ CC: ${{ matrix.compiler }}
+ MAKEVARS: ${{ matrix.makevars }}
+ run: |
+ autoreconf -fi
+ rm src/lexer.c src/lexer.h
+ rm src/parser.c src/parser.h
+ ./configure --disable-valgrind --with-oniguruma=builtin YACC="$(brew --prefix)/opt/bison/bin/bison -y" $COVERAGE
+ make -j4
+ make dist
+ - name: Test
+ env:
+ CC: ${{ matrix.compiler }}
+ MAKEVARS: ${{ matrix.makevars }}
+ run: |
+ ulimit -c unlimited
+ make -j4 check
+ - name: Upload Test Logs
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-logs
+ path: |
+ test-suite.log
+ tests/*.log
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: jq-${{ matrix.name }}
+ path: |
+ jq
diff --git a/.github/workflows/scanbuild.yml b/.github/workflows/scanbuild.yml
new file mode 100644
index 00000000..6247a7da
--- /dev/null
+++ b/.github/workflows/scanbuild.yml
@@ -0,0 +1,77 @@
+name: Linux Clang scan-build Static Analyzer Build
+
+on:
+ # Don't do this for PRs. It eats up minutes.
+ push:
+ branches:
+ - 'master'
+ - 'scan-build'
+ paths:
+ - '.github/workflows/scanbuild.yml'
+
+jobs:
+ unix:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ name: [linux-clang]
+ include:
+ - name: linux-clang
+ os: ubuntu-18.04
+ compiler: clang
+ cflags: ''
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v1
+ - name: Open Submodule(s)
+ run: |
+ git submodule update --init --recursive
+ - name: Install packages
+ if: startsWith(matrix.os, 'ubuntu')
+ run: |
+ sudo apt-get update -qq
+ sudo apt-get install -y automake autoconf bison flex gdb python valgrind clang-tools
+ - name: Prep
+ run: |
+ #pyenv global 3.6.7
+ #pip3 install pipenv
+ #(cd docs && pipenv sync)
+ #if [ -n "$COVERAGE" ]; then pip install --user cpp-coveralls; fi
+ echo SHELL=$SHELL
+ echo PATH=$PATH
+ which bison
+ bison --version
+
+ - name: Build
+ env:
+ CC: ${{ matrix.compiler }}
+ MAKEVARS: ${{ matrix.makevars }}
+ run: |
+ autoreconf -fi
+ rm src/lexer.c src/lexer.h
+ rm src/parser.c src/parser.h
+ ./configure --with-oniguruma=builtin YACC="$(which bison) -y" $COVERAGE
+ scan-build --keep-going make -j4
+ - name: Test
+ env:
+ CC: ${{ matrix.compiler }}
+ MAKEVARS: ${{ matrix.makevars }}
+ run: |
+ ulimit -c unlimited
+ scan-build --keep-going make -j4 check
+ - name: Core dump stacks
+ run: |
+ echo "thread apply all bt" > /tmp/x
+ find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done
+ if [ "$(find . -name core -print | wc -l)" -gt 0 ]; then false; fi
+ - name: Test logs
+ if: ${{ failure() }}
+ run: |
+ cat test-suite.log
+ cat tests/*.log
+ - name: Upload Logs
+ uses: actions/upload-artifact@v2
+ with:
+ name: Scan-Build Reports
+ path: '/tmp/scan-build*/'
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
new file mode 100644
index 00000000..04e0c8ec
--- /dev/null
+++ b/.github/workflows/windows.yml
@@ -0,0 +1,45 @@
+name: Windows Build
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+jobs:
+ windows:
+ runs-on: windows-latest
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ - uses: msys2/setup-msys2@v2
+ with:
+ update: true
+ install: >-
+ base-devel
+ git
+ clang
+ autoconf
+ automake
+ libtool
+ p7zip
+ - shell: msys2 {0}
+ run: |
+ autoreconf -fiv
+ ./configure --disable-valgrind --with-oniguruma=builtin --disable-shared --enable-static --enable-all-static
+ make -j4
+ make SUBDIRS= "TESTS=tests/mantest tests/jqtest tests/onigtest tests/base64test" check
+ - name: Upload Test Logs
+ if: ${{ failure() }}
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-logs
+ path: |
+ test-suite.log
+ tests/*.log
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: jq-windows
+ path: |
+ jq.exe
diff --git a/README.md b/README.md
index 44acd13b..2388e318 100644
--- a/README.md
+++ b/README.md
@@ -72,4 +72,8 @@ cross-compilation environment. See also
["Cross compilation"](https://github.com/jqlang/jq/wiki/Cross-compilation) on
the wiki.
-Send questions to https://stackoverflow.com/questions/tagged/jq or to the #jq channel (https://web.libera.chat/#jq) on Libera.Chat (https://libera.chat/).
+
+# Community
+
+* Send questions to https://stackoverflow.com/questions/tagged/jq.
+* Join our [Discord server](https://discord.gg/yg6yjNmgAC).
diff --git a/modules/oniguruma b/modules/oniguruma
-Subproject 6fa38f4084b448592888ed9ee43c6e90a46b5f5
+Subproject 5a24a49d710a9e3bb8ff11d12e1eae5a9f9df40
diff --git a/tests/jq.test b/tests/jq.test
index 2d5c36b8..9aa435a2 100644
--- a/tests/jq.test
+++ b/tests/jq.test
@@ -1565,7 +1565,7 @@ try (1%.) catch .
jq: error: Division by zero? at <top-level>, line 1:
# Basic numbers tests: integers, powers of two
-[range(-52;52;1)] as $powers | [$powers[]|pow(2;.)|log2] == $powers
+[range(-52;52;1)] as $powers | [$powers[]|pow(2;.)|log2|round] == $powers
null
true