Releases: ketiltrout/getdata
GetData-0.12.0
This release adds support for building Python wheels via CMake and
scikit-build-core, enabling cross-platform builds for Windows, Linux,
and macOS. Python bindings now require Python 3.9+ and support NumPy 2.x.
Wheels are available on PyPI
Build system improvements:
- CMake modernization for Python wheel generation and improved
cross-platform compatibility - Added CI/CD workflows for automated testing on Ubuntu, macOS, and
Windows platforms via GitHub Actions - Improved MSVC (Visual C++) compatibility for native Windows builds
Python bindings:
- Updated to support NumPy 2.x
- Fixed encoding_support return codes
- Improved Python 3.x compatibility in test suite (exception handling,
path separators, regex handling for builds without PCRE support)
Compatibility fixes:
- Fixed 64-bit time_t compatibility on 32-bit architectures
- Fixed Python version detection for Python 3.10+
- Updated Fortran support for modern gfortran (>= 10) with -std=legacy
and -fallow-argument-mismatch flags - Fixed MacOS .dylib generation and post-install path demangling
- Bumped minimum automake version to 1.16
GetData-0.11.0
New in version 0.11.0:
Library Changes:
-
BUG FIX: When using a bzipped
/REFERENCEfield, mixinggd_nframes()
calls with reads of data from that field no longer results in
subsequent reads to occur in the wrong place. Reported by Matthew
Petroff. -
BUG FIX FOR CVE-2021-20204: The first RAW field in a Dirfile having
the same name as a previously defined field no longer results in a
segmentation fault when trying to access the Dirifle's reference
field.By default, the parser will return a syntax error (
GD_E_FORMAT)
when encountering a duplicate field name, making theDIRFILE
invalid and avoiding the segmentation fault. To trigger the
segmentation fault, the standardGD_E_FORMATerror return
must be avoided, by doing one of the following:- The
GD_IGNORE_DUPSflag must be used when invoking the format
file parser. This stops the parser from generating an error
when discarding out the duplicate field. - A caller-supplied parser callback must return
GD_SYNTAX_IGNORE
when passed theGD_E_FORMATerror generated by the duplicate
field. (This is what happens in thecheckdirfileutility,
which is why it is affected by this bug.)
- The
API Changes:
-
A new function
gd_open_limit()can be used to limit the number of
open file descriptors used by the library to access RAW data in
a givenDIRFILE. GetData will try to keep under the limit by
automatically closing RAW fields when necessary. Note: the
library may exceed the limit in certain cases. See the man
page for full details. -
A number of symbols, which were deprecated in GetData-0.8,
have been removed. This removal extends to the corresponding
symbols in the bindings. The removed symbols, and their
replacements, are:Removed symbol Replacement GD_FLOATGD_FLOAT32GD_DOUBLEGD_FLOAT64GD_E_BAD_ENDIANNESSGD_E_ARGUMENTGD_E_BAD_PROTECTIONGD_E_ARGUMENTGD_E_BAD_VERSIONGD_E_ARGUMENTGD_E_FORMAT_NO_PARENTGD_E_FORMAT_NO_FIELDgd_bit_tintgd_spf_tunsigned intNOTE: The Python bindings have a different
FLOATtype alias which
corresponds to the native float type in Python. That symbol is
not deprecated and has not been removed. -
BUG FIX: Lingering references to the type
gd_shift_t, which was
deprecated in GetData-0.10.0 and replaced bygd_int64_t, have been
removed from the API.
Bindings Changes:
- PYTHON BUG FIX: When
first_sampleis non-zero, and neithernum_frames
nornum_samplesis indicateddirfile.getdata()no longer attempts to
read past the end of the data file. Patch from Matthew Petroff.
Miscellaneous
-
Running
make cleanno longer accidentally deletes most of the man pages
from theman/subdirectory. -
New options
--with-pcreand--without-pcrehave been added to ./configure
to adjust how the PCRE library is (or is not) used. -
Modules now link to the main getdata library to avoid the potential for
symbol look-up errors on load. Reported by Matthew Petroff.