Skip to content

v0.7.1

Choose a tag to compare

@mbroemme mbroemme released this 17 Sep 21:49
· 90 commits to master since this release
07e1a08

Highlights

  • Added native Windows support with both MSVC and MinGW-w64 while preserving the public C API and existing libtool ABI 4:0:0.
  • Added a native CMake build for MSVC with shared and static library support, CTest regression coverage, installed-consumer validation, and vcpkg-based zlib, bzip2, and liblzma dependencies.
  • Added MinGW-w64 DLL and static-library builds through Autotools, including Windows system-library dependency detection and regression testing through Wine.
  • Added checked 64-bit file I/O, UTF-8 filesystem paths, native file identity handling, secure temporary files, Windows random-number generation, non-inheritable handles, and atomic MPQE destination publication.
  • Refactored MPQ parsing and serialization to separate fixed on-disk wire-format sizes from naturally aligned native C structures. This removes compiler packing dependencies while preserving the public API, ABI, and serialized MPQ format.
  • Improved reader robustness by propagating PKWARE decompression failures, validating logical block sizes, and rejecting inconsistent block metadata before reading archive data.
  • Fixed raw block reads where source and destination already reference the same buffer, avoiding an unnecessary overlapping self-copy.
  • Fixed archive cleanup so unfinished streaming writers and their temporary resources are reliably released when an archive is closed.
  • Added signed native Windows SDK packages for MSVC and MinGW-w64 with headers, libraries, required runtime DLLs, licenses, documentation, and consumer validation.
  • Expanded native SDK releases beyond Linux x86_64 with macOS x86_64 and arm64, Linux glibc and musl aarch64, Windows MSVC ARM64, and Windows MinGW aarch64 packages.
  • Published Linux SDK archives as individual release assets and normalized native SDK archive roots so each package extracts into a predictable top-level directory.
  • Added relocatable macOS SDK packages with an 11.0 deployment target, @rpath-based shared-library loading, dependency validation, relocation tests, and external consumer builds.
  • Expanded Python binary distribution support with Linux aarch64 wheels, Windows AMD64 and ARM64 wheels, and macOS x86_64 and arm64 wheels, including packaged-native-library runtime validation.
  • Expanded D binary packages with Linux aarch64 LDC builds, macOS DMD/LDC packages, Windows x86_64 DMD/LDC packages, and Windows ARM64 LDC packages.
  • Corrected the D release target matrix by removing unsupported stable DMD macOS ARM64 packaging and fixing Bash 3.2 compatibility, ARM feature validation, and Windows DMD linker-path handling.
  • Improved release and packaging validation across native SDKs and language bindings, including platform-specific package checks and normalized release artifact layouts.
  • Updated the README feature overview and platform documentation for native Windows builds, macOS support, cross-platform SDK packages, and current MPQ/MPQE capabilities.
  • Included DEVELOPER.md and the MPQ format documentation in Windows SDK packages alongside the public API documentation and licenses.

Commits

  • 45250bb - chore(release): bump version
  • f543c9d - refactor: separate MPQ wire format from native structure layout
  • ddaeece - fix: propagate PKWARE errors and validate logical block sizes
  • f30ed7a - fix: skip self-copy when reading raw blocks
  • 9b1831f - feat: add native Windows support with MSVC and MinGW
  • 5a15672 - feat(release): add Windows SDKs to signed GitHub releases
  • 1bebac2 - refactor(release): publish Linux SDK archives individually
  • efd5836 - fix(packaging): include developer and MPQ docs in Windows SDKs
  • c20f147 - refactor(packaging): rename native SDK scripts to Linux-specific names
  • 103df9f - fix(writer): release unfinished streams during archive close
  • 62ecc07 - style(ci): brace shell variables in fuzz workflow
  • ce42e56 - docs: update README feature list
  • 74b781e - feat(packaging): add native macOS SDK releases
  • 5ffe12a - fix(packaging): align native SDK archive roots
  • a4e05f5 - feat(packaging): add native Linux aarch64 SDKs
  • e2465e0 - feat(python): add native Linux aarch64 wheels
  • 2b2c1d5 - feat(packaging): add native Windows MSVC ARM64 SDKs
  • b421b2d - feat(packaging): add native Windows MinGW aarch64 SDKs
  • cd657e5 - feat(python): add native Windows AMD64 and ARM64 wheels
  • aea3434 - feat(python): add native macOS x86_64 and arm64 wheels
  • fac0d7c - feat(d): add native Linux aarch64 binary packages
  • 71e7b4f - feat(d): add macOS binary packages for DMD and LDC
  • c419bb4 - feat(d): add Windows x86_64 binary packages
  • 459eeb0 - feat(packaging): add Windows ARM64 LDC binary packages
  • 950d42d - fix(d): resolve release packaging failures

Contributors