Commit Graph

8076 Commits

Author SHA1 Message Date
Dennis Heimbigner
0f93766599 One additional lgtm fix 2021-09-28 14:37:32 -06:00
Dennis Heimbigner
56f1f595b8 Fix new lgtm alerts 2021-09-28 14:19:07 -06:00
Dennis Heimbigner
e89187d2c2 remove actions debug 2021-09-28 14:09:38 -06:00
Dennis Heimbigner
ca3dfe43b7 Fix FreeBSD fileno problem in the ncgen parsers 2021-09-28 14:03:19 -06:00
Dennis Heimbigner
b970e81e27 Update release notes 2021-09-27 18:44:48 -06:00
Dennis Heimbigner
6b69b9c52c Significantly Improve Amazon S3 Cloud Storage Support
## S3 Related Fixes

* Add comprehensive support for specifying AWS profiles to provide access credentials.
* Parse the files "~/.aws/config" and "~/.aws/credentials to provide credentials for the HDF5 ROS3 driver and to locate default region.
* Add a function to obtain the currently active S3 credentials. The search rules are defined in docs/nczarr.md.
* Provide documentation for the new features.
* Modify the struct NCauth (in include/ncauth.h) to replace specific S3 credentials with a profile name.
* Add a unit test to test the operation of profile and credentials management.
* Add support for URLS of the form "s3://<bucket>/<key>"; this requires obtaining a default region.
* Allows the specification of profile and/or region in a URL of the form "#mode=nczarr,...&aws.region=...&aws.profile=..."

## Misc. Fixes

* Move the ezxml code to libdispatch so that it can be used both by DAP4 and nczarr.
* Modify nclist to provide a deep clone operation.
* Modify ncuri to provide a deep clone operation.
* Modify the .rc file format to allow the specification of a path to be tested when looking for an entry in the .rc file.
* Ensure that the NC_rcload function is called.
* Modify nchttp to support setting request headers.
2021-09-27 18:36:33 -06:00
Ward Fisher
de403a0fe8
Merge pull request #2099 from DennisHeimbigner/killdebugdir.dmh
Remove netcdf-c/debug directory as no longer needed.
2021-09-07 14:45:02 -06:00
Ward Fisher
af41f84b3f
Merge branch 'main' into killdebugdir.dmh 2021-09-07 14:44:51 -06:00
Ward Fisher
0a4f4e16ed
Merge pull request #2098 from DennisHeimbigner/fortcache.dmh
Make the fortran cache API always be defined.
2021-09-07 10:30:00 -06:00
Ward Fisher
8eb71290eb
Merge pull request #2101 from DennisHeimbigner/zarrfilters.dmh
Add filter support to NCZarr
2021-09-07 10:28:28 -06:00
Dennis Heimbigner
05167d1860 Update Release Notes 2021-09-02 17:07:00 -06:00
Dennis Heimbigner
11fe00ea05 Add filter support to NCZarr
Filter support has three goals:

1. Use the existing HDF5 filter implementations,
2. Allow filter metadata to be stored in the NumCodecs metadata format used by Zarr,
3. Allow filters to be used even when HDF5 is disabled

Detailed usage directions are define in docs/filters.md.

For now, the existing filter API is left in place. So filters
are defined using ''nc_def_var_filter'' using the HDF5 style
where the id and parameters are unsigned integers.

This is a big change since filters affect many parts of the code.

In the following, the terms "compressor" and "filter" and "codec" are generally
used synonomously.

### Filter-Related Changes:
* In order to support dynamic loading of shared filter libraries, a new library was added in the libncpoco directory; it helps to isolate dynamic loading across multiple platforms.
* Provide a json parsing library for use by plugins; this is created by merging libdispatch/ncjson.c with include/ncjson.h.
* Add a new _Codecs attribute to allow clients to see what codecs are being used; let ncdump -s print it out.
* Provide special headers to help support compilation of HDF5 filters when HDF5 is not enabled: netcdf_filter_hdf5_build.h and netcdf_filter_build.h.
* Add a number of new test to test the new nczarr filters.
* Let ncgen parse _Codecs attribute, although it is ignored.

### Plugin directory changes:
* Add support for the Blosc compressor; this is essential because it is the most common compressor used in Zarr datasets. This also necessitated adding a CMake FindBlosc.cmake file
* Add NCZarr support for the big-four filters provided by HDF5: shuffle, fletcher32, deflate (zlib), and szip
* Add a Codec defaulter (see docs/filters.md) for the big four filters.
* Make plugins work with windows by properly adding __declspec declaration.

### Misc. Non-Filter Changes
* Replace most uses of USE_NETCDF4 (deprecated) with USE_HDF5.
* Improve support for caching
* More fixes for path conversion code
* Fix misc. memory leaks
* Add new utility -- ncdump/ncpathcvt -- that does more or less the same thing as cygpath.
* Add a number of new test to test the non-filter fixes.
* Update the parsers
* Convert most instances of '#ifdef _MSC_VER' to '#ifdef _WIN32'
2021-09-02 17:04:26 -06:00
Dennis Heimbigner
424ba45483 ENOTNC4 -> ENOTBUILT 2021-09-01 17:27:29 -06:00
Dennis Heimbigner
ee25bc0af0 Update RELEASENOTES.md 2021-09-01 15:03:40 -06:00
Dennis Heimbigner
7fb01ad4ed Remove no-longer-needed debug directory 2021-09-01 15:00:51 -06:00
Dennis Heimbigner
b81f8b676a Make the fortran cache API always be defined.
re: Issue https://github.com/Unidata/netcdf-c/issues/2096

The methods nc_set_var_chunk_cache_ints and nc_def_var_chunking_ints
are Fortran entry points for accessing the cache. They are not defined
if netcdf-c is built with --disable-hdf5.

Fix is to create dummy versions that do nothing and return NC_NOERR
when invoked. These dummy versions are defined when USE_HDF5 is false.
2021-09-01 14:10:02 -06:00
Ward Fisher
09e0e04227
Merge pull request #2095 from Unidata/condaforge-hdf5-version-check.wif
Revamping the HDF5_VERSION logic.
2021-08-31 13:45:33 -06:00
Ward Fisher
9e6b6bcd6b Correct logic error. 2021-08-31 09:51:19 -06:00
Ward Fisher
5d5a7c4f6e Correct an issue with appveyor builds, specific to systems where a bash shell is not available. 2021-08-31 09:27:51 -06:00
Ward Fisher
d0561d6a58 Caching HDF5_VERSION string for diagnostic purposes. 2021-08-30 16:29:40 -06:00
Ward Fisher
a777d97cb4 Added logic for checking the version when the HDF5 libraries and include directories are set explicitly. 2021-08-30 15:37:21 -06:00
Ward Fisher
a76245df73 Plugged a hole where HDF5_VERSION wouldn't be checked against minimum HDF5 required version. 2021-08-30 14:21:37 -06:00
Ward Fisher
ebbe3b438e Revamping the HDF5_VERSION logic. 2021-08-30 09:10:14 -06:00
Ward Fisher
f4349efa66
Merge pull request #2087 from edwardhartnett/ejh_logging_info 2021-08-26 17:09:49 -06:00
Ward Fisher
6ea721dddc
Merge pull request #2093 from Unidata/gh2091.wif
2091 + Github Action to test
2021-08-25 16:03:27 -06:00
Ward Fisher
11040c59d3 Merge remote-tracking branch 'origin/master' into gh2091.wif 2021-08-25 15:03:13 -06:00
Ward Fisher
9d2e065f41 Correct a typo. 2021-08-25 14:58:35 -06:00
Ward Fisher
18086dae10 Correct a typo in the github actions yaml file. 2021-08-25 14:32:01 -06:00
Ward Fisher
7ee0281c74 Test dependency on one-offs updated. 2021-08-25 14:31:09 -06:00
Ward Fisher
48d943864d Syntax debugging. 2021-08-25 14:28:59 -06:00
Ward Fisher
d6f06bf3d6 A bit more twiddling of the github actions workflow. 2021-08-25 14:25:41 -06:00
Ward Fisher
e85d95702e Attempt at test orchestration to avoid a race condition when running tests in parallel. 2021-08-25 13:33:49 -06:00
Ward Fisher
fc5376222b
Merge pull request #2094 from DennisHeimbigner/longname2.dmh
Make Issue https://github.com/Unidata/netcdf-c/issues/2077 work when build is repeated.
2021-08-25 13:16:35 -06:00
Ward Fisher
8fc52da9d7 Thanks to newer ctest functionality, if ctest tests fail, re-run just the failed ones with more verbose output. 2021-08-25 12:43:04 -06:00
Dennis Heimbigner
5041e87be7 Update release notes 2021-08-25 12:40:01 -06:00
Dennis Heimbigner
a575fc27d4 Make Issue https://github.com/Unidata/netcdf-c/issues/2077 work when build is repeated.
re: https://github.com/Unidata/netcdf-c/pull/2075

The long file name fix fails when the build is manually repeated
because the source file has already been renamed. Solution is to
test if the dest file exists or not before doing the rename.
This is apparently not a problem for automake because it uses
AC_CONFIG_LINK, which uses link/copy instead of rename.
2021-08-25 12:37:17 -06:00
Ward Fisher
40c3fc2169 Reverse GA workflow. Run the one-off tests first and then run the full test matrix. This should shorten the test/failure cycle. 2021-08-25 11:16:47 -06:00
Ward Fisher
912fd7574c Modify GA workflow a bit. 2021-08-24 15:22:20 -06:00
Dennis Heimbigner
4f37d1a826 Make Issue https://github.com/Unidata/netcdf-c/issues/2077 work when build is repeated.
re: https://github.com/Unidata/netcdf-c/pull/2075

The long file name fix fails when the build is manually repeated
because the source file has already been renamed. Solution is to
test if the dest file exists or not before doing the rename.
2021-08-24 15:11:26 -06:00
Ward Fisher
5bcf91f880 Correct spacing issue in GA yaml file. 2021-08-24 15:07:10 -06:00
Ward Fisher
37d6cc9191 Propagate github actions tests into cmake-based stanza. 2021-08-24 14:40:13 -06:00
Ward Fisher
1376067870 Added a one-off stanza for autoconf-based tests on Github Actions. 2021-08-24 14:26:28 -06:00
Ward Fisher
f235dcfdb2 Merge branch 'manyurls.dmh' of https://github.com/DennisHeimbigner/netcdf-c into gh2091.wif 2021-08-24 14:14:42 -06:00
Ward Fisher
eff534124c
Merge pull request #2092 from Unidata/add-unidata-logo
Update Doxygen documentation
2021-08-24 13:01:06 -06:00
Ward Fisher
ee2c43ebc0 Added uniLogo.png to make dist. 2021-08-24 12:50:21 -06:00
Ward Fisher
5c39deed93 Remove obsolete doxygen tags. 2021-08-24 12:42:32 -06:00
Ward Fisher
93245509bb Update footer.html and Doxyfile to use local Unidata image. 2021-08-24 12:38:40 -06:00
Dennis Heimbigner
d1d495e47b Adding missing file ncdap_test/manyurls.h
re: Github Issue: https://github.com/Unidata/netcdf-c/issues/2085

The file ncdap_test/manyurls.h was not added to the repository.
It is controlled by the --enable-dap-long-tests option.
Solution: add the file.
2021-08-24 12:27:54 -06:00
Ward Fisher
5060cc11f7 Update windows binary download link url. 2021-08-24 12:19:04 -06:00
Ward Fisher
48a14fe84a Replace source for Unidata logo. 2021-08-24 11:39:19 -06:00