Skip to content

Commit f59bee2

Browse files
dfa1claude
andcommitted
docs: write the 0.4 changelog in the categorized 0.3 format
Reference-style links put the [n]: definitions at the file bottom, outside the per-version section that publish.yml extracts — so the GitHub release notes rendered dangling [text][n] references. Use the same Added/Changed/Fixed/Security prose format as 0.3, which is self-contained and needs no link definitions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent b8860c0 commit f59bee2

1 file changed

Lines changed: 31 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,45 @@
11
# Changelog
22

3-
Notable changes, one line each — follow the link to the commit for detail.
4-
Versions are `v*` git tags, which trigger publication to Maven Central.
3+
All notable changes to this project are documented here. Format loosely follows
4+
[Keep a Changelog](https://keepachangelog.com/); versions are released as `v*`
5+
git tags, which trigger publication to Maven Central.
56

67
## [0.4]
78

8-
- [Add `Zstd.versionNumber()` for programmatic version checks][16]
9-
- [Fix a native context leak when a stream constructor fails mid-setup][13]
10-
- [`ZstdSkippableContent` is a defensively-copied, value-equal record][21]
11-
- [Fail fast with a named `NullPointerException` on null arguments; document stream / digested-dictionary thread-safety][22]
12-
- [Harden the native loader (owner-only temp dir) and pin CI actions to a commit SHA][20]
9+
### Added
10+
- `Zstd.versionNumber()` — the linked zstd version as a single integer
11+
(`MAJOR * 10000 + MINOR * 100 + PATCH`, e.g. `10507` for `1.5.7`), for
12+
programmatic version checks alongside `version()`.
13+
14+
### Changed
15+
- `ZstdSkippableContent` is now a true immutable value: it defensively copies its
16+
bytes on the way in and out, and compares by content
17+
(`equals` / `hashCode` / `toString` over the payload, not array identity).
18+
- Public methods fail fast with a named `NullPointerException` on null `byte[]`,
19+
dictionary, or sample arguments, instead of an opaque failure deep in native
20+
code. Streams are documented as not thread-safe; digested dictionaries
21+
(`ZstdCompressDict` / `ZstdDecompressDict`) as immutable and safe to share.
22+
23+
### Fixed
24+
- A streaming wrapper that failed partway through construction (e.g. an invalid
25+
parameter or dictionary) leaked the native context. The context is now freed
26+
on every constructor error path.
27+
28+
### Security
29+
- The bundled library is extracted into a directory created owner-only
30+
(`rwx------`) atomically at creation, not just by default. The third-party
31+
`setup-zig` CI action is pinned to a full commit SHA.
1332

1433
## [0.3]
1534

16-
- [`zstd-platform` is now an empty convenience jar (not a `pom`)][9]
17-
- [Bundled-only native loader; fix Sonar vulnerability + bug][8]
18-
- [`ByteBuffer` interop + pledged-size zero-copy decode][6]
35+
- [`zstd-platform` is now an empty convenience jar (not a `pom`)](https://github.com/dfa1/zstd-java/commit/ba5593a)
36+
- [Bundled-only native loader; fix Sonar vulnerability + bug](https://github.com/dfa1/zstd-java/commit/8d0ea6a)
37+
- [`ByteBuffer` interop + pledged-size zero-copy decode](https://github.com/dfa1/zstd-java/commit/8bfe272)
1938

2039
## [0.2]
2140

22-
- [`zstd-platform` aggregator; off-heap `MemorySegment` dictionary constructors][v0.2]
41+
- [`zstd-platform` aggregator; off-heap `MemorySegment` dictionary constructors](https://github.com/dfa1/zstd-java/releases/tag/v0.2)
2342

2443
## [0.1]
2544

26-
- [First release: JDK 25 FFM bindings for Zstandard 1.5.7, built with `zig cc`][v0.1]
27-
28-
[16]: https://github.com/dfa1/zstd-java/commit/e6a3537
29-
[13]: https://github.com/dfa1/zstd-java/commit/49e01b4
30-
[21]: https://github.com/dfa1/zstd-java/commit/a5f4aa0
31-
[22]: https://github.com/dfa1/zstd-java/commit/7dbad8e
32-
[20]: https://github.com/dfa1/zstd-java/commit/c9929b9
33-
[9]: https://github.com/dfa1/zstd-java/commit/ba5593a
34-
[8]: https://github.com/dfa1/zstd-java/commit/8d0ea6a
35-
[6]: https://github.com/dfa1/zstd-java/commit/8bfe272
36-
[v0.2]: https://github.com/dfa1/zstd-java/releases/tag/v0.2
37-
[v0.1]: https://github.com/dfa1/zstd-java/releases/tag/v0.1
45+
- [First release: JDK 25 FFM bindings for Zstandard 1.5.7, built with `zig cc`](https://github.com/dfa1/zstd-java/releases/tag/v0.1)

0 commit comments

Comments
 (0)