Skip to content

Commit 97a3da1

Browse files
authored
Merge pull request #2435 from facebook/dev
v1.4.8 hotfix
2 parents 645a297 + 7c495e8 commit 97a3da1

23 files changed

+77
-159
lines changed

.circleci/config.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,9 @@ workflows:
143143
filters:
144144
branches:
145145
only:
146-
- master
146+
- release
147147
- dev
148+
- master
148149
jobs:
149150
# Run daily long regression tests
150151
- regression-test

.github/workflows/generic-dev.yml

+21-5
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ name: generic-dev
22

33
on:
44
pull_request:
5-
branches: [ dev, master, actionsTest ]
5+
branches: [ dev, release, actionsTest ]
66

77
jobs:
88

99
# Dev PR jobs that still have to be migrated from travis
1010
#
11-
# icc (need self-hosted)
12-
# versionTag
11+
# versionTag (only on release tags)
1312
# valgrindTest (keeps failing for some reason. need investigation)
1413
# staticAnalyze (need trusty so need self-hosted)
1514
# pcc-fuzz: (need trusty so need self-hosted)
@@ -19,7 +18,7 @@ jobs:
1918
# I need admins permissions to the repo for that it looks like
2019
# So I'm tabling that for now
2120
#
22-
# The master branch exclusive jobs will be in a separate
21+
# The release branch exclusive jobs will be in a separate
2322
# workflow file (the osx tests and meson build that is)
2423

2524
benchmarking:
@@ -36,6 +35,15 @@ jobs:
3635
- name: make test
3736
run: make test
3837

38+
check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
39+
runs-on: ubuntu-latest
40+
steps:
41+
- uses: actions/checkout@v2
42+
- name: make check on 32-bit
43+
run: |
44+
make libc6install
45+
CFLAGS="-m32 -O1 -fstack-protector" make check V=1
46+
3947
gcc-6-7-libzstd:
4048
runs-on: ubuntu-latest
4149
steps:
@@ -50,6 +58,10 @@ jobs:
5058
LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
5159
make -C tests zbufftest-dll
5260
61+
# candidate test (to check) : underlink test
62+
# LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
63+
# zbufftest-dll : test that a user program can link to multi-threaded libzstd without specifying -pthread
64+
5365
gcc-8-asan-ubsan-testzstd:
5466
runs-on: ubuntu-16.04 # fails on 18.04
5567
steps:
@@ -84,6 +96,10 @@ jobs:
8496
sudo apt-get install clang-3.8
8597
CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
8698
99+
# Note : external libraries must be turned off when using MSAN tests,
100+
# because they are not msan-instrumented,
101+
# so any data coming from these libraries is always considered "uninitialized"
102+
87103
cmake-build-and-test-check:
88104
runs-on: ubuntu-latest
89105
steps:
@@ -147,7 +163,7 @@ jobs:
147163
make clean
148164
make c99build
149165
make clean
150-
make travis-install
166+
make travis-install # just ensures `make install` works
151167
152168
mingw-cross-compilation:
153169
runs-on: ubuntu-latest

.github/workflows/generic-release.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ name: generic-release
22

33
on:
44
pull_request:
5-
# This will eventually only be for pushes to master
5+
# This will eventually only be for pushes to release
66
# but for dogfooding purposes, I'm running it even
77
# on dev pushes
8-
branches: [ dev, master, actionsTest ]
8+
branches: [ dev, release, actionsTest ]
99

1010
jobs:
1111
# missing jobs
@@ -44,6 +44,7 @@ jobs:
4444
sudo apt-get install clang-3.8
4545
CC=clang-3.8 make tsan-test-zstream
4646
CC=clang-3.8 make tsan-fuzztest
47+
4748
zlib-wrapper:
4849
runs-on: ubuntu-16.04
4950
steps:

.github/workflows/linux-kernel.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: linux-kernel
22

33
on:
44
pull_request:
5-
branches: [ dev, master, actionsTest ]
5+
branches: [ dev, release, actionsTest ]
66

77
jobs:
88
test:

.travis.yml

+9-109
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ git:
88
branches:
99
only:
1010
- dev
11+
- release
1112
- master
1213
- travisTest
1314

@@ -31,49 +32,11 @@ matrix:
3132
script:
3233
- make check
3334

34-
- name: make benchmarking
35-
script:
36-
- make benchmarking
37-
3835
- name: make test (complete)
3936
script:
4037
# DEVNULLRIGHTS : will request sudo rights to test permissions on /dev/null
4138
- DEVNULLRIGHTS=test make test
4239

43-
- name: gcc-6 + gcc-7 + libzstdmt compilation # ~ 6mn
44-
script:
45-
- make gcc6install gcc7install
46-
- CC=gcc-6 CFLAGS=-Werror make -j all
47-
- make clean
48-
- CC=gcc-7 CFLAGS=-Werror make -j all
49-
- make clean
50-
- LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
51-
- make -C tests zbufftest-dll
52-
# LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
53-
# zbufftest-dll : test that a user program can link to multi-threaded libzstd without specifying -pthread
54-
55-
- name: gcc-8 + ASan + UBSan + Test Zstd # ~6.5mn
56-
script:
57-
- make gcc8install
58-
- CC=gcc-8 CFLAGS="-Werror" make -j all
59-
- make clean
60-
- CC=gcc-8 make -j uasan-test-zstd </dev/null # test when stdin is not a tty
61-
62-
- name: gcc-6 + ASan + UBSan + Test Zstd, 32bit mode # ~4mn
63-
script:
64-
- make gcc6install libc6install
65-
- CC=gcc-6 CFLAGS="-Werror -m32" make -j all32
66-
- make clean
67-
- CC=gcc-6 make -j uasan-test-zstd32 # note : can complain about pointer overflow
68-
69-
- name: clang-3.8 + MSan + Test Zstd # ~3.5mn
70-
script:
71-
- make clang38install
72-
# External libraries must be turned off when using MSAN tests,
73-
# because they are not msan-instrumented,
74-
# so any data coming from these libraries is always considered "uninitialized"
75-
- CC=clang-3.8 make clean msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0
76-
7740
- name: Minimal Decompressor Macros # ~5mn
7841
script:
7942
- make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
@@ -85,51 +48,11 @@ matrix:
8548
- make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
8649
- make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
8750

88-
- name: cmake build and test check # ~6mn
89-
script:
90-
- make cmakebuild
91-
9251
- name: static analyzer scanbuild # ~26mn
9352
dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
9453
script:
9554
- make staticAnalyze
9655

97-
- name: gcc-8 + ASan + UBSan + Fuzz Test # ~19mn
98-
script:
99-
- make gcc8install
100-
- CC=gcc-8 make clean uasan-fuzztest
101-
102-
- name: gcc-6 + ASan + UBSan + Fuzz Test 32bit # ~15.5mn
103-
script:
104-
- make gcc6install libc6install
105-
- CC=gcc-6 CFLAGS="-O2 -m32" make uasan-fuzztest # can complain about pointer overflow
106-
107-
- name: clang-3.8 + MSan + Fuzz Test # ~14.5mn
108-
script:
109-
- make clang38install
110-
- CC=clang-3.8 make clean msan-fuzztest
111-
112-
- name: ASan + UBSan + MSan + Regression Test # ~ 4.5mn
113-
script:
114-
- make -j uasanregressiontest
115-
- make clean
116-
- make -j msanregressiontest
117-
118-
- name: C++, gnu90 and c99 compatibility # ~3mn
119-
script:
120-
- make cxxtest
121-
- make clean
122-
- make gnu90build
123-
- make clean
124-
- make c99build
125-
- make clean
126-
- make travis-install # just ensures `make install` works
127-
128-
- name: mingw cross-compilation
129-
script :
130-
- sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix;
131-
- CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="-Werror -O1" make zstd
132-
13356
- name: Valgrind + Fuzz Test Stack Mode # ~ 7mn
13457
script:
13558
- make valgrindinstall
@@ -162,74 +85,51 @@ matrix:
16285
- make -C tests checkTag
16386
- tests/checkTag "$TRAVIS_BRANCH"
16487

165-
# tests for master branch and cron job only
88+
# tests for release branch and cron job only
16689
- name: OS-X # ~13mn
167-
if: branch = master
90+
if: branch = release
16891
os: osx
16992
script:
17093
- make test
17194
- make -C lib all
17295

173-
- name: zbuff test
174-
if: branch = master
175-
script:
176-
- make -C tests test-zbuff
177-
17896
- name: Versions Compatibility Test # 11.5mn
179-
if: branch = master
97+
if: branch = release
18098
script:
18199
- make -C tests versionsTest
182100

183101
- name: thread sanitizer # ~29mn
184-
if: branch = master
102+
if: branch = release
185103
script:
186104
- make clang38install
187105
- CC=clang-3.8 make tsan-test-zstream
188106
- CC=clang-3.8 make tsan-fuzztest
189107

190108
- name: PPC64LE + Fuzz test # ~13mn
191-
if: branch = master
109+
if: branch = release
192110
arch: ppc64le
193111
script:
194112
- cat /proc/cpuinfo
195113
- make test
196114

197115
- name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?)
198116
dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial
199-
if: branch = master
117+
if: branch = release
200118
script:
201119
- make ppcinstall
202120
- make ppc64fuzz
203121

204122
# note : we already have aarch64 tests on hardware
205123
- name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn
206-
if: branch = master
124+
if: branch = release
207125
dist: xenial
208126
script:
209127
- make arminstall
210128
- make aarch64fuzz
211129

212-
- name: zlib wrapper test # ~7.5mn
213-
if: branch = master
214-
script:
215-
- make gpp6install valgrindinstall
216-
- make -C zlibWrapper test
217-
- make -C zlibWrapper valgrindTest
218-
219-
- name: LZ4, thread pool, and partial libs tests # ~4mn
220-
if: branch = master
221-
script:
222-
- make lz4install
223-
- make -C tests test-lz4
224-
- make check < /dev/null | tee # mess with lz4 console detection
225-
- make clean
226-
- make -C tests test-pool
227-
- make clean
228-
- bash tests/libzstd_partial_builds.sh
229-
230130
# meson dedicated test
231131
- name: Xenial (Meson + clang) # ~15mn
232-
if: branch = master
132+
if: branch = release
233133
dist: xenial
234134
language: cpp
235135
compiler: clang

CHANGELOG

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
v1.4.7
1+
v1.4.8 (Dec 18, 2020)
2+
hotfix: wrong alignment of an internal buffer
3+
4+
v1.4.7 (Dec 16, 2020)
25
perf: stronger --long mode at high compression levels, by @senhuang42
36
perf: stronger --patch-from at high compression levels, thanks to --long improvements
47
perf: faster dictionary compression at medium compression levels, by @felixhandte

CONTRIBUTING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ possible.
55
## Our Development Process
66
New versions are being developed in the "dev" branch,
77
or in their own feature branch.
8-
When they are deemed ready for a release, they are merged into "master".
8+
When they are deemed ready for a release, they are merged into "release".
99

1010
As a consequences, all contributions must stage first through "dev"
1111
or their own feature branch.
@@ -383,7 +383,7 @@ CI tests run every time a pull request (PR) is created or updated. The exact tes
383383
that get run will depend on the destination branch you specify. Some tests take
384384
longer to run than others. Currently, our CI is set up to run a short
385385
series of tests when creating a PR to the dev branch and a longer series of tests
386-
when creating a PR to the master branch. You can look in the configuration files
386+
when creating a PR to the release branch. You can look in the configuration files
387387
of the respective CI platform for more information on what gets run when.
388388
389389
Most people will just want to create a PR with the destination set to their local dev

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ Zstandard is dual-licensed under [BSD](LICENSE) and [GPLv2](COPYING).
193193

194194
## Contributing
195195

196-
The "dev" branch is the one where all contributions are merged before reaching "master".
197-
If you plan to propose a patch, please commit into the "dev" branch, or its own feature branch.
198-
Direct commit to "master" are not permitted.
196+
The `dev` branch is the one where all contributions are merged before reaching `release`.
197+
If you plan to propose a patch, please commit into the `dev` branch, or its own feature branch.
198+
Direct commit to `release` are not permitted.
199199
For more information, please read [CONTRIBUTING](CONTRIBUTING.md).

TESTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ They consist of the following tests:
2727

2828
Long Tests
2929
----------
30-
Long tests run on all commits to `master` branch,
30+
Long tests run on all commits to `release` branch,
3131
and once a day on the current version of `dev` branch,
3232
on TravisCI.
3333
They consist of the following tests:

appveyor.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
# Following tests are run _only_ on master branch
2-
# To reproduce these tests, it's possible to push into a branch `appveyorTest`
3-
# or a branch `visual*`, they will intentionnally trigger `master` tests
1+
# Following tests are run _only_ on `release` branch
2+
# and on selected feature branch named `appveyorTest` or `visual*`
43

54
-
65
version: 1.0.{build}
76
branches:
87
only:
8+
- release
99
- master
10-
- appveyorTest
10+
- /appveyor*/
1111
- /visual*/
1212
environment:
1313
matrix:
1414
- COMPILER: "gcc"
1515
HOST: "mingw"
1616
PLATFORM: "x64"
17-
SCRIPT: "make allzstd MOREFLAGS=-static && make -C tests fullbench-lib"
17+
SCRIPT: "make allzstd MOREFLAGS=-static"
1818
ARTIFACT: "true"
1919
BUILD: "true"
2020
- COMPILER: "gcc"
@@ -92,9 +92,9 @@
9292
cd programs\ && 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe &&
9393
appveyor PushArtifact zstd-win-binary-%PLATFORM%.zip &&
9494
cp zstd.exe ..\bin\zstd.exe &&
95-
git clone --depth 1 --branch master https://github.com/facebook/zstd &&
95+
git clone --depth 1 --branch release https://github.com/facebook/zstd &&
9696
cd zstd &&
97-
git archive --format=tar master -o zstd-src.tar &&
97+
git archive --format=tar release -o zstd-src.tar &&
9898
..\zstd -19 zstd-src.tar &&
9999
appveyor PushArtifact zstd-src.tar.zst &&
100100
certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.tar.zst.sha256.sig &&

0 commit comments

Comments
 (0)