Skip to content

Releases: Unidata/netcdf-c

v4.9.3-rc1

26 Jul 23:41
Compare
Choose a tag to compare
v4.9.3-rc1 Pre-release
Pre-release

The NSF Unidata netCDF team is happy to announce the first release candidate for netCDF-C v4.9.3. This release will include a lot of quality of life improvements and bug fixes, as well as improved support for ncZarr. We expect to release a second release candidate, with a focus on improved documentation, and a quick-start guide for our Zarr support with S3 and other cloud-based object stores.

The second release candidate will be out shortly; the final, full release will occur as quickly as possible, but that will depend on issues which arise through testing of this release candidate. The more broadly it is tested, the quicker we'll be able to get the full release out. Thanks all for your patience and your help!

What's Changed

Read more

v4.9.2

14 Mar 22:31
Compare
Choose a tag to compare

4.9.2 - March 14, 2023

This is a maintenance release which adds support for HDF5 version 1.14.0, in addition to a handful of other changes and bug fixes.

  • [Enhancement] Update H5FDhttp.[ch] to work with HDF5 version 1.14.0. See Github #2615.
  • Update nc-config to remove inclusion from automatically-detected nf-config and ncxx-config files, as the wrong files could be included in the output. This is in support of GitHub #2274.
  • Update H5FDhttp.[ch] to work with HDF5 version 1.13.2 and later. See Github #2635.
  • [Bug Fix] Update DAP code to enable CURLOPT_ACCEPT_ENCODING by default. See Github #2630.
  • [Bug Fix] Fix byterange failures for certain URLs. See Github #2649.
  • [Bug Fix] Fix 'make distcheck' error in run_interop.sh. See Github #2631.
  • [Enhancement] Update nc-config to remove inclusion from automatically-detected nf-config and ncxx-config files, as the wrong files could be included in the output. This is in support of GitHub #2274.

Automatically Generated Changes

What's Changed

New Contributors

Full Changelog: v4.9.1...v4.9.2

netCDF-C 4.9.1

03 Feb 23:46
Compare
Choose a tag to compare

Known Issues

  • A test in the main branch of netcdf-cxx4 is broken by this rc; this will bear further investigation, but not being treated as a roadblock for the release candidate.
  • The new document, netcdf-c/docs/filter_quickstart.md is in rough-draft form.
  • Race conditions exist in some of the tests when run concurrently with large numbers of processors

What's Changed from v4.9.0 (automatically generated)

New Contributors

Full Changelog: v4.9.0...v4.9.1

netCDF-C 4.9.1 - Release Candidate 2

28 Nov 22:44
Compare
Choose a tag to compare
Pre-release

Known Issues

  • A test in the main branch of netcdf-cxx4 is broken by this rc; this will bear further investigation, but not being treated as a roadblock for the release candidate.
  • The new document, netcdf-c/docs/filter_quickstart.md is in rough-draft form.
  • Race conditions exist in some of the tests when run concurrently.

Changes

  • Fixed issue with libnetcdf-feedstock at Conda-Forge.

Other Changes (automatically generated)

New Contributors

Full Changelog: v4.9.1-rc1...v4.9.1-rc2

v4.9.1-rc1

24 Oct 19:00
Compare
Choose a tag to compare
v4.9.1-rc1 Pre-release
Pre-release

v4.9.1-rc1

This is the first release candidate for netCDF-C v4.9.1. This is primarily a maintenance release.

Known Issues

  • A test in the main branch of netcdf-cxx4 is broken by this rc; this will bear further investigation, but not being treated as a roadblock for the release candidate.
  • The new document, netcdf-c/docs/filter_quickstart.md is in rough-draft form.

Notable Changes (Manually Recorded)

  • [Enhancement][Documentation] Add Plugins Quick Start Guide. See GitHub #2524 for more information.
  • [Enhancement] Add new entries in netcdf_meta.h, NC_HAS_BLOSC and NC_HAS_BZ2. See Github #2511 and Github #2512 for more information.
  • [Enhancement] Add new options to nc-config: --has-multifilters, --has-stdfilters, --has-quantize, --plugindir. See Github #2509 for more information.
  • [Bug Fix] Fix some errors detected in PR 2497. PR #2497 . See Github #2503.
  • [Bug Fix] Split the remote tests into two parts: one for the remotetest server and one for all other external servers. Also add a configure option to enable the latter set. See Github #2491.
  • [Bug Fix] Fix blosc plugin errors. See Github #2461.
  • [Bug Fix] Fix support for reading arrays of HDF5 fixed size strings. See Github #2466.
  • [Bug Fix] Fix some errors detected in PR #2492 . See Github #2497.
  • [Enhancement] Add support for Zarr (fixed length) string type in nczarr. See Github #2492.
  • [Bug Fix] Split the remote tests into two parts: one for the remotetest server and one for all other external servers. Also add a configure option to enable the latter set. See Github #2491.
  • [Bug Fix] Fix support for reading arrays of HDF5 fixed size strings. See Github #2462.
  • [Bug Fix] Provide a default enum const when fill value does not match any enum constant for the value zero. See Github #2462.
  • [Bug Fix] Fix the json submodule symbol conflicts between libnetcdf and the plugin specific netcdf_json.h. See Github #2448.
  • [Bug Fix] Fix quantize with CLASSIC_MODEL files. See Github #2405.
  • [Enhancement] Add --disable-quantize option to configure.
  • [Bug Fix] Fix CMakeLists.txt to handle all acceptable boolean values for -DPLUGIN_INSTALL_DIR. See Github #2430.
  • [Bug Fix] Fix tst_vars3.c to use the proper szip flag. See Github #2421.
  • [Enhancement] Provide a simple API to allow user access to the internal .rc file table: supports get/set/overwrite of entries of the form "key=value". See Github #2408.
  • [Bug Fix] Use env variable USERPROFILE instead of HOME for windows and mingw. See Github #2405.
  • [Bug Fix] Fix the nc_def_var_fletcher32 code in hdf5 to properly test value of the fletcher32 argument. See Github #2403.

Changes since v4.9.0 (Automatically Generated by GitHub)

New Contributors

Full Changelog: v4.9.0...v4.9.1-rc1

netCDF-C v4.9.0

10 Jun 23:08
Compare
Choose a tag to compare

NOTE: CMAKE-BASED BUILDS see #2390 to get the correct library version. For now, you will need to either remove a stray } at line 39 in CMakeLists.txt, or you will need to use the configure script instead of cmake. Our sincere apologies!

Release Notes

This file contains a high-level description of this package's evolution. Releases are in reverse chronological order (most recent first). Note that, as of netcdf 4.2, the netcdf-c++ and netcdf-fortran libraries have been separated into their own libraries.

4.9.0 - June 10, 2022

  • [Enhancement] Improve filter installation process to avoid use of an extra shell script. See Github #2348.
  • [Bug Fix] Get "make distcheck" to work See Github #/2343.
  • [Enhancement] Allow the read/write of JSON-valued Zarr attributes to allow
    for domain specific info such as used by GDAL/Zarr. See Github #2278.
  • [Enhancement] Turn on the XArray convention for NCZarr files by default. WARNING, this means that the mode should explicitly specify nczarr" or "zarr" even if "xarray" or "noxarray" is specified. See Github #2257.
  • [Enhancement] Update the documentation to match the current filter capabilities See Github #2249.
  • [Enhancement] Support installation of pre-built standard filters into user-specified location. See Github #2318.
  • [Enhancement] Improve filter support. More specifically (1) add nc_inq_filter_avail to check if a filter is available, (2) add the notion of standard filters, (3) cleanup szip support to fix interaction with NCZarr. See Github #2245.
  • [Enhancement] Switch to tinyxml2 as the default xml parser implementation. See Github #2170.
  • [Bug Fix] Require that the type of the variable in nc_def_var_filter is not variable length. See Github #/2231.
  • [File Change] Apply HDF5 v1.8 format compatibility when writing to previous files, as well as when creating new files. The superblock version remains at 2 for newly created files. Full backward read/write compatibility for netCDF-4 is maintained in all cases. See Github #2176.
  • [Enhancement] Add ability to set dataset alignment for netcdf-4/HDF5 files. See Github #2206.
  • [Bug Fix] Improve UTF8 support on windows so that it can use utf8 natively. See Github #2222.
  • [Enhancement] Add complete bitgroom support to NCZarr. See Github #2197.
  • [Bug Fix] Clean up the handling of deeply nested VLEN types. Marks nc_free_vlen() and nc_free_string as deprecated in favor of ncaux_reclaim_data(). See Github #2179.
  • [Bug Fix] Make sure that netcdf.h accurately defines the flags in the open/create mode flags. See Github #2183.
  • [Enhancement] Improve support for msys2+mingw platform. See Github #2171.
  • [Bug Fix] Clean up the various inter-test dependencies in ncdump for CMake. See Github #2168.
  • [Bug Fix] Fix use of non-aws appliances. See Github #2152.
  • [Enhancement] Added options to suppress the new behavior from Github #2135. The options for cmake and configure are, respectively -DENABLE_LIBXML2 and --(enable/disable)-libxml2. Both of these options defaul to 'on/enabled'. When disabled, the bundled ezxml XML interpreter is used regardless of whether libxml2 is present on the system.
  • [Enhancement] Support optional use of libxml2, otherwise default to ezxml. See Github #2135 -- H/T to Egbert Eich.
  • [Bug Fix] Fix several os related errors. See Github #2138.
  • [Enhancement] Support byte-range reading of netcdf-3 files stored in private buckets in S3. See Github #2134
  • [Enhancement] Support Amazon S3 access for NCZarr. Also support use of the existing Amazon SDK credentials system. See Github #2114
  • [Bug Fix] Fix string allocation error in H5FDhttp.c. See Github #2127.
  • [Bug Fix] Apply patches for ezxml and for selected oss-fuzz detected errors. See Github #2125.
  • [Bug Fix] Ensure that internal Fortran APIs are always defined. See Github #2098.
  • [Enhancement] Support filters for NCZarr. See Github #2101
  • [Bug Fix] Make PR 2075 long file name be idempotent. See Github #2094.

What's Changed

Read more

netCDF-C v4.8.1

23 Aug 22:06
Compare
Choose a tag to compare

4.8.1 - August 18, 2021

  • [Bug Fix] Fix multiple bugs in libnczarr. See Github #2066.
  • [Enhancement] Support windows network paths (e.g. \svc...). See Github #2065.
  • [Enhancement] Convert to a new representation of the NCZarr meta-data extensions: version 2. Read-only backward compatibility is provided. See Github #2032.
  • [Bug Fix] Fix dimension_separator bug in libnczarr. See Github #2035.
  • [Bug Fix] Fix bugs in libdap4. See Github #2005.
  • [Bug Fix] Store NCZarr fillvalue as a singleton instead of a 1-element array. See Github #2017.
  • [Bug Fixes] The netcdf-c library was incorrectly determining the scope of dimension; similar to the type scope problem. See Github #2012 for more information.
  • [Bug Fix] Re-enable DAP2 authorization testing. See Github #2011.
  • [Bug Fix] Fix bug with windows version of mkstemp that causes failure to create more than 26 temp files. See Github #1998.
  • [Bug Fix] Fix ncdump bug when printing VLENs with basetype char. See Github #1986.
  • [Bug Fixes] The netcdf-c library was incorrectly determining the scope of types referred to by nc_inq_type_equal. See Github #1959 for more information.
  • [Bug Fix] Fix bug in use of XGetopt when building under Mingw. See Github #2009.
  • [Enhancement] Improve the error reporting when attempting to use a filter for which no implementation can be found in HDF5_PLUGIN_PATH. See Github #2000 for more information.
  • [Bug Fix] Fix make distcheck issue in nczarr_test/ directory. See Github #2007.
  • [Bug Fix] Fix bug in NCclosedir in dpathmgr.c. See Github #2003.
  • [Bug Fix] Fix bug in ncdump that assumes that there is a relationship between the total number of dimensions and the max dimension id. See Github #2004.
  • [Bug Fix] Fix bug in JSON processing of strings with embedded quotes. See Github #1993.
  • [Enhancement] Add support for the new "dimension_separator" enhancement to Zarr v2. See Github #1990 for more information.
  • [Bug Fix] Fix hack for handling failure of shell programs to properly handle escape characters. See Github #1989.
  • [Bug Fix] Allow some primitive type names to be used as identifiers depending on the file format. See Github #1984.
  • [Enhancement] Add support for reading/writing pure Zarr storage format that supports the XArray _ARRAY_DIMENSIONS attribute. See Github #1952 for more information.
  • [Update] Updated version of bzip2 used in filter testing/functionality, in support of Github #1969.
  • [Bug Fix] Corrected HDF5 version detection logic as described in Github #1962.

netCDF-C 4.8.0

30 Mar 22:21
Compare
Choose a tag to compare

v4.7.4 to v4.8.0 ABI and ABI Compatibility Report

Generated with the following command, using docker:

$ docker run --rm -it -e OLDVER=v4.7.4 -e NEWVER=v4.8.0 -v $(pwd):/output unidata/ncabi

4.8.0 - March 30, 2021

  • [Enhancement] Bump the NC_DISPATCH_VERSION from 2 to 3, and as a side effect, unify the definition of NC_DISPATCH_VERSION so it only needs to be defined in CMakeLists.txt and configure.ac. See Github #1945 for more information.
  • [Enhancement] Provide better cross platform path name management. This converts paths for various platforms (e.g. Windows, MSYS, etc.) so that they are in the proper format for the executing platform. See Github #1958 for more information.
  • [Bug Fixes] The nccopy program was treating -d0 as turning deflation on rather than interpreting it as "turn off deflation". See Github #1944 for more information.
  • [Enhancement] Add support for storing NCZarr data in zip files. See Github #1942 for more information.
  • [Bug Fixes] Make fillmismatch the default for DAP2 and DAP4; too many servers ignore this requirement.
  • [Bug Fixes] Fix some memory leaks in NCZarr, fix a bug with long strides in NCZarr. See Github #1913 for more information.
  • [Enhancement] Add some optimizations to NCZarr, dosome cleanup of code cruft, add some NCZarr test cases, add a performance test to NCZarr. See Github #1908 for more information.
  • [Bug Fix] Implement a better chunk cache system for NCZarr. The cache now uses extendible hashing plus a linked list for provide a combination of expandibility, fast access, and LRU behavior. See Github #1887 for more information.
  • [Enhancement] Provide .rc fields for S3 authentication: HTTP.S3.ACCESSID and HTTP.S3.SECRETKEY.
  • [Enhancement] Give the client control over what parts of a DAP2 URL are URL encoded (i.e. %xx). This is to support the different decoding rules that servers apply to incoming URLS. See Github #1884 for more information.
  • [Bug Fix] Fix incorrect time offsets from ncdump -t, in some cases when the time units attribute contains both a non-zero time-of-day, and a time zone suffix containing the letter "T", such as "UTC". See Github #1866 for more information.
  • [Bug Fix] Cleanup the NCZarr S3 build options. See Github #1869 for more information.
  • [Bug Fix] Support aligned access for selected ARM processors. See Github #1871 for more information.
  • [Documentation] Migrated the documents in the NUG/ directory to the dedicated NUG repository found at https://github.com/Unidata/netcdf
  • [Bug Fix] Revert the internal filter code to simplify it. From the user's point of view, the only visible change should be that (1) the functions that convert text to filter specs have had their signature reverted and renamed and have been moved to netcdf_aux.h, and (2) Some filter API functions now return NC_ENOFILTER when inquiry is made about some filter. Internally, the dispatch table has been modified to get rid of the complex structures.
  • [Bug Fix] If the HDF5 byte-range Virtual File Driver is available )HDf5 1.10.6 or later) then use it because it has better performance than the one currently built into the netcdf library.
  • [Bug Fix] Fixed byte-range support with cURL > 7.69. See [https://github.com//pull/1798].
  • [Enhancement] Added new test for using compression with parallel I/O: nc_test4/tst_h_par_compress.c. See [https://github.com//pull/1784].
  • [Bug Fix] Don't return error for extra calls to nc_redef() for netCDF/HDF5 files, unless classic model is in use. See [https://github.com//issues/1779].
  • [Enhancement] Added new parallel I/O benchmark program to mimic NOAA UFS data writes, built when --enable-benchmarks is in configure. See [https://github.com//pull/1777].
  • [Bug Fix] Now allow szip to be used on variables with unlimited dimension [https://github.com//issues/1774].
  • [Enhancement] Add support for cloud storage using a variant of the Zarr storage format. Warning: this feature is highly experimental and is subject to rapid evolution [https://www.unidata.ucar.edu/blogs/developer/en/entry/overview-of-zarr-support-in].
  • [Bug Fix] Fix nccopy to properly set default chunking parameters when not otherwise specified. This can significantly improve performance in selected cases. Note that if seeing slow performance with nccopy, then, as a work-around, specifically set the chunking parameters. [https://github.com//issues/1763].
  • [Bug Fix] Fix some protocol bugs/differences between the netcdf-c library and the OPeNDAP Hyrax server. Also cleanup checksum handling [https://github.com//issues/1712].* [Bug Fix] IMPORTANT: Ncgen was not properly handling large
    data sections. The problem manifests as incorrect ordering of
    data in the created file. Aside from examining the file with
    ncdump, the error can be detected by running ncgen with the -lc
    flag (to produce a C file). Examine the file to see if any
    variable is written in pieces as opposed to a single call to
    nc_put_vara. If multiple calls to nc_put_vara are used to write
    a variable, then it is probable that the data order is
    incorrect. Such multiple writes can occur for large variables
    and especially when one of the dimensions is unlimited.
  • [Bug Fix] Add necessary __declspec declarations to allow compilation
    of netcdf library without causing errors or (_declspec related)
    warnings [https://github.com//issues/1725].
  • [Enhancement] When a filter is applied twice with different
    parameters, then the second set is used for writing the dataset
    [https://github.com//issues/1713].
  • [Bug Fix] Now larger cache settings are used for sequential HDF5 file creates/opens on parallel I/O capable builds; see Github #1716 for more information.
  • [Bug Fix] Add functions to libdispatch/dnotnc4.c to support
    dispatch table operations that should work for any dispatch
    table, even if they do not do anything; functions such as
    nc_inq_var_filter [https://github.com//issues/1693].
  • [Bug Fix] Fixed a scalar annotation error when scalar == 0; see Github #1707 for more information.
  • [Bug Fix] Use proper CURLOPT values for VERIFYHOST and VERIFYPEER; the semantics for VERIFYHOST in particular changed. Documented in NUG/DAP2.md. See [https://github.com//issues/1684].
  • [Bug Fix][cmake] Correct an issue with parallel filter test logic in CMake-based builds.
  • [Bug Fix] Now allow nc_inq_var_deflate()/nc_inq_var_szip() to be called for all formats, not just HDF5. Non-HDF5 files return NC_NOERR and report no compression in use. This reverts behavior that was changed in the 4.7.4 release. See [https://github.com//issues/1691].
  • [Bug Fix] Compiling on a big-endian machine exposes some missing forward delcarations in dfilter.c.

netCDF-C 4.7.4

27 Mar 20:33
Compare
Choose a tag to compare
  • [Windows] Bumped packaged HDF5 to 1.10.6, HDF4 to 4.2.14, and libcurl to 7.60.0.
  • [Enhancement] Support has been added for HDF5-1.12.0. See [https://github.com//issues/1528].
  • [Bug Fix] Correct behavior for the command line utilities when directly accessing a directory using utf8 characters. See Github #1669, Github #1668 and Github #1666 for more information.
  • [Bug Fix] Attempts to set filters or chunked storage on scalar vars will now return NC_EINVAL. Scalar vars cannot be chunked, and only chunked vars can have filters. Previously the library ignored these attempts, and always storing scalars as contiguous storage. See [https://github.com//issues/1644].
  • [Enhancement] Support has been added for multiple filters per variable. See [https://github.com//issues/1584].
  • [Enhancement] Now nc_inq_var_szip retuns 0 for parameter values if szip is not in use for var. See [https://github.com//issues/1618].
  • [Enhancement] Now allow parallel I/O with filters, for HDF5-1.10.3 and later. See [https://github.com//issues/1473].
  • [Enhancement] Increased default size of cache buffer to 16 MB, from 4 MB. Increased number of slots to 4133. See [https://github.com//issues/1541].
  • [Enhancement] Allow zlib compression to be used with parallel I/O writes, if HDF5 version is 1.10.3 or greater. See [https://github.com//issues/1580].
  • [Enhancement] Restore use of szip compression when writing data (including writing in parallel if HDF5 version is 1.10.3 or greater). See [https://github.com//issues/1546].
  • [Enhancement] Enable use of compact storage option for small vars in netCDF/HDF5 files. See [https://github.com//issues/1570].
  • [Enhancement] Updated benchmarking program bm_file.c to better handle very large files. See [https://github.com//issues/1555].
  • [Enhancement] Added version number to dispatch table, and now check version with nc_def_user_format(). See [https://github.com//issues/1599].
  • [Bug Fix] Fixed user setting of MPI launcher for parallel I/O HDF5 test in h5_test. See [https://github.com//issues/1626].
  • [Bug Fix] Fixed problem of growing memory when netCDF-4 files were opened and closed. See [https://github.com//issues/1575 and https://github.com//issues/1571].
  • [Enhancement] Increased size of maximum allowed name in HDF4 files to NC_MAX_NAME. See [https://github.com//issues/1631].

netCDF-C 4.7.3

22 Nov 22:17
Compare
Choose a tag to compare
  • [Bug Fix]Fixed an issue where installs from tarballs will not properly compile in parallel environments.
  • [Bug Fix] Library was modified so that rewriting the same attribute happens without deleting the attribute, to avoid a limit on how many times this may be done in HDF5. This fix was thought to be in 4.6.2 but was not. See [https://github.com//issues/350].
  • [Enhancement] Add a dispatch version number to netcdf_meta.h and libnetcdf.settings, in case we decide to change dispatch table in future. See [https://github.com//issues/1469].
  • [Bug Fix] Now testing that endianness can only be set on atomic ints and floats. See [https://github.com//issues/1479].
  • [Bug Fix] Fix for subtle error involving var and unlimited dim of the same name, but unrelated, in netCDF-4. See [https://github.com//issues/1496].
  • [Enhancement] Update for attribute documentation. See [https://github.com//issues/1512].
  • [Bug Fix][Enhancement] Corrected assignment of anonymous (a.k.a. phony) dimensions in an HDF5 file. Now when a dataset uses multiple dimensions of the same size, netcdf assumes they are different dimensions. See GitHub #1484 for more information.