feat: skip/sort options, hardened parsing, CI updates — v1.7.2#6
Merged
mousebrains merged 5 commits intomasterfrom Mar 31, 2026
Merged
feat: skip/sort options, hardened parsing, CI updates — v1.7.2#6mousebrains merged 5 commits intomasterfrom
mousebrains merged 5 commits intomasterfrom
Conversation
New features (ported from dbd2netcdf-python): - --skipAll/-A: skip first record of ALL files including the first - --keepFirst: explicitly keep first records (default behavior) - --skipFirst/-s, --skipAll, --keepFirst are mutually exclusive - --sort: sort input files by none (default), header_time, or lexicographic - Header::parseFileOpenTime() added to shared library for cross-project reuse Audit fixes: 1. Decompress.C: LZ4 error codes stored as int, check < 0 (was silent fail) 2. Header.C: cap num_ascii_tags at 10000 to prevent DoS 3. PD0.C: validate nBytes >= 4 before subtraction (integer underflow) 4. dbd2netCDF.C: wrap first-pass header scan in try-catch (was inconsistent) 5. Data.C: exponential (1.5x) column growth instead of linear (O(n^2) fix) 6. Cache file sizes in first pass to avoid redundant fs::file_size calls 7. Add fuzz_data and fuzz_decompress fuzz targets 8. Update all man pages to v1.7.1 with all missing options 9. Add -Wshadow -Wold-style-cast; fix all C-style casts 10. MyNetCDF.C: split signed/unsigned chunking loop into forward/reverse Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Audit fixes and Python-project backports: - KnownBytes: replace union type-punning with memcpy (UB fix), add gcount checks for short reads, fix tag error message hex formatting, save errno - SensorsMap: validate sensor byte-size consistency across files (throws on mismatch), check getline returns in sensor skip loop - Sensors: try-catch in cache load for corrupt lines, thread_local RNG - Data: bound repair scan to 64KB max, convert inf→NaN for repeated values - MyNetCDF: enable shuffle filter for float/double (~20-40% better compression), add putGlobalAtt method, write CF-1.10 Conventions/history/source attributes - PD0: replace all std::cerr with logger, remove redundant prints before throws - pd02netCDF: add logger initialization and --log-level option - decompressTWR: rename -s to -p/--pipe (avoid conflict with --skipFirst), fix tolower cast, enable temp file cleanup - All tools: fix --verbose to not downgrade log level below --log-level mkOne.py defaults changed to --skipAll and --sort header_time. Version bumped to 1.7.2. Man pages and reference files updated. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- actions/checkout: v4 → v6 - actions/upload-artifact: v4 → v7 - actions/download-artifact: v4 → v8 - actions/cache: v4 → v5 - codecov/codecov-action: v5 → v6 Fixes Node.js 20 deprecation warnings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Use generator expression $<$<COMPILE_LANGUAGE:CXX>:-Wold-style-cast> so lz4.c (C code) is not affected by C++-only warning flag - Add zlib to conda install for Windows builds (CMake 4.3 FindZLIB requires explicit zlib package) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. Thanks for integrating Codecov - We've got you covered ☂️ |
Silences Node.js 20 deprecation warnings for conda-incubator/setup-miniconda@v3 and ilammy/msvc-dev-cmd@v1 which have no newer major versions yet. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--skipAll/-A,--keepFirst(mutually exclusive with--skipFirst),--sort(none/header_time/lexicographic)Header::parseFileOpenTime()in shared library for cross-project reuse with dbd2netcdf-python--skipAlland--sort header_time-srenamed to-p/--pipe-Wshadow -Wold-style-castadded, all warnings fixedTest plan
🤖 Generated with Claude Code