Commit Graph

532 Commits

Author SHA1 Message Date
Edward Hartnett
a2aeec8936 documentation 2022-07-02 06:19:52 -06:00
Ward Fisher
b6bdcacde7 Update release notes. 2022-06-30 14:44:09 -06:00
Edward Hartnett
68b0d50af0 change to trigger CI 2022-06-23 07:25:09 +02:00
Edward Hartnett
f9494ab296 change to trigger CI 2022-06-23 07:09:16 +02:00
Edward Hartnett
03668614b8 changed backslash to and 2022-06-23 06:46:01 +02:00
Edward Hartnett
a9ffa1c503 fixed missing quote 2022-06-23 06:44:03 +02:00
Edward Hartnett
650ae97fa8 fixed missing quote 2022-06-23 06:43:23 +02:00
Edward Hartnett
45f29f884a fixed RELEASE_NOTES.md 2022-06-23 06:18:17 +02:00
Ward Fisher
3dfc730af4
Merge branch 'main' into ejh_notes 2022-06-22 13:15:24 -06:00
Dennis Heimbigner
2445d779a3 Update Release Notes 2022-06-17 15:01:03 -06:00
Dennis Heimbigner
aabbdbf64c Make public a limited API for programmatic access to internal .rc tables
re: https://github.com/Unidata/netcdf-c/issues/2337
re: https://github.com/Unidata/netcdf-c/issues/2407

Add two functions to netcdf.h to allow programs to get/set
selected entries into the internal .rc tables. This should fix
the above issues by allowing HTTP.CAINFO to be set to the
certificates directory.  Note that the changes should be
performed as early as possible in the program because some of
the .rc table entries may get cached internally and changing the
entry after that caching occurs may have no effect.

The new signatures are as follows:

1. Get the value of a simple .rc entry of the form "key=value".
Note that caller must free the returned value, which might be NULL.
````
char* nc_rc_get(char* const * key);

@param key table entry key
@return value if .rc table has entry of the form key=value
@return NULL if no such entry is found.
````

2. Insert/Overwrite the specified key=value pair in the .rc table.
````
int nc_rc_set(const char* key, const char* value);

@param key table entry key -- may not be NULL
@param value table entry value -- may not be NULL
@return NC_NOERR if no error
@return NC_EINVAL if error
````

Addendum:

re: https://github.com/Unidata/netcdf-c/issues/2407

Modify dhttp.c to use the .rc entry HTTP.CAINFO if defined.
2022-06-17 14:35:12 -06:00
Dennis Heimbigner
17ee10be4b restart github 2022-06-14 16:52:16 -06:00
Dennis Heimbigner
a30df40f51 Update release notes 2022-06-14 14:46:00 -06:00
Dennis Heimbigner
fda1219534 Use env variable USERPROFILE instead of HOME for windows and mingw.
re: https://github.com/Unidata/netcdf-c/issues/2380
re: https://github.com/Unidata/netcdf-c/issues/2337

This PARTIALLY fixes some HOME problems because under Windows,
the HOME environment variable may not be set. In that case, use the
USERPROFILE environment variable instead.
2022-06-14 14:44:23 -06:00
Ward Fisher
8fc5fe8f14
Merge pull request #2387 from Unidata/v4.9.0-wellspring.wif
Merge relevant info updates back into `main`
2022-06-13 14:58:00 -06:00
Dennis Heimbigner
610c8aacb4 Update release notes 2022-06-13 14:12:47 -06:00
Edward Hartnett
9e5e4974d6 change to trigger CI 2022-06-13 11:55:01 +03:00
Edward Hartnett
5fb44cec29 change to trigger CI 2022-06-12 21:11:34 +03:00
Edward Hartnett
85ce436a19 change to rerun CI 2022-06-12 09:04:19 +03:00
Edward Hartnett
3ad7c6c82e updated release notes 2022-06-11 17:26:35 +03:00
Ward Fisher
c879f710f5 Incorporated GitHub-generated release notes into the manually managed release notes, and updated the list of included dependencies for Windows installer downloads. 2022-06-10 14:43:50 -06:00
Ward Fisher
8dccf6055b Updated release date to reflect actual release. 2022-06-09 14:49:02 -06:00
Ward Fisher
e38f1250fe Updated doxygen version, added target release date to RELEASE_NOTES 2022-06-03 11:03:00 -06:00
Dennis Heimbigner
e05f5c36a8 Merge master 2022-05-17 15:11:31 -06:00
Ward Fisher
771b959cad
Merge branch 'main' into jsonconvention.dmh 2022-05-17 13:24:53 -06:00
Ward Fisher
375e5adfe4
Merge branch 'main' into alwaysxarray.dmh 2022-05-17 13:23:19 -06:00
Dennis Heimbigner
5e5b1b5ba4 Update release notes 2022-05-14 16:08:56 -06:00
Dennis Heimbigner
7b09290a3a Improve filter installation process to avoid use of an extra shell script
re: https://github.com/Unidata/netcdf-c/issues/2338
re: https://github.com/Unidata/netcdf-c/issues/2294

In issue https://github.com/Unidata/netcdf-c/issues/2338,
Ed Hartnett suggested a better way to install filters to a user
defined location -- for Automake, anyway.

This PR implements that suggestion. It turns out to be more
complicated than it appears, so there are fair number of changes;
mostly to shell scripts. Most of the change is in plugins/Makefile.am.

NOTE: this PR still does NOT address the use of HDF5_PLUGIN_PATH
as the default; this turns out to be complex when dealing with NCZarr.
So this will be addressed in a subsequent post 4.9.0 PR.

## Misc. Changes
1. Record the occurrences of incomplete codecs in libnczarr so that
   they can be included in _Codecs attribute correctly. This allows
   users to see what missing filters are referenced in the Zarr file.
   Primarily affects libnczarr/zfilter.[ch]. Also required creating a
   new no-effect filter: H5Zunknown.c.
2. Move the unknown filter test to a separate test file.
3. Incorporates PR https://github.com/Unidata/netcdf-c/pull/2343
2022-05-14 16:05:48 -06:00
Dennis Heimbigner
8eb0712eb6 final1 2022-05-09 14:45:06 -06:00
Ward Fisher
821f69f669
Merge branch 'main' into updatedocs.dmh 2022-05-04 17:01:06 -06:00
Dennis Heimbigner
e667afad36 Update release notes 2022-04-29 14:46:35 -06:00
Dennis Heimbigner
a8aa6e3db3 Remove debug 2022-04-29 14:38:18 -06:00
Ward Fisher
04e8af3842
Merge pull request #2240 from iridl/changelog-link
Fix incorrect PR link
2022-04-11 10:37:39 -06:00
Dennis Heimbigner
8be0782c39 Describe JSON attribute convention 2022-04-06 11:04:22 -06:00
Ward Fisher
3446aa0c13 Merge branch 'winutf8.dmh' of https://github.com/DennisHeimbigner/netcdf-c into gh2222.wif 2022-04-05 10:46:22 -06:00
Ward Fisher
0164512b0f Merge branch 'tinyxml2.dmh' of https://github.com/DennisHeimbigner/netcdf-c into gh2170.wif 2022-03-29 11:31:31 -06:00
Dennis Heimbigner
2ea8aec566 Change so explicit xarray => pure zarr 2022-03-26 13:15:10 -06:00
Dennis Heimbigner
72c90b41c8 Add Release Notes warning 2022-03-25 20:54:03 -06:00
Dennis Heimbigner
9bc1c1bc7e Update release notes 2022-03-23 19:31:33 -06:00
Dennis Heimbigner
a5cae51efc Turn on the xarray convention for NCZarr format
re: https://github.com/pydata/xarray/issues/6374

As a result of a discussion about Xarray (see above issue),
I decided to turn on the xarray convention for NCZarr datasets
where possible so that xarray can read a larger set of nczarr
generated datasets.

This causes the following changes:
* If the user wants to generate a pure zarr file, then the mode "zarr" must be explicitly used; it is no longer the case that "mode=xarray" or mode="noxarray"
implies "mode=zarr".
* It is still the case that "mode=noxarray" will turn off the XArray convention.

The following conditions will cause ''_ARRAY_DIMENSIONS'' to not be written.
* The variable is not in the root group,
* Any dimension referenced by the variable is not in the root group.
2022-03-23 19:28:06 -06:00
Dennis Heimbigner
abde249984 Update release notes 2022-03-16 12:40:10 -06:00
Dennis Heimbigner
7230cf16b4 fix conflicts 2022-03-14 13:08:14 -06:00
Dennis Heimbigner
092c395c76 Update release notes 2022-03-14 13:06:58 -06:00
Dennis Heimbigner
3ffe7be446 Enhance/Fix filter support
re: Discussion https://github.com/Unidata/netcdf-c/discussions/2214

The primary change is to support so-called "standard filters".
A standard filter is one that is defined by the following
netcdf-c API:
````
int nc_def_var_XXX(int ncid, int varid, size_t nparams, unsigned* params);
int nc_inq_var_XXXX(int ncid, int varid, int* usefilterp, unsigned* params);
````
So for example, zstandard would be a standard filter by defining
the functions *nc_def_var_zstandard* and *nc_inq_var_zstandard*.

In order to define these functions, we need a new dispatch function:
````
int nc_inq_filter_avail(int ncid, unsigned filterid);
````
This function, combined with the existing filter API can be used
to implement arbitrary standard filters using a simple code pattern.
Note that I would have preferred that this function return a list
of all available filters, but HDF5 does not support that functionality.

So this PR implements the dispatch function and implements
the following standard functions:
    + bzip2
    + zstandard
    + blosc
Specific test cases are also provided for HDF5 and NCZarr.
Over time, other specific standard filters will be defined.

## Primary Changes
* Add nc_inq_filter_avail() to netcdf-c API.
* Add standard filter implementations to test use of *nc_inq_filter_avail*.
* Bump the dispatch table version number and add to all the relevant
   dispatch tables (libsrc, libsrcp, etc).
* Create a program to invoke nc_inq_filter_avail so that it is accessible
  to shell scripts.
* Cleanup szip support to properly support szip
  when HDF5 is disabled. This involves detecting
  libsz separately from testing if HDF5 supports szip.
* Integrate shuffle and fletcher32 into the existing
  filter API. This means that, for example, nc_def_var_fletcher32
  is now a wrapper around nc_def_var_filter.
* Extend the Codec defaulting to allow multiple default shared libraries.

## Misc. Changes
* Modify configure.ac/CMakeLists.txt to look for the relevant
  libraries implementing standard filters.
* Modify libnetcdf.settings to list available standard filters
  (including deflate and szip).
* Add CMake test modules to locate libbz2 and libzstd.
* Cleanup the HDF5 memory manager function use in the plugins.
* remove unused file include//ncfilter.h
* remove tests for the HDF5 memory operations e.g. H5allocate_memory.
* Add flag to ncdump to force use of _Filter instead of _Deflate
  or _Shuffle or _Fletcher32. Used for testing.
2022-03-14 12:39:37 -06:00
Aaron Kaplan
ead1cd4ad3 Fix incorrect PR link 2022-03-03 13:44:26 -05:00
Ward Fisher
7c113cfae4 Merge branch 'h5align.dmh' of https://github.com/DennisHeimbigner/netcdf-c into gh2206.wif 2022-03-01 09:49:13 -08:00
Ward Fisher
3956e1734a
Merge branch 'main' into vlenfilter.dmh 2022-02-22 16:25:52 -07:00
Dennis Heimbigner
78f8dad82b Update Release Notes 2022-02-19 17:22:11 -07:00
Dennis Heimbigner
9b7202bf06 Explicitly disallow variable length type compression
re: https://github.com/Unidata/netcdf-c/issues/2189

Compression of a variable whose type is variable length
fails for all current filters. This is because at some point,
the compression buffer will contain pointers to data instead
of the actual data. Compression of pointers of course is meaningless.

The PR changes the behavior of nc_def_var_filter so that it will
fail with error NC_EFILTER if an attempt is made to add a filter
to a variable whose type is variable-length.

A variable is variable-length if it is of type string or VLEN
or transitively (via a compound type) contains a string or VLEN.

Also added a test case for this.

## Misc Changes
1. Turn off a number of debugging statements
2022-02-19 16:47:31 -07:00
Dennis Heimbigner
2a9edc8969 Update Release Notes (2) 2022-02-08 22:25:51 -07:00