Commit Graph

538 Commits

Author SHA1 Message Date
Jennifer Oxelson
ef5fcf962b ftp --> resources 2024-05-13 16:50:50 -06:00
Jennifer Oxelson
e2e128f2de
removal of ftp and contrib site 2024-05-01 12:29:58 -06:00
Jennifer Oxelson
7429ec3629
removal of ftp site 2024-05-01 12:23:31 -06:00
Jennifer Oxelson
7748315558
removal of ftp and netcdf contrib site 2024-05-01 12:22:03 -06:00
Jennifer Oxelson
585837af73
removal of ftp and netcdf contrib site 2024-05-01 12:18:19 -06:00
Kyle Shores
8fd6dcb979 Replace ENABLE_S3 with NETCDF_ENABLE_S3 2024-03-18 15:54:15 -05:00
Kyle Shores
d1334f7b88 Replace ENABLE_NCZARR with NETCDF_ENABLE_NCZARR 2024-03-18 15:52:19 -05:00
Kyle Shores
dcdff98109 Replace ENABLE_LOGGING with NETCDF_ENABLE_LOGGING 2024-03-18 15:52:11 -05:00
Kyle Shores
831bf665ce Replace ENABLE_DOXYGEN with NETCDF_ENABLE_DOXYGEN 2024-03-18 15:51:24 -05:00
Kyle Shores
b4eb8bf019 Replace ENABLE_BYTERANGE with NETCDF_ENABLE_BYTERANGE 2024-03-18 15:50:57 -05:00
Kyle Shores
dda2c2de69 merging main 2024-02-22 09:59:05 -06:00
Ward Fisher
85e9b3df11 Adding new style sheet to user documentation. 2024-02-16 17:22:19 -07:00
Ward Fisher
80e1ba2a57 Integrating new doxygen css stylesheet. 2024-02-16 15:47:15 -07:00
Peter Hill
2dd7b50d2e
Docs: Update examples of specifying custom library paths to CMake 2024-02-16 10:49:50 +00:00
Ward Fisher
efbb906134 Merge branch 'main' into gh2859.wif 2024-02-07 10:30:11 -07:00
Ward Fisher
a05f87432c Remove stale section from documentation. 2024-02-06 10:46:22 -07:00
Ward Fisher
447bcd27f8 Trying out a new style sheet for modern doxygen, see https://jothepro.github.io/doxygen-awesome-css/ for more information. Starting by updating the developer documentation system, invoked from the top-level netcdf-c directory via 'doxygen docs/Doxyfile.developer' 2024-02-01 13:58:27 -08:00
Ward Fisher
5365b19fa3 Added individual authors, also updated docs/credits.md with nczarr attribution. 2024-01-31 15:27:18 -08:00
Ward Fisher
b588c009cb Updated doxygen files for older, less-forgiving versions of doxygen (1.9.1, at least) 2023-12-21 09:56:31 -07:00
Ward Fisher
3361fc5901 Clean up doxygen warnings that were being treated as failures. 2023-12-21 09:39:44 -07:00
Ward Fisher
f2eef5a262 Correcting a weird doxygen issue that has appeared. 2023-12-20 16:06:08 -07:00
Ward Fisher
b55211b6c7
Merge branch 'main' into lossydoc 2023-12-19 10:08:01 -07:00
Ward Fisher
e662790a66 Changed link to netCDF-Fortran documentation. 2023-12-14 10:46:19 -07:00
Ward Fisher
2616e2c411
Merge pull request #2745 from e-kwsm/chmod-x
chore: unset executable flag
2023-12-11 17:28:46 -07:00
Ward Fisher
74ecacffb5 Updated static software.html page with reference to met.3d 2023-10-05 16:06:47 -06:00
Dennis Heimbigner
df3636b959 Mitigate S3 test interference + Unlimited Dimensions in NCZarr
This PR started as an attempt to add unlimited dimensions to NCZarr.
It did that, but this exposed significant problems with test interference.
So this PR is mostly about fixing -- well mitigating anyway -- test
interference.

The problem of test interference is now documented in the document docs/internal.md.
The solutions implemented here are also describe in that document.
The solution is somewhat fragile but multiple cleanup mechanisms
are provided. Note that this feature requires that the
AWS command line utility must be installed.

## Unlimited Dimensions.
The existing NCZarr extensions to Zarr are modified to support unlimited dimensions.
NCzarr extends the Zarr meta-data for the ".zgroup" object to include netcdf-4 model extensions. This information is stored in ".zgroup" as dictionary named "_nczarr_group".
Inside "_nczarr_group", there is a key named "dims" that stores information about netcdf-4 named dimensions. The value of "dims" is a dictionary whose keys are the named dimensions. The value associated with each dimension name has one of two forms
Form 1 is a special case of form 2, and is kept for backward compatibility. Whenever a new file is written, it uses format 1 if possible, otherwise format 2.
* Form 1: An integer representing the size of the dimension, which is used for simple named dimensions.
* Form 2: A dictionary with the following keys and values"
   - "size" with an integer value representing the (current) size of the dimension.
   - "unlimited" with a value of either "1" or "0" to indicate if this dimension is an unlimited dimension.

For Unlimited dimensions, the size is initially zero, and as variables extend the length of that dimension, the size value for the dimension increases.
That dimension size is shared by all arrays referencing that dimension, so if one array extends an unlimited dimension, it is implicitly extended for all other arrays that reference that dimension.
This is the standard semantics for unlimited dimensions.

Adding unlimited dimensions required a number of other changes to the NCZarr code-base. These included the following.
* Did a partial refactor of the slice handling code in zwalk.c to clean it up.
* Added a number of tests for unlimited dimensions derived from the same test in nc_test4.
* Added several NCZarr specific unlimited tests; more are needed.
* Add test of endianness.

## Misc. Other Changes
* Modify libdispatch/ncs3sdk_aws.cpp to optionally support use of the
   AWS Transfer Utility mechanism. This is controlled by the
   ```#define TRANSFER```` command in that file. It defaults to being disabled.
* Parameterize both the standard Unidata S3 bucket (S3TESTBUCKET) and the netcdf-c test data prefix (S3TESTSUBTREE).
* Fixed an obscure memory leak in ncdump.
* Removed some obsolete unit testing code and test cases.
* Uncovered a bug in the netcdf-c handling of big-endian floats and doubles. Have not fixed yet. See tst_h5_endians.c.
* Renamed some nczarr_tests testcases to avoid name conflicts with nc_test4.
* Modify the semantics of zmap\#ncsmap_write to only allow total rewrite of objects.
* Modify the semantics of zodom to properly handle stride > 1.
* Add a truncate operation to the libnczarr zmap code.
2023-09-26 16:56:48 -06:00
Eisuke Kawashima
d755c4ff32
chore: unset executable flag 2023-08-23 13:31:42 +09:00
Dennis Heimbigner
fb422e696b Update docs/filters.md and RELEASENOTES.md 2023-06-23 13:42:16 -06:00
Dennis Heimbigner
12ec5711d7 Fix some problems with Earthdata authorization.
re: Issue https://github.com/Unidata/netcdf-c/issues/2704

The issue reported problems accessing e.g. opendap.earthdata.nasa.gov,
which uses the authentication mechanisms of urs.earthdata.nasa.gov.
The file *docs/auth.md* describes how to setup the proper authorization
mechanisms for earthdata, but there turned out to be some bugs
in the code that prevented this from working.

## Primary Changes
* Add some clarification text to *auth.md*.
* Fix the process for loading and merging *.ncrc* and *.dodsrc* file to conform to documentation.
* Fix *NC_s3urlrebuild* so that non-S3 urls are passed through unchanged.
* Fix a bug in the .rc test *test_rcmerge.sh*.
2023-06-10 18:51:13 -06:00
Dennis Heimbigner
fb40a72b45 Improve performance of the nc_reclaim_data and nc_copy_data functions.
re: Issue https://github.com/Unidata/netcdf-c/issues/2685
re: PR https://github.com/Unidata/netcdf-c/pull/2179

As noted in PR https://github.com/Unidata/netcdf-c/pull/2179,
the old code did not allow for reclaiming instances of types,
nor for properly copying them. That PR provided new functions
capable of reclaiming/copying instances of arbitrary types.

However, as noted by Issue https://github.com/Unidata/netcdf-c/issues/2685, using these
most general functions resulted in a significant performance
degradation, even for common cases.

This PR attempts to mitigate the cost of using the general
reclaim/copy functions in two ways.

First, the previous functions operating at the top level by
using ncid and typeid arguments. These functions were augmented
with equivalent versions that used the netcdf-c library internal
data structures to allow direct access to needed information.
These new functions are used internally to the library.

The second mitigation involves optimizing the internal functions
by providing early tests for common cases. This avoids
unnecessary recursive function calls.

The overall result is a significant improvement in speed by a
factor of roughly twenty -- your mileage may vary. These
optimized functions are still not as fast as the original (more
limited) functions, but they are getting close. Additional optimizations are
possible. But the cost is a significant "uglification" of the
code that I deemed a step too far, at least for now.

## Misc. Changes
1. Added a test case to check the proper reclamation/copy of complex types.
2. Found and fixed some places where nc_reclaim/copy should have been used.
3. Replaced, in the netcdf-c library, (almost all) occurrences of nc_reclaim_copy with calls to NC_reclaim/copy. This plus the optimizations is the primary speed-up mechanism.
4. In DAP4, the metadata is held in a substrate in-memory file; this required some changes so that the reclaim/copy code accessed that substrate dispatcher rather than the DAP4 dispatcher.
5. Re-factored and isolated the code that computes if a type is (transitively) variable-sized or not.
6. Clean up the reclamation code in ncgen; adding the use of nc_reclaim exposed some memory problems.
2023-05-20 17:11:25 -06:00
Dennis Heimbigner
98477b9f25 ## Addendum [5/9/23]
It turns out that attempting to test S3 using a github action secret is a very complex process. So, this was disabled for github actions. However, a new *run_tests_s3.yml* action file was added that will eventually encapsulate S3 testing.
2023-05-09 21:13:49 -06:00
Dennis Heimbigner
49737888ca Improve S3 Documentation and Support
## Improvements to S3 Documentation
* Create a new document *quickstart_paths.md* that give a summary of the legal path formats used by netcdf-c. This includes both file paths and URL paths.
* Modify *nczarr.md* to remove most of the S3 related text.
* Move the S3 text from *nczarr.md* to a new document *cloud.md*.
* Add some S3-related text to the *byterange.md* document.

Hopefully, this will make it easier for users to find the information they want.

## Rebuild NCZarr Testing
In order to avoid problems with running make check in parallel, two changes were made:
1. The *nczarr_test* test system was rebuilt. Now, for each test.
any generated files are kept in a test-specific directory, isolated
from all other test executions.
2. Similarly, since the S3 test bucket is shared, any generated S3 objects
are isolated using a test-specific key path.

## Other S3 Related Changes
* Add code to ensure that files created on S3 are reclaimed at end of testing.
* Used the bash "trap" command to ensure S3 cleanup even if the test fails.
* Cleanup the S3 related configure.ac flag set since S3 is used in several places. So now one should use the option *--enable-s3* instead of *--enable-nczarr-s3*, although the latter is still kept as a deprecated alias for the former.
* Get some of the github actions yml to work with S3; required fixing various test scripts adding a secret to access the Unidata S3 bucket.
* Cleanup S3 portion of libnetcdf.settings.in and netcdf_meta.h.in and test_common.in.
* Merge partial S3 support into dhttp.c.
* Create an experimental s3 access library especially for use with Windows. It is enabled by using the options *--enable-s3-internal* (automake) or *-DENABLE_S3_INTERNAL=ON* (CMake). Also add a unit-test for it.
* Move some definitions from ncrc.h to ncs3sdk.h

## Other Changes
* Provide a default implementation of strlcpy and move this and similar defaults into *dmissing.c*.
2023-04-25 17:15:06 -06:00
Ward Fisher
090f4507b0 Update issue with make distcheck 2023-04-12 14:14:38 -06:00
Ward Fisher
c8b3b37b1a Merge branch 'dap4tests2.dmh' of https://github.com/DennisHeimbigner/netcdf-c 2023-04-11 16:42:32 -06:00
Ward Fisher
91591d37a0
Merge pull request #2660 from Unidata/v4.9.2-wellspring.wif
v4.9.2 Wellspring branch
2023-04-11 15:32:26 -06:00
Edward Hartnett
0c20199272 added fortran 2023-04-06 10:04:12 -06:00
Edward Hartnett
397912bbde documenting logging 2023-04-06 09:05:19 -06:00
Edward Hartnett
ea8d8dd05b documenting logging 2023-04-06 08:04:57 -06:00
Ward Fisher
b41127bec5 Bump version strings to reflect next development version. 2023-03-13 15:43:44 -06:00
Dennis Heimbigner
8f55cf31cf update 2023-02-08 16:17:31 -07:00
Ward Fisher
9be94fe19f Clean up some garbled output from Doxygen. 2023-02-01 11:27:50 -07:00
Ward Fisher
488b83f1f6 re-added quickstart filters document. 2023-02-01 11:20:40 -07:00
Ward Fisher
ff103d4f7c A bit of doxygen cleanup. 2023-02-01 11:19:37 -07:00
Ward Fisher
a89bdd70a1 Remove dangling file. 2023-01-31 15:54:02 -07:00
Ward Fisher
1c4a11ec50 Updating filter documentation with a quickstart guide. 2023-01-31 15:52:51 -07:00
Ward Fisher
8192d69dc1 Small tweak. 2023-01-31 09:49:30 -07:00
Dennis Heimbigner
ebf86ac637 update against main 2023-01-28 13:45:35 -07:00
Dennis Heimbigner
158c790ae5 Fix Memory Leak
re: PR https://github.com/Unidata/netcdf-c/pull/2584
re: PR https://github.com/Unidata/netcdf-c/pull/2596

Repaired a memory leak in *netcdf-c/ncdump/utils.c*. I think introduced
by PR 2584.

## Misc. Other Changes
* Fixed references to *netcdf-c/docs/byterange.dox* ->  *netcdf-c/docs/byterange.md* (PR 2596).
2023-01-26 13:11:25 -07:00
Ward Fisher
78030b1be2 Update additional documentation infrastructure. 2023-01-24 14:46:33 -07:00
Ward Fisher
88fa7c7261 Remove internal flag from byterange documentation. 2023-01-23 10:10:07 -07:00