Commit Graph

569 Commits

Author SHA1 Message Date
Ward Fisher
dbfae7173b Update release notes. 2022-10-17 17:09:35 -06:00
Ward Fisher
ccd1e6a633 Updated for next release cycle. 2022-10-17 13:34:11 -06:00
Ward Fisher
59bfd82f0e Updated release notes. 2022-09-20 15:27:32 -06:00
Ward Fisher
320161f2e6 Updated release notes. 2022-09-20 09:04:03 -06:00
Ward Fisher
2f265b7193
Merge branch 'main' into moreszfixes.dmh 2022-09-16 10:51:22 -06:00
Dennis Heimbigner
db86c2c75a Update release notes 2022-09-09 19:30:38 -06:00
Dennis Heimbigner
1a45ee025f Fix some addtional errors in NCZarr
re: Issue https://github.com/Unidata/netcdf-c/issues/2502

H/T Charlie Zender

* Fix NCZarr handling of endianness value NC_ENDIAN_NATIVE. This now matches how it is handled in libhdf5
* Fix NCZarr handling of char typed attribute with value "". This now matches how it is handled in libhdf5
* Add test for various char attribute values
* Change the mapping of NC_CHAR and NC_STRING to dtype; requires changing some test files also.
* Optimize the testing for NC_ENOTBUILT in NC_open.
* Turn off debugging left on accidentally
* Fix memory leak in tst_pnetcdf.c
* Fix blosc test
2022-09-09 14:25:24 -06:00
Dennis Heimbigner
4fd290cb4b Fix conflicts 2022-09-08 11:15:26 -06:00
Ward Fisher
c489aad975
Merge branch 'main' into bloscfix.dmh 2022-09-06 15:50:01 -06:00
Ward Fisher
0d17edf2ea
Merge branch 'main' into bloscfix.dmh 2022-09-06 13:49:18 -06:00
Dennis Heimbigner
be88b66390 Update Release Notes 2022-09-03 14:54:18 -06:00
Dennis Heimbigner
6abaab967b Fix some problems with PR https://github.com/Unidata/netcdf-c/pull/2492
re: PR https://github.com/Unidata/netcdf-c/pull/2492
re: Issue https://github.com/Unidata/netcdf-c/issues/2494

This PR fixes some problems with the pull request https://github.com/Unidata/netcdf-c/pull/2492 in response to Issue https://github.com/Unidata/netcdf-c/issues/2494.

* Found and fixed more scalar handling problems and add a test case for scalars.
* Cleanup nczarr_test/run_string.sh test
* Document *_nczarr_default_maxstrlen* and *_nczarr_maxstrlen*.

* Support both "Nan" and *Nan* as being floating point constants
  for attributes. It is unclear from the Zarr V2 spec if
  unquoted *Nan* is legal or not, but support for reading.
  Write the quoted versions when writing an attribute.  Similar
  for Infinity constants.
  So NCZarr supports the following constants for use in Attributes
    * *Nan*, "Nan", *-Nan*, "-Nan"
    * *Nanf*, "Nanf", *-Nanf*, "-Nanf"
    * *Infinity*, "Infinity", *-Infinity*, "-Infinity"
    * *Infinityf*, "Infinityf", *-Infinityf*, "-Infinityf"
2022-09-03 14:21:48 -06:00
Ward Fisher
fae0f1fab6 Remove stray conflict markers that made their way into the branch. 2022-08-30 15:07:50 -06:00
Dennis Heimbigner
c9af92df8c conflicts 2022-08-28 13:26:20 -06:00
Dennis Heimbigner
4dc7050dfb update release notes 2022-08-27 20:30:54 -06:00
Dennis Heimbigner
c9205aea1f Update release notes" 2022-08-27 20:29:46 -06:00
Dennis Heimbigner
231ae96c4b Add support for Zarr string type to NCZarr
* re: https://github.com/Unidata/netcdf-c/pull/2278
* re: https://github.com/Unidata/netcdf-c/issues/2485
* re: https://github.com/Unidata/netcdf-c/issues/2474

This PR subsumes PR https://github.com/Unidata/netcdf-c/pull/2278.
Actually is a bit an omnibus covering several issues.

## PR https://github.com/Unidata/netcdf-c/pull/2278
Add support for the Zarr string type.
Zarr strings are restricted currently to be of fixed size.
The primary issue to be addressed is to provide a way for user to
specify the size of the fixed length strings. This is handled by providing
the following new attributes special:
1. **_nczarr_default_maxstrlen** —
This is an attribute of the root group. It specifies the default
maximum string length for string types. If not specified, then
it has the value of 64 characters.
2. **_nczarr_maxstrlen** —
This is a per-variable attribute. It specifies the maximum
string length for the string type associated with the variable.
If not specified, then it is assigned the value of
**_nczarr_default_maxstrlen**.

This PR also requires some hacking to handle the existing netcdf-c NC_CHAR
type, which does not exist in zarr. The goal was to choose numpy types for
both the netcdf-c NC_STRING type and the netcdf-c NC_CHAR type such that
if a pure zarr implementation read them, it would still work and an
NC_CHAR type would be handled by zarr as a string of length 1.

For writing variables and NCZarr attributes, the type mapping is as follows:
* "|S1" for NC_CHAR.
* ">S1" for NC_STRING && MAXSTRLEN==1
* ">Sn" for NC_STRING && MAXSTRLEN==n

Note that it is a bit of a hack to use endianness, but it should be ok since for
string/char, the endianness has no meaning.

For reading attributes with pure zarr (i.e. with no nczarr
atribute types defined), they will always be interpreted as of
type NC_CHAR.

## Issue: https://github.com/Unidata/netcdf-c/issues/2474
This PR partly fixes this issue because it provided more
comprehensive support for Zarr attributes that are JSON valued expressions.
This PR still does not address the problem in that issue where the
_ARRAY_DIMENSION attribute is incorrectly set. Than can only be
fixed by the creator of the datasets.

## Issue: https://github.com/Unidata/netcdf-c/issues/2485
This PR also fixes the scalar failure shown in this issue.
It generally cleans up scalar handling.
It also adds a note to the documentation describing that
NCZarr supports scalars while Zarr does not and also how
scalar interoperability is achieved.

## Misc. Other Changes
1. Convert the nczarr special attributes and keys to be all lower case. So "_NCZARR_ATTR" now used "_nczarr_attr. Support back compatibility for the upper case names.
2. Cleanup my too-clever-by-half handling of scalars in libnczarr.
2022-08-27 20:21:13 -06:00
Dennis Heimbigner
8774625c21 Add option to control accessing external servers
Add options
"--enable-external-server-tests" (automake)
"-DENABLE_EXTERNAL_SERVER_TESTS" (cmake)
to enable/disable tests that access
external URLS, where an external URL refers to some server not
directly under the control of netcdf-c.
This option defaults to off.

The reason for this PR is that external servers can be up or down
or change content without any warning to us, thus causing some
of our tests to fail.

Additionally. and recently, the thredds-test server was shut
down and some of our tests used it. So these tests are disabled
until a suitable replacement server is available.

## Misc. Fixes
* Bump the depth of trace support in nclog.c to avoid overflow
2022-08-27 14:24:47 -06:00
Dennis Heimbigner
517cb6e816 Fix master conflicts 2022-08-05 13:09:03 -06:00
Dennis Heimbigner
2b45c7ec84 Fix support for reading arrays of HDF5 fixed size strings
re: https://github.com/Unidata/netcdf-c/issues/2159

There was error in libhdf5 that only allowed reading a single
value HDF5 fixed string. Fix to allow reading an array of such strings.
Also make sure it still works for scalars and for attributes.
Add a testcase: nc_test4/tst_fixedstring.sh.
2022-07-29 14:47:07 -06:00
Ward Fisher
ba37c0af9f
Merge branch 'main' into enumdfalt.dmh 2022-07-26 15:23:40 -06:00
Ward Fisher
8b583d18ca
Merge branch 'main' into twojsons.dmh 2022-07-19 11:16:04 -06:00
Dennis Heimbigner
b588855ea2 Update release notes 2022-07-17 14:38:54 -06:00
Dennis Heimbigner
59806d0a32 Update release notes 2022-07-12 15:53:01 -06:00
Dennis Heimbigner
3623e17920 Fix some bugs in the blosc filter wrapper
re: Issue https://github.com/Unidata/netcdf-c/issues/2458

The above Github Issue revealed some bugs in the file netcdf-c/plugins/H5Zblosc.c. Fixed and added a testcase. Also discovered that the Blosc LZ sub-compressors do not work well with small datasets.

Misc. Other Change(s): I noticed that the file "dap4_test/baselinethredds/GOES16_CONUS_20170821_020218_0.47_1km_33.3N_91.4W.nc4.thredds" is still causing tar errors during "make distcheck", so I made some changes to do rename at test-time.
2022-07-12 15:19:07 -06:00
Edward Hartnett
4b0f337dbc
Merge branch 'main' into ejh_fix_quantize 2022-07-07 11:16:32 -06:00
Dennis Heimbigner
966a0c1a9f Resolve conflict 2022-07-06 14:21:51 -06:00
Dennis Heimbigner
f50007e21d Update RELEASENOTES.md 2022-07-05 22:06:28 -06:00
Dennis Heimbigner
8b0e1134b4 Ensure that netcdf_json.h does not interfere with ncjson.
re: Issue https://github.com/Unidata/netcdf-c/issues/2419

There are effectively two json subsystems in netcdf-c.
1. ncjson.[ch] in libnetcdf
2. netcdf_json.h for use by plugins so they can be built without need
   for libnetcdf.

The netcdf_json.h file is constructed from the concatenation of
ncjson.h plus ncjson.c. It turned out that in doing this, I was
leaving some symbols externally visible so that if, for some
reason, a plugin was built and needed libnetcdf, then symbol
conflicts arose.

The solution is to prefix the declarations in ncjson.[ch] with a
macro (OPTSTATIC) that can be resolved to either nothing or to
"static". Then in netcdf_json.h, it resolves to "static" and
prevents the symbol conflicts.

Note that netcdf_json.h is constructed once in
netcdf-c/include/Makefile.am with the rule named
"makepluginjson". This means that it is included in the
distribution. However, this also means that if ncjson.[ch] is
changed, then it is necessary to invoke makepluginjson
explicitly to rebuild netcdf_json.h
2022-07-05 22:03:52 -06:00
Ward Fisher
b2641a1fc5
Merge branch 'main' into cmakeplugin.dmh 2022-07-05 16:27:51 -06:00
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
Ward Fisher
ae0b5e7d8c
Merge branch 'main' into cmakeplugin.dmh 2022-06-28 16:38:31 -06:00
Dennis Heimbigner
feb07359cd Update Release notes 2022-06-25 16:49:28 -06:00
Dennis Heimbigner
c633de1125 Fix way CMake handle -DPLUGIN_INSTALL_DIR
re: Issue https://github.com/Unidata/netcdf-c/issues/2429

The CMake tests for -DPLUGIN_INSTALL_DIR only accepted
"on" or "off" as boolean values. So extend to accept e.g.
-DPLUGIN_INSTALL_DIR=yes or -DPLUGIN_INSTALL_DIR=1, etc.
2022-06-25 16:47:49 -06:00
Dennis Heimbigner
d594f72a6d force rebuild 2022-06-23 16:08:58 -06:00
Dennis Heimbigner
bc55212936 Minimal changes to RELEASENOTES to get a working patch 2022-06-23 15:51:21 -06:00
Dennis Heimbigner
f3ef83ea46 fix RELEASENOTES 2022-06-23 14:08:58 -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
Dennis Heimbigner
20a4b655ec Update release notes 2022-06-22 17:09:17 -06: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