Commit Graph

7989 Commits

Author SHA1 Message Date
Ward Fisher
90c662c58f Corrected release date in preparation for today's release. 2021-03-30 10:08:05 -06:00
Ward Fisher
95719addd2 Added 1.0.1 to test matrix in support of https://github.com/Unidata/netcdf-c/pull/1931#issuecomment-804312933 2021-03-26 14:50:22 -06:00
Ward Fisher
85f3abb515 Updated expected release date. 2021-03-26 14:47:53 -06:00
Ward Fisher
ac4ade4f18 Merge branch '4.8.0-wellspring-prs.wif' into 4.8.0-wellspring.wif 2021-03-22 16:59:15 -06:00
Ward Fisher
4a7f5aeef2 Added check for H5Literate symbol (hdf5 1.8.x, 1.10.x) or macro (1.12.x)) in support of https://github.com/Unidata/netcdf-c/issues/1965 2021-03-22 13:40:11 -06:00
Ward Fisher
094e2a4ea3 Amend check for H5Literate to work with 1.10.x 2021-03-22 13:24:03 -06:00
Ward Fisher
3e0b36a355 Added check for H5Literate in support of https://github.com/Unidata/netcdf-c/issues/1965 2021-03-22 13:05:23 -06:00
Ward Fisher
fc4bfc6196 Merge branch 'dispatchversion.dmh' of https://github.com/DennisHeimbigner/netcdf-c into 4.8.0-wellspring-prs.wif 2021-03-22 12:41:03 -06:00
Ward Fisher
f75c1c4d7b
Merge branch 'master' into dispatchversion.dmh 2021-03-22 12:40:09 -06:00
Ward Fisher
dab186b688 Merge branch '4.8.0-wellspring.wif' of github.com:Unidata/netcdf-c into 4.8.0-wellspring.wif 2021-03-22 12:38:24 -06:00
Ward Fisher
ffa8a7067f Merge branch '951' of https://github.com/brtnfld/netcdf-c into 4.8.0-wellspring-prs.wif 2021-03-22 11:51:54 -06:00
Ward Fisher
379681ff55 Merge branch 'patch-47' of https://github.com/gsjaardema/netcdf-c into 4.8.0-wellspring.wif 2021-03-22 11:48:10 -06:00
Ward Fisher
98abfb7749 Bumped version numbers to next development version. 2021-03-19 11:49:09 -06:00
Ward Fisher
7535a9c98f Updated SO version in cmakelists.txt in preparation for the 4.8.0 release. 2021-03-19 11:30:38 -06:00
Ward Fisher
c12d80a59b Updated SO version in preparation for public release. 2021-03-19 10:36:13 -06:00
Ward Fisher
2499a540a5 Merge branch 'patch-47' of https://github.com/gsjaardema/netcdf-c into 4.8.0-wellspring.wif 2021-03-18 14:51:18 -06:00
Greg Sjaardema
7732ef1c88
Fix if statement to apply to fflush
Even though the `fflush()` is on the same line as the `fprintf(stderr, ...` statement, it is not part of the `if` and is therefore, executed even if the `wdebug` is not active.  This results in `fflush()` being called more than it should.  

Added parenthesis to property protect the fflush call.
2021-03-18 13:49:07 -06:00
Ward Fisher
a9ba3c53b1
Merge pull request #1960 from ibaned/cmake-have-mpi-info
HAVE_MPI_INFO_F2C was missing from CMake config.h
2021-03-17 16:14:26 -06:00
Ward Fisher
7de6da8fee Address a C99 forward-declaration issue. 2021-03-17 11:21:23 -06:00
Ward Fisher
34e63705a6 Restored cleanup stanza in tst_filter.sh 2021-03-17 10:34:37 -06:00
Ward Fisher
3b4c04d87f Merge branch 'master' into 3.8.0-wellspring.wif 2021-03-16 10:42:11 -06:00
Dan Ibanez
455fa214d2 HAVE_MPI_INFO_F2C was missing from CMake config.h 2021-03-12 12:33:05 -07:00
Ward Fisher
ca4d0fa087
Merge pull request #1957 from bartoldeman/master
Add HAVE_MPI_INFO_F2C to cmake config.h input file
2021-03-11 16:38:41 -07:00
Ward Fisher
ec069646b8 Merge branch '4.8.0-wellspring.wif' of github.com:Unidata/netcdf-c into 4.8.0-wellspring.wif 2021-03-09 13:40:23 -07:00
Ward Fisher
6b2f25818f Fix tst_filter.sh such that it returns an error immediately on failure. 2021-03-09 13:40:12 -07:00
Ward Fisher
2a02e5a32b More modification in support of #1940 2021-03-09 10:49:30 -07:00
Ward Fisher
c5d2937889 Correct bash test failure on Windows in MSYS2 bash shell with Visual Studio-based build, in support of https://github.com/Unidata/netcdf-c/issues/1940 2021-03-08 15:10:50 -07:00
Dennis Heimbigner
39f1c8b7b0 fix cmake error 2021-03-08 14:27:56 -07:00
Dennis Heimbigner
d65a41c6d8 update wrt master 2021-03-08 13:18:12 -07:00
Ward Fisher
c31d5ac655
Merge pull request #1958 from DennisHeimbigner/pathmgmt.dmh
Codify cross-platform file paths
2021-03-08 11:23:14 -07:00
Dennis Heimbigner
27b76d1a9b Update RELEASE_NOTES 2021-03-06 14:17:52 -07:00
Dennis Heimbigner
0428c38b1e Regularize the scoping of types
re: Github issue https://github.com/Unidata/netcdf-c/issues/1956

The function NC_compare_nc_types in libdispatch/dcopy.c uses an
incorrect algorithm to search for types. The core of this is the
function NC_rec_find_nc_type in libdispatch/dcopy.c. Currently
it searchs the current group and its subtree.

Additionally, the function NC4_inq_typeid in libsrc4/nc4internal.c
has been extended to handle fully qualified names. It was originally
designed to do this, but for some reason never completed.

The NC_rec_find_nc_type algorithm has been altered to match the
algorithm used by NC4_inq_typeid. It operates as follows.

Given a file F, group G and a type T. It searches file F2, group
G2, for another type T2 that is equivalent to T.

The search order is as follows.
1. Search G2 for a type T2 equivalent to T.
2. Search upwards in the ancestor groups of G2 for a type T2 equivalent to T.
3. Search the complete group tree of F2 in pre-order, breadth-first order to locate T2 equivalent to T.

Also add a test case to validate algorithm: ncdump/test_scope.sh.

Note, this change may cause compatibility problems, though it is
unlikely because two different equivalent type declarations in
one dataset is unlikely.
2021-03-06 14:09:37 -07:00
Dennis Heimbigner
471268f632 Update RELEASE_NOTES 2021-03-04 13:45:44 -07:00
Dennis Heimbigner
0b7a5382e7 Codify cross-platform file paths
The netcdf-c code has to deal with a variety of platforms:
Windows, OSX, Linux, Cygwin, MSYS, etc.  These platforms differ
significantly in the kind of file paths that they accept.  So in
order to handle this, I have created a set of replacements for
the most common file system operations such as _open_ or _fopen_
or _access_ to manage the file path differences correctly.

A more limited version of this idea was already implemented via
the ncwinpath.h and dwinpath.c code. So this can be viewed as a
replacement for that code. And in path in many cases, the only
change that was required was to replace '#include <ncwinpath.h>'
with '#include <ncpathmgt.h>' and then replace file operation
calls with the NCxxx equivalent from ncpathmgr.h Note that
recently, the ncwinpath.h was renamed ncpathmgmt.h, so this pull
request should not require dealing with winpath.

The heart of the change is include/ncpathmgmt.h, which provides
alternate operations such as NCfopen or NCaccess and which properly
parse and rebuild path arguments to work for the platform on which
the code is executing. This mostly matters for Windows because of the
way that it uses backslash and drive letters, as compared to *nix*.
One important feature is that the user can do string manipulations
on a file path without having to worry too much about the platform
because the path management code will properly handle most mixed cases.
So one can for example concatenate a path suffix that uses forward
slashes to a Windows path and have it work correctly.

The conversion code is in libdispatch/dpathmgr.c, and the
important function there is NCpathcvt which does the proper
conversions to the local path format.

As a rule, most code should just replace their file operations with
the corresponding NCxxx ones defined in include/ncpathmgmt.h. These
NCxxx functions all call NCpathcvt on their path arguments before
executing the actual file operation.

In some rare cases, the client may need to directly use NCpathcvt,
but this should be avoided as much as possible. If there is a need
for supporting a new file operation not already in ncpathmgmt.h, then
use the code in dpathmgr.c as a template. Also please notify Unidata
so we can include it as a formal part or our supported operations.
Also, if you see an operation in the library that is not using the
NCxxx form, then please submit an issue so we can fix it.

Misc. Changes:
* Clean up the utf8 testing code; it is impossible to get some
  tests to work under windows using shell scripts; the args do
  not pass as utf8 but as some other encoding.
* Added an extra utf8 test case: test_unicode_path.sh
* Add a true test for HDF5 1.10.6 or later because as noted in
  PR https://github.com/Unidata/netcdf-c/pull/1794,
  HDF5 changed its Windows file path handling.
2021-03-04 13:41:31 -07:00
Bart Oldeman
0eb1f83fd1 Add HAVE_MPI_INFO_F2C to cmake config.h input file
Without this define parallel netCDF-Fortran did not work
correctly with Open MPI, for example
examples/F90/simple_xy_par_wr.f90
reported
*** An error occurred in MPI_Info_dup
*** reported by process [2543714305,2]
*** on communicator MPI_COMM_WORLD
*** MPI_ERR_INFO: invalid info object
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
***    and potentially your MPI job)

Fixes Unidata/netcdf-fortran#109
2021-03-04 00:33:20 +00:00
Dennis Heimbigner
15c713c1b3 Merge branch 'master' into nczarr_xarray.dmh 2021-03-02 13:38:42 -07:00
Ward Fisher
f388bcec15
Merge pull request #1955 from wsmigaj/bugfix/HDF5_C_LIBRARY_hdf5
Fix name of the HDF5_C_LIBRARY_hdf5 CMake variable
2021-03-02 11:45:59 -07:00
Wojciech Śmigaj
e9ef96b733
Fix name of the HDF5_C_LIBRARY_hdf5 CMake variable 2021-03-02 16:27:19 +00:00
Ward Fisher
e9a7963527
Merge pull request #1953 from DennisHeimbigner/memleak.dmh
Fix memory leak in nccopy.c
2021-03-01 10:07:57 -07:00
Ward Fisher
ac332131e7
Merge pull request #1954 from lesserwhirls/links
Update links related to netCDF-Java and the TDS
2021-02-26 16:16:10 -07:00
Sean Arms
cd91418dca Update d4ts.war and dts.war build instructions
Caught this one by accident as I was looking for links that needed to be
updated. Figured I might as well knock it out while I was there.
2021-02-26 15:14:57 -07:00
Sean Arms
aefadcc6a5 Update links
Update links to netCDF-java and TDS documentation, as well as
various netCDF related issue trackers.
2021-02-26 15:14:37 -07:00
Sean Arms
e603c10964 Update links to netCDF-java documentation. 2021-02-26 15:11:10 -07:00
Dennis Heimbigner
467faeaaeb Fix memory leak in nccopy.c 2021-02-25 15:06:39 -07:00
Ward Fisher
f18381180c Update number of threads used in doxygen developer config file. 2021-02-25 14:26:57 -07:00
Dennis Heimbigner
9420f7bbab Update actions 2021-02-24 13:52:12 -07:00
Dennis Heimbigner
ef499b5b3a Update RELEASE NOTES 2021-02-24 13:50:53 -07:00
Dennis Heimbigner
2afbdbd18f Add support for the XArray Zarr _ARRAY_DIMENSIONS attribute
The XArray implementation that uses Zarr for storage
provides a mechanism to simulate named dimensions.
It does this by adding a per-variable attribute called
_ARRAY_DIMENSIONS. This attribute contains a list of names
to be matched against the shape values of the variable.
In effect a named dimension is created with the name
_ARRAY_DIMENSIONS(i) and length shape(i) for all i
in range 0..rank(variable).
Both read and write support is provided.

This XArray support is only invoked if the mode value
of "xarray" is defined. So for example, as in this URL.
````
https://s3.us-west-1.amazonaws.com/bucket/dataset#mode=nczarr,xarray,s3
````
Note that the "xarray" mode flag also implies mode flag "zarr", so the above
is equivalent to this URL.
````
https://s3.us-west-1.amazonaws.com/bucket/dataset#mode=nczarr,zarr,xarray,s3
````

The primary change to implement this was to unify the handling
of dimension references in libnczarr/zsync.

A test for this and other pure-zarr features was added as
nczarr_test/run_purezarr.sh

Other changes:
* Make sure distcheck leaves no files around.
* Change the special attribute flag DIMSCALEFLAG to HIDDENATTRFLAG
  to support the xarray attribute.
* Annotate the zmap implementations with feature flags such as
  WRITEONCE (for zip files).
2021-02-24 13:46:11 -07:00
Ward Fisher
d136d46d22
Merge pull request #1944 from DennisHeimbigner/deflate.dmh
More fixes to the nccopy filter x chunking algorithm
2021-02-08 11:15:15 -06:00
Ward Fisher
0b6f5c7a27
Merge branch 'master' into deflate.dmh 2021-02-08 11:10:06 -06:00