diff --git a/.travis.yml b/.travis.yml index f291d117b..bbde3f629 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ # virt: lxd # use a lxd container # arch: amd64 # optional, this is the default, routes to a full VM # os: linux # optional, this is the default -dist: focal # xenial (Ubuntu 16) is the default; focal is Ubuntu 20 +dist: jammy # xenial (Ubuntu 16) is the default; focal is Ubuntu 20; jammy is Ubuntu 22 vm: size: x-large @@ -78,12 +78,6 @@ env: # only install things when needed to save time. jhrg 4/1/26 before_install: - if test -n "$AWS_ACCESS_KEY_ID" -a \( "$TRAVIS_JOB_NAME" = "make" -o "$TRAVIS_JOB_NAME" = "asan" -o "$TRAVIS_JOB_NAME" = "distcheck" \); then pip install --user awscli; fi - # fix for Java 17 install for Sonar from Travis CI support. jhrg 1/23/24 - - if test "$TRAVIS_JOB_NAME" = "scan"; then curl -s "https://get.sdkman.io" | bash; fi - - if test "$TRAVIS_JOB_NAME" = "scan"; then source "$HOME/.sdkman/bin/sdkman-init.sh"; fi - - if test "$TRAVIS_JOB_NAME" = "scan"; then sdk install java 17.0.2-open; fi - - if test "$TRAVIS_JOB_NAME" = "scan"; then sdk use java 17.0.2-open; fi - - if test "$TRAVIS_JOB_NAME" = "scan"; then java -version; fi install: - which bison flex @@ -112,9 +106,12 @@ stages: # build but only for things that are not pull requests with the sole exception that branches # that end in '-test-deploy' are also allowed to trigger a BES build. jhrg 1/18/24 if: type != pull_request AND NOT branch =~ ^(.*-test-scan)$ OR branch =~ ^(.*-test-deploy)$ + - name: never + if: branch = never jobs: include: + # build - stage: build name: "make" env: CACHE_NAME=make @@ -124,6 +121,7 @@ jobs: - ./configure --disable-dependency-tracking --prefix=$prefix - make -j$BUILD_PROCS && make check -j$BUILD_PROCS && make install + # build - stage: build name: "asan" env: CACHE_NAME=asan @@ -132,7 +130,7 @@ jobs: - autoreconf --force --install --verbose - ./configure --disable-dependency-tracking --prefix=$prefix --enable-developer --enable-asan - make -j$BUILD_PROCS && make check -j$BUILD_PROCS - + # build - stage: build name: "distcheck" env: CACHE_NAME=distcheck @@ -147,6 +145,13 @@ jobs: env: CACHE_NAME=scan TESTSUITEFLAGS=-j1 script: + - echo "------ BEGIN scan ---------------------------------------------------------" + # SonarScan wants Java-21 + - sudo apt-get update + - sudo apt-get install -y openjdk-21-jdk + - export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64" + - export PATH="$JAVA_HOME/bin:$PATH" + - java -version - export LIBDAP_BUILD=sonar - export SONAR_TOKEN=$SONAR_LOGIN - autoreconf --force --install --verbose diff --git a/ChangeLog b/ChangeLog index 8c0ada201..3e7a746b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,918 @@ +2026-07-21 Miguel Jimenez-Urias + + update build offset number + +2026-07-20 James Gallagher + + #370 coverage cleanup and #365 Document coverage data + generation (PR #371) + * Remove python script that tested coverage data validity + * Added a note to README.md about README.coverage.md + * Added a pre-commit template + + Sonar fixes for HTTP -vs- HTTPS and '/tmp' use + +2026-07-18 James Gallagher + + Backed out the use of Sonar build wrapper on make check for now + This will take more work - seemed trivial, but it introduces + more + code to the analysis. Pick this up on a branch. + +2026-07-17 James Gallagher + + Turn off the 'diff script' and add 'build wrapper' to make + check in the scan step + + Diff the gcovr coverage.xml and compile commands JSON built by + Sonar + + Changes for test coverage (#366) + Remove DAPCache3Test from the CMake builds + Sync sonar-project.properties and gcovr.config + Added gcovr version print to .travis.yml + Removed macos 15 build - we don't use that OS any more + Move from the buggy (WRT sonarscan) gcovr 4.2 to 8.2 + +2026-07-14 James Gallagher + + I removed the code in tidy-warnings (#361) + +2026-07-07 James Gallagher + + Change DOI badge to new link + Updated DOI badge link in README.md. This DOI points to the + latest version of the software on Zenodo. + +2026-06-04 kyang2014 + + HYRAX-2176, fix the segmentation fault bug when a DAP4 + attribute container doesn't contain attributes and the find menthod is + called. (#359) + +2026-06-01 James Gallagher + + Added mac os 26 to the GHA workflow + + HYRAX-2119 Remove macos-intel from GHA (#358) + * Remove macos-intel from GHA + * Tweak to settings.json for vscode + +2026-05-19 James Gallagher + + Fixes to settings.json + [skip ci] + +2026-05-18 James Gallagher + + Added rulers to vscode C++ + +2026-05-10 James Gallagher + + Merge branch 'master' of https://github.com/OPENDAP/libdap4 + + cleanup + +2026-05-08 kyang2014 + + HYRAX-2149, add the error message when a DAP4 dimension cannot + be fou… (#356) + * HYRAX-2149, add the error message when a DAP4 dimension + cannot be found in a DAP4 expression constraint. Previously a + segmentation fault occurs. Verify with an example and it returns the + expected output. + * clang-format + * more clang-format + +2026-04-21 Nathan Potter + + Revert dmrVersion change "Jhrg/hyrax-1963 dmr version bump + (#320)" (#355) + * Revert "Jhrg/hyrax-1963 dmr version bump (#320)" + This reverts commit e3bf0b3d8c2f0665bd3758c54fdd4a11b802130f. + * Force D4ParserSax2 to always set dmrVersion="1.0" when + parsing a DMR + +2026-04-20 James Gallagher + Hannah Robertson + + cmake with autotest (#350) + This idea is a different take on using cmake to build libdap4. + The same build process + is in place. I changed how the integration tests are run. + Before, I made them + use ctest and more completely integrated then with the cmake + system. The problem + was that about 1k lines of python were needed and the result + was less useful than + using autotest. I switched to using ctest/cmake for the unit + tests but autotest for the + integration tests. The downside is that developers need both + systems (cmake and + autoconf) on their machines. That seems like a small price to + pay for better tests. + --------- + +2026-04-10 Sam Lloyd + James Gallagher + + HYRAX-1758 seg_read_write_unittests + * seg_read tests, broken + * little baby tests + * 2GB read tests + * 2GB write tests and 4GB tests + * draft-PR fix + * clang psuedo fixes + * more clang psuedo fixes + * more clang psuedo fixes II + * more clang psuedo fixes III + * splitting of the segReadWrite unit tests + --------- + +2026-04-03 James Gallagher + + HYRAX-2087 D4StreamMarshallerTest fix and gh workflow speedup + (#349) + I experimented with a number of ways to reduce CICD times. The + most effective seem to be + using path-ignore and caching of previous builds. These changes + can be transferred to the BES + where build times are quite long. In the course of doing this, + I addressed a warning that made the + CICD build output hard to read and fixed the issue in + HYRAX-2087. + +2026-03-24 James Gallagher + + Added AI doc about repo layout + + Added the prompts I used for the questions about AI + + Merge branch 'master' of https://github.com/OPENDAP/libdap4 + + Added notes about codex in vscode + +2026-03-16 kyang2014 + + Hyrax 1950 (#347) + * HYRAX-2007, add a member and a method to store the ratio of + the array size to the real storage size. Application needs to feed in + the number. This member can apply to both the whole array or the subset. + * HYRAX-1950, make the switch-branch work. + * HYRAX-1950, add two new fields. One for the direct chunk + IO, one for the optimization to see if compression should be turned on + in the fileout netCDF module. + * HYRAX-1950, use clang-format. + * HYRAX-1950, set the filled chunk flag for the variable + storage info. + * HYRAX-1950, follow clang-format. + * HYRAX-1950, reduce a sonar cloud code smell + +2026-03-12 James Gallagher + + Improvements to the libdap README documentation (#346) + - Added README.vscode.md + - Normalized NEWS and README.md + - Removed silly text about the DOI - I figured out how to get a + DOI to the latest release. Zenodo actually has one so that the + README does not have to be changed for each release. + +2026-03-10 James Gallagher + + Minor tweak to my vscode stuff + + Add (more) documentation to libdap (#342) + Start of more complete documentation for libdap. + Stage 1 docs from the Doxygen-plan.md and the AGENTS.md file + Ran stage 2, ..., 9 with a separate approval and commit for + each stage + plan. Additional steps I took: + - Documentation build date to main page + - Replaced @defgroup with @name. @defgroup names a 'module' not + a group of related methods. @name is used to group + documentation for + a related group of methods in a class. + + Could this be the last vscode branch? (#344) + Moved versioned vscode files to .vscode/jhrg + + Refactored configure.ac (#345) + Added the DAP 2 spec and a codex-generated deep-dive + Used codex to write and implement a plan to streamline + configure.ac + The plan is in the docs dir as configure-ac-refactor-plan.md + + Fixed minor errors in run_tests_cppunit.h (#340) + Fixed the DBG macros when they hold 2++ statements + +2026-03-09 James Gallagher + + More .vscode support (#343) + tasks.json for vscode needs $prefix's value - used a template + file. + +2026-03-03 James Gallagher + + Merge branch 'master' of https://github.com/OPENDAP/libdap4 + + Added the Doxygen-documentation-plan.md + [skip-ci] + + Added the suggested README for the vscode edits (#339) + Also removed the generated compile_commands.json file from git. + Normalized NEWS and README.md + Added some missing requirements to the README + +2026-03-02 James Gallagher + + I made a settings.json.template so settings.json can be + customized (#338) + I also modified tasks.json and launch.json so they use info in + the + settings.json file, eliminating the need to edit those for + changes + to the hyrax $prefix env var. I added settings.json to + .gitignore + so that one person's $prefix paths don't over write someone + elses. + + HYRAX-1903: Use 'override' where appropriate (#337) + Updated code to use override, dropped + -Wno-inconsistent-missing-override. + Also, fixed self-assignment tests and suppressed warnings + + Add support for the autotools build with vscode. (#336) + * Added a named configuration to .vscode/settings.json + * For debugger support that is more complete, I fixed issues in + launch.json. + I still had to make the dSYM lib by hand, the command to make + the dSYM lib was: + dsymutil .libs/libdap.27.dylib -o .libs/libdap.27.dylib.dSYM + * The four compiler warnings from the flex scanner code are now + suppressed. + * /Users/jhrg --> ~ in PATH settings. This will need more work, + but it's good enough. + +2026-02-24 James Gallagher + Hannah Robertson + + Unit test experiment - these were written by codex (#335) + Added BaseTypeTest.cc. + Fixed my hack to include DAPCache3Test w/o adding it to the + library. + +2026-01-27 James Gallagher + + auto * --> auto in MarshallerTest and marshT + + Resolve conflicts + + Merge branch 'master' of https://github.com/OPENDAP/libdap4 + + Revert "Switched so edits to use 'auto' and not 'auto *' for + pointer types." + This reverts commit aef651e6a4d0b08121f410dc794f6b0ab1545c10. + + Switched so edits to use 'auto' and not 'auto *' for pointer + types. + + Add comment about warning suppression. + + Add comment about warning suppression. + + HYRAX-2000 warnings in tests (#333) + RCReaderTest fixed + More fixes for RCReaderTest + Fixed warnings in MarshallerTest + Suppress warnings for a range of lines in XDRUtil.cc + Added diagnostic_suppression.h to Makefile.am for distcheck + + Added diagnostic_suppression.h to Makefile.am for distcheck + + Reinstate in MarshallerTest + + Reinstate in RCReaderTest + +2026-01-26 James Gallagher + + Reinstate + + Added reference for the warning suppression macro + + Suppress warnings for a range of lines in XDRUtil.cc + + more fixes in MarshallerTest + + more fixes in MarshallerTest + + Fixed warnings in MarshallerTest + + More fixes for RCReaderTest + + RCReaderTest fixed + +2026-01-22 James Gallagher + + Jhrg/hyrax-1963 dmr version bump (#320) + I bumped up the DMR version number to 2.0 from 1.0 + This indicates the change in the serialization algorithm + to match the DAP4 specification. + +2026-01-06 James Gallagher + + make cmake tests tolerable (#329) + Remove integration test .out files for das, dds, ..., tests + Added baseline generation for the das, dds, ..., tests + For the dmr tests, move the test COMMAND to a bash script, + adding a level of + indirection but simplifying debugging. + dmr-test and expr-test now support parallel tests + Added TempFileTest unit test to the cmake build + +2025-12-29 James Gallagher + + I fixed several unit tests that were not being run + +2025-12-22 Nathan Potter + + Adding support for test deployment tracking (#321) + +2025-12-01 James Gallagher + + jhrg/libdap4-305, HYRAX-1948, serialization bug (#306) + The DAP4 specification was/is confusing about the order of + serialization + of datasets that contain Groups. The order is specified, but in + the best + form of a specification, the explanation is spread across two + parts of the + spec. + The variables in the root group are now serialized first, then + variables in + child groups. + Added tests for this bug and a fix for the broken + implementation in libdap. + Tested the fix against the NSIDC OA application, which is the + only NGAP + we are aware of that makes direct use of the DAP4 binary + responses using + client code from Unidata. + +2025-11-25 James Gallagher + + HYRAX-1960: Fix cppunit search by configure (#319) + +2025-11-19 Nathan Potter + + Additional RHEL9 work. (#318) + * Dropped AWS creds from docker invocation when building rocky9 + rpms. + * Added rocky9 stuff to before_deploy and deploy + +2025-11-18 Nathan Potter + + Rhel9 (#317) + * Made a specialized version of the rpm build scripts both + rhel8 and rhel9 + * Added Travis stage for rhel9 rpms + +2025-11-12 James Gallagher + + HYRAX-1911: Fixed the broken shared library version numbers in + the cmake build. (#316) + +2025-11-07 James Gallagher + + HYRAX-1945: Warnings found on the GitHub actions build fixed + (#315) + Warnings found on the GitHub actions build fixed + +2025-11-06 James Gallagher + Hannah Robertson + + HYRAX-1923: cmake presets (#313) + There is a problem with the precommit code and languages like + yaml and json. + Also, the preset-based build failed a test (ErrorTest) + +2025-11-05 kyang2014 + + Hyrax 1709 (#310) + * HYRAX-1709, make getdap4 prints the full path for variables + under a non-root group. + * HYRAX-1709, make the seqeuence data print the row again. + * HYRAX-1709, make the source code to following clang-format. + * HYRAX-1709, reduce code smells detected by sonar cloud. + * HYRAX-1709, reduce another code smell. + * HYRAX-1709, remove some debugging info. + +2025-10-31 kyang2014 + James Gallagher + + Hyrax 1906 dev final (#312) + * HYRAX-1906, add a debug unit-test + * HYRAX-1906, create a simple program to duplicate the call of + dmr memory cache + * HYRAX-1906-test-deploy add the dmr memory testing code + * include the memory header + * Correct typo in order to build rpm successfully + * Fix to D4EnumDefs parent pointer assignment in + D4Group::m_duplicate + * changing the order of releasing the resource. + * HYRAX-1906, add a check to the parent pointer in the + fully_qualified_names() to make sure it is not null. + * Add another check for nullptr. + * HYRAX-1906, WIP + * HYRAX-1906, Still WIP. Add more debugging info. + * HYRAX-1906, WIP update the DAP4 dimensons after copying the + objects. + * HYRAX-1906, turn off some debugging information. + * HYRAX-1906, trigger another hyrax trivis test + * HYRAX-1906, add three more complex units as well as the + corresponding xml files to test the copy constructor of DMR that + contains the groups and the dimensions. + * HYRAX-1906, more clean up + * HYRAX-1906, clean up and make the code follow clang-format. + * HYRAX-1906, another file to follow the clang-format + * HYRAX-1905, reduce code smells and update method names, + comments. + * HYRAX-1906, update a method name. + --------- + +2025-10-28 James Gallagher + + Merge remote-tracking branch 'origin/master' + + Removed encrypted information + +2025-10-27 Nathan Potter + + It's TravisCI Time + +2025-10-21 James Gallagher + + HYRAX-1909: Changed #include of libxml/parserInternals.h to + libxml/SAX2.h (#311) + Add #include to ErrorTest for strerror on Ubuntu + +2025-10-03 Sam Lloyd + + Sbl hyrax 1351 meyers libdap singletons (#309) + * singleton fixes first pass, broken unit-tests + * singletons changes, travis test run + * removed comments and '#if 0' blocks [skip ci] + * review changes + +2025-08-08 James Gallagher + + Repaired the BUILD_DEVELOPER and USE_ASAN options + These were set in the sub-CmakeLists files - not needed - + and there was a name mix up. + +2025-08-07 James Gallagher + + HYRAX-1857 Removed TestCommon.cc from the cmake build (#303) + It was already gone from the autotools build + + Jhrg/hyrax 1856 dmr dap2 (#302) + Fixed result file writing for cmake builds, baselines for + ...nc.das + Fixed issues '\' representation. + Fixed DmrRoundTripTest's write-result-on-debug feature: + This needed a change to work with the cmake build since + it was writing to a directory that does not exist with + that build. + +2025-08-05 James Gallagher + + Jhrg/hyrax 1855 warnings (#301) + Edits to remove warnings about missing 'override' + Fixed the annoying chunk[] warning in D4Connect.cc + Added my python code to hack warnings. + Removed redundant 'virtual' on 'override' declarations. + +2025-08-05 ndp-opendap + + hail-mary + +2025-08-05 Nathan Potter + + Optional checksums redux (#299) + * Making it so that optional checksums also means optional + computation of said checksums + +2025-08-04 James Gallagher + Slav Korolev + ndp-opendap + + Jhrg/hyrax 1854 dmr2dds branches (#300) + HK-450. Made show shared dimensions condition. + The test (DmrRoundTripTest) now passes. + Fixed memory leak in DmrRoundtripTest + Removed #if 0 stuff. + --------- + +2025-07-31 James Gallagher + ndp-opendap + + Jhrg/hyrax 1849 http test checksums (#298) + HTTPThreadConnectTest fixed for 'empty end chunk' behavior + See HYRAX-1849 + +2025-07-30 James Gallagher + + Fixed the mysterious disappearing config.log with make clean + (#297) + Also fixed a bug in the HTTPThreadConnectTestb + +2025-07-21 James Gallagher + + Jhrg/HYRAX-1847-DMR-tests-to-numbers (#294) + * All the DMR tests use numbers - the odd names are gone. + * More cleaned up the string quoting.;Wrapping strings + in "" is often not needed in cmake. I removed more, but + it seems somewhat pointless. Still, it's good to know. Any + function argument with a ';' needs to be double-quoted. + * I removed two tests from HTTPThreadConnect Test. See + HYRAX-1849. + +2025-07-20 James Gallagher + + Fixed HTTPThreadConnectTest for the new no crc server. + +2025-07-18 James Gallagher + + Jhrg/hyrax 1836 cmake part 4 (#291) + Added the DMR integration tests + Most of the expr tests now work, but there are 2 problems + 1. I think there are still some broken baselines + 2. There are some problems with quoting the CEs for strings + Now all 500+ tests work in/with cmake. The parallel option + works. + Started moving the DMR tests to use numbers. + +2025-07-17 James Gallagher + + More bad baselines fixed. (#293) + +2025-07-17 Nathan Potter + James Gallagher + + Optional checksum (#289) + * Added DMR state and evaluation for optional checksum + computation + * Added checksum option to getdap4 and down into D4Connect + * getdap4 supports optional checksums + * Fixing broken tests. Looks like functions remain broken. + * Fixed function tests in dmr-test + * getdap4 refactor main() + * dmr-test.cc debugging ftw + * Simplified use of DConnect and eliminated the use of new and + delete from its lifecycle in getdap4 + --------- + +2025-07-16 James Gallagher + + Fixed null baselines. See HYRAX-1839. (#292) + A bunch of our libdap4 regression tests had empty baseline + files. I fixed this, + and it was not as widespread as it could have been. But the bug + was that our + test macro for the 'expr-test' program was using a logical OR + to test if the + baseline was equal to the stdout OR stderr output. If the + expr-test program + ran correctly, then the stderr output was null, so the tests + will null baselines + passed no matter what expr-test put on stdout! + +2025-07-10 James Gallagher + + Jhrg/hyrax 1811 cmake part3 (#290) + Added das-test, dds-test, expr-test, and dmr-test to the build + Adding das integration tests.. + Added dds tests, and added comments about the dds tests. + Might move the various tests to *.cmake files that are included, + but that's for the next PR, when the tests will get more + complex. + +2025-06-30 James Gallagher + + jhrg/HYRAX-1796-cmake-install (#286) + Added a cmake config script. See the end of the TL CMakeLists. + I used OBJECT type libraries to make the convenience libraries. + This was needed to get the + objects they contained copied into the installed libraries. + Added two missing source files to libtest-types. + Typo fixed in test/CMakeLists.txt + +2025-06-24 James Gallagher + Hannah Robertson + + CMake build of libdap4 (#284) + Added CMake support + Bailed on byteswap and the idea of using libgnu, for now. + Added unit tests work - includes a fix for Regex. + Fixed dods- and xdr-datatypes, BigArrayTest + Downgrade the bison version to 3.0 or greater for the Rocky8 + build. + --------- + +2025-05-28 James Gallagher + + Jhrg/xsputn part1 (#283) + This patch calls ostream::write() multiple times when data + greater than 2GB are returned as a data response. Each call + will be no more (2^31)-1 bytes. Tests with a 4 and 8GB variable + worked. + The bulk of the time (99.3%) to test these large data transfers + is + in TestArray where it builds a monster array (i.e., 8GB). + Looking + for ways to reduce that... + Tests pass for both --disable-threads and the default build. + Parallel I/O with libdap now works with variables that are 2^33 + bytes. + Added a new class MarshallerFuture (header only) and unit tests. + This is not used, but could be a replacement for + MarshallerThread, + which uses the old and cumbersome pthreads library. This new + class + uses the C++11/14 futures and also supports shared_ptr buffers + for + potential reductions in memory use. + +2025-05-20 James Gallagher + + Coverage 3.0 (#282) + Added comments to gcovr.config and added --sort to the coverage + target. + With these changes, the Makefiles now include a target that + will compute coverage + for libdap and build HTML pages that show coverage by line. + Very easy to use. + At the same time, the Travis-CI 'scan' target will build a + coverage.xml file + that sonarqube can use. The two coverage measures are not + exactly the same, + but they are close and each is useful in its own way. + +2025-05-13 James Gallagher + + Retired the ErrorAssignmentTest - subsumed by ErrorTest + [skip ci] + + Coverage 2.0 (#281) + Unit test hackery - Error.cc/h + Fixed ErrorTest.cc, removed sort=uncovered-percent since it + triggers a warning + Remove the gcov-ignore-errors = no_working_dir_found option + since this seems + to break the coverage.xml used by sonarqube. + +2025-05-08 James Gallagher + dh-opendap + + Code coverage changes (#280) + Use gcovr and the --sonarqube option. + Added gcovr.config + Removed travis/sonar-scanner-coverage.sh + --------- + +2025-05-02 James Gallagher + + Fix to HTTPConnect (#278) + Prefer explicit over implicit captures in a C++ lambda + Changed the lambda in HTTPConnect::header_match to + explicitly capture a value instead of using the [=] notation + to implicitly capture all variables used by the lambda. + +2025-04-21 James Gallagher + + Enum dmr test fix (#279) + Fixed the DMRTest tests for enums + For test macros like PARSE and PARSE_CE, there are no word + order issues because there are no checksums. But for TRANS + and TRANS_CE, the presence of a checksum means that there + are big- and little-endian baselines. This is because the + checksum is a function of byte values but many types are + multibyte values, so the same binary data is represented + differently in the architectures and thus has a different + checksum. + +2025-04-16 kyang2014 + + Merge pull request #277 from OPENDAP/hyrax-1736 + HYRAX-1736, add a convenient method to check if a DAP4 group + contains… + +2025-04-15 James Gallagher + + Minor fix to clion-source-discovery + +2025-04-15 myang6 + + HYRAX-1736, clang-format and reduce code smell according to + sonar cloud. + + HYRAX-1736, add a convenient method to check if a DAP4 group + contains an enum constant. + +2025-04-10 ndp-opendap + + Rewind: Drop the (unused) git creds from .travis.yml + + Drop the (unused) git creds from .travis.yml + + Rewind The R0b0t Travis info + + Update The R0b0t Travis info + + Update The R0b0t Travis info + + Update The R0b0t Travis info + + Update The R0b0t Travis info + + Merge branch 'master' of https://github.com/OPENDAP/libdap4 + + Update The R0b0t Travis info + +2025-04-09 kyang2014 + + Merge pull request #275 from OPENDAP/hyrax-1705 + HYRAX-1705, the enum handling code doesn't work for the group + that ha… + +2025-04-09 myang6 + + use nullptr instead of 0 and add a comment for a private method. + +2025-04-08 myang6 + + HYRAX-1706, add a test that includes enum variables in nested + groups. + +2025-04-07 myang6 + + HYRAX-1705, use clang-format. + + HYRAX-1705, the enum handling code doesn't work for the group + that have more than one level. This check-in fixes this by adding a + method to recursively checking the nested group path + +2025-03-26 James Gallagher + + Update Makefile.am regarding gh-pages. + [skip ci] + + Added README about gh-pages build + [skip ci] + +2025-03-25 James Gallagher + + Doxygen mainpage update to the date + [skip ci] + + Added 'edge: true' to .travis.yml + A potential fix for a CICD build issue. + +2025-03-24 James Gallagher + + Removed old docs + + more fixes to the gh-docs script and makefile target + + Added new docs + + More fixes to build-gh-pages.sh + + Syntax error in build-gh-docs.sh + + Updated the documentation build date + + Minor update to build-gh-docs.sh + + Merge branch 'gh-docs-fix' + + Small change to the doxygen mainpage + [skip ci] + + Added new docs + + Working on the doxygen pages. + [skip ci] + + Removed old docs + + Removed old docs + + Try fix for gh-docs + + Added new docs + + Removed old docs + + Added new docs + +2025-03-18 James Gallagher + + Minor refactor of the D4Sequence code (#274) + +2025-03-13 James Gallagher + + Removed -fsanitize=undefined from the ASAN options + This seems to be causing a number of issues when we have + other problems that asan finds that are more important. + Work those, then reintroduce this. + [skip ci] + +2025-03-13 ndp-opendap + + Trigger TravisCI + +2025-02-18 James Gallagher + + Changes to configure.ac for autoconf 2.72 (#273) + Dropped the autoconf version to 2.69 in configure.ac + Removed AC_CHECK_INCLUDES_DEFAULT in configure.ac; wait for 2.70 + +2025-02-11 James Gallagher + + Refactor dmr-test in advance to working on an ASAN bug. (#272) + See HYRAX-1651 + +2025-02-10 James Gallagher + + Switch to the Meyers singleton pattern for HTTPCache (#271) + Switch to the Meyers singleton pattern for HTTPCache + Removed second unique ptr for HTTPCacheTable + Fixed a memory leak in HTTPResponse in transform_to_cpp(). + Better fix for double-free/memory-leak issues with Response and + Cpp Streams + +2025-02-07 James Gallagher + + Build/install fix: add to pkginclude_HEADERS to fix BES build + issue. + HTTPCache.h and HTTPCacheDisconnectedMode.h were added. + Commit and push w/o the usual PR cycle since this is a simple + fix to the installation process that clearly fixes an issue + that's + breaking our CI/CD pipeline. + +2025-02-04 James Gallagher + + Response refactor works (#223) + Move HTTP code to new subdir http_dap as convenience lib + Minor improvements to HTTPCacheTest.cc + Memory leak fixed in Response/HTTPResponse + Removed most (all?) of the pthreads code in HTTPCache + Change the initialization of the 'readers' atomic + Removed HTTPCacheInterruptHandler.h + The (HTTP)cache table is now a vector of vector of CacheEntry + pointers + Cleanup - better RAII for the MP cache lock. No RAII for + CacheEntry + Added multithreaded tests of HTTPConnect (and thus HTTPCache). + +2025-01-28 James Gallagher + + Improvements to chunked_iostream_test (#270) + Improvements to chunked_iostream_test + The improvements include making the huge write test added to + do profiling and timing tests and not a unit-test per se + optional. + This saves CI-CD build times and and keeps the check target + from writing 10GB of test data. + +2025-01-27 James Gallagher + + Remove warnings 1 (#255) + Removed some unary_ and binary_function classes. + Other changes: sprintf to snprintf and string compare warnings; + Updated README.pre-commit.md; Bison version nonsense - when \ + will RHEL8 upgrade?; More refactoring and some compiler warnings + ignored; Added to HTTPConnect.cc for RHEL8. + +2025-01-13 Mikejmnez + + update offset + +2025-01-13 Miguel Jimenez + + Merge pull request #269 from OPENDAP/3.21.1 + version 3.21.1 + +2025-01-13 ndp-opendap + + Trigger CI + +2025-01-13 Mikejmnez + + update travis offset + + changes for releasing version 3.21.1 2024-12-31 kyang2014 Merge pull request #268 from OPENDAP/hyrax-1497 diff --git a/INSTALL b/INSTALL index a5a22747e..ac4eb79c1 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ -Updated for version 3.21.1 of the OPeNDAP DAP2/4 library software. +Updated for version 3.22.0 of the OPeNDAP DAP2/4 library software. Installing the DAP2/4 library diff --git a/NEWS b/NEWS index 4fd5fd3a0..63ca3f492 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,37 @@ This file is the canonical, version-by-version record of user-visible changes. Keep entries in reverse chronological order (newest first). +## Version 3.22.0-0 + +- Multi-pass overhaul of the test coverage tooling: switched to gcovr-based reporting (including a SonarQube-compatible format), fixed issues, and documented how to generate the coverage data. +- Recurring warnings cleanup across the codebase: removed legacy `unary_function` usage, added `override` throughout, and fixed warnings surfaced in tests and on GitHub Actions builds over several passes. +- Fixed a segmentation fault caused by bad data in a DAP4 attribute. +- Removed the macos-intel runner from the GitHub Actions CI matrix. +- Added an error message for when a DAP4 dimension can't be found. +- Bumped the DMR version, then reverted it after it caused compatibility problems. +- CMake migration: initial CMake build, install step, shared-library versioning fixes, presets, integration test support (DAS/DMR/EXPR), and cleanup, ending with CMake plus autotest support. +- Sped up the GitHub Actions workflow. +- Added unit tests for `utils::segmented_read()` and `utils::segmented_write()`. +- Expanded and improved the libdap README and general documentation. +- Autotools/configure fixes: updated configure.ac for autoconf 2.72, fixed cppunit detection, stopped `make clean` from deleting config.log, then refactored configure.ac further. +- Added and iterated on VS Code support for the autotools build (tasks/launch config, customizable settings.json, supporting README). +- Experimented with Codex-generated unit tests, which surfaced a real bug in the process. +- Added support for tracking test deployments. +- Added RHEL9 build/packaging support to CI. +- Swapped a libxml include to fix a build issue. +- Switched libdap/HTTPCache singletons over to the Meyers singleton pattern. +- Fixed a DAP4 serialization bug. +- Fixed and merged in long-stale DMR-to-DAP2/DDS conversion work. +- Made DAP4 checksums optional and fixed related HTTP test handling. +- Fixed a batch of tests with bad/null baseline files. +- Refactored streaming code (xsputn) to support sending variables larger than 2GB. +- Fixed DAP4 enum handling for nested groups and added a way to check whether a group contains a given enum. +- Fix to HTTPConnect. +- Minor refactor of the D4Sequence code. +- Refactored dmr-test ahead of investigating an ASAN bug. +- Made the large chunked_iostream_test data write optional to speed up CI runs. +- Checkpointed a large response-handling refactor (not yet safe for multi-process use). + ## Version 3.21.1 - Initial support for UTF-8 diff --git a/README.coverage.md b/README.coverage.md index bff3c6b24..96abee526 100644 --- a/README.coverage.md +++ b/README.coverage.md @@ -53,7 +53,7 @@ These include, not working with parallel test runs, emitting broken data for Son under-reporting coverage. > [!NOTE] -> Note that Ubuntu Focal uses `gcovr` 4.x by default, and thus in Travis we force the 'scan' +> Note that Ubuntu Jammy uses `gcovr` 5.x by default, and thus in Travis we force the 'scan' > step to use 8.2 using a `pip` install. Make sure to test the version of `gcovr` using > `gcovr --version`. diff --git a/configure.ac b/configure.ac index 6eb191248..bf2a9ef64 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ dnl 'pc' files and tarball for the source. See dnl libdap4/travis/travis_libdap_build_offset.sh for info about setting the dnl base value for the build number. jhrg 3/22/21 -AC_INIT([libdap],[3.21.1],[opendap-tech@opendap.org]) +AC_INIT([libdap],[3.22.0],[opendap-tech@opendap.org]) # Get today's date in ISO 8601 format (YYYY-MM-DD) CONFIG_DATE=$(date +%Y-%m-%d) @@ -95,9 +95,9 @@ dnl increment AGE, set REVISION to 0. dnl Interfaces removed or changed (BAD, breaks upward compatibility): dnl ==> Increment CURRENT, set AGE and REVISION to 0. -DAPLIB_CURRENT=30 +DAPLIB_CURRENT=31 DAPLIB_REVISION=0 -DAPLIB_AGE=3 +DAPLIB_AGE=0 AC_SUBST(DAPLIB_CURRENT) AC_SUBST(DAPLIB_REVISION) diff --git a/travis/travis_libdap_build_offset.sh b/travis/travis_libdap_build_offset.sh index 3f00d5e89..5d66935b5 100644 --- a/travis/travis_libdap_build_offset.sh +++ b/travis/travis_libdap_build_offset.sh @@ -1,8 +1,28 @@ -#/bin/sh +#!/bin/bash # # When the release numbers are edited in configure.ac, update this # to the current Travis number so that the 'build number' in # x.y.z- is zero. jhrg 3/22/21 # +HR="=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" +########################################################################### +# loggy() +function loggy() { + echo "$@" | awk '{ print "# travis_libdap_build_offset.sh() - "$0;}' >&2 +} -export LIBDAP_TRAVIS_BUILD_OFFSET=1392 +loggy "BEGIN $HR" + +# This is the TravisCI build number when the +# last formal release was built. +export LIBDAP_TRAVIS_BUILD_OFFSET=1914 + +if [ "$TRAVIS_PULL_REQUEST" != "false" ] +then + loggy "This is a Pull Request build for PR #$TRAVIS_PULL_REQUEST" + loggy "Setting LIBDAP_TRAVIS_BUILD_OFFSET to 0" + LIBDAP_TRAVIS_BUILD_OFFSET=0 +fi + +loggy "Using LIBDAP_TRAVIS_BUILD_OFFSET: $LIBDAP_TRAVIS_BUILD_OFFSET" +loggy "END $HR"