Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
4374670
dev: Update dev Dockerfile to install all possible ancillary Python p…
selimnairb Sep 11, 2026
8f95455
dev: Use Debian catch2 as they now package version 3; Install lcov to…
selimnairb Sep 11, 2026
074b015
dev: Add suggested CMake flags
selimnairb Sep 11, 2026
4d3c5ca
dev: Update code-coverage.cmake module to be compatible with recent v…
selimnairb Sep 11, 2026
dc66c60
api: Fix bug in move constructor for CompoundDataType
selimnairb Sep 14, 2026
1a0126c
tests: Add tests to exercise metadata import and export; Update local…
selimnairb Sep 14, 2026
ff01b6b
api: Update Dataset::readDataset() to rethrow H5::FileIException sinc…
selimnairb Sep 15, 2026
46c78d5
api: Add default, copy, move, and move assignment constructors to fac…
selimnairb Sep 15, 2026
3b5c544
tests: Add initial tests for exceptions and attribute info
selimnairb Sep 15, 2026
e6ce279
tests: Add initial test_bag_legacy_crs.cpp
selimnairb Sep 15, 2026
8b81261
tests: Update coverage configuration to enable branch coverage
selimnairb Sep 15, 2026
3b6049f
tests: Add initial test of C API, which may be an easy way to quickly…
selimnairb Sep 15, 2026
a948a64
tests: Refactor private utility functions getValue() into bag_util.cp…
selimnairb Sep 16, 2026
5174368
tests: Add test cases for Dataset and Metadata to cover more cases of…
selimnairb Sep 16, 2026
899256f
tests: Add test case covering remainder of bag_uint8array.h
selimnairb Sep 17, 2026
2a8aeb2
tests: surface corrections: Update test case to provide some coverage…
selimnairb Sep 17, 2026
80c5391
api: Dataset: Print hdf5 error trace if BAG file cannot be opened; te…
selimnairb Sep 18, 2026
fdf83a1
tests: Improve coverage of bag_trackinglist.cpp
selimnairb Sep 18, 2026
a086c82
tests: Improve coverage of bag_vrtrackinglist.cpp
selimnairb Sep 18, 2026
ff2218c
tests: Add bag_hdfhelper test suite; Improve coverage of test_bag_int…
selimnairb Sep 18, 2026
c673387
api: remove unused function BAG::Dataset.readStringAttributeFromDataS…
selimnairb Sep 19, 2026
3c17ab7
api: BAG::Dataset::readDataset(): move version number parsing earlier…
selimnairb Sep 19, 2026
28757b5
tests: Add sample-bad-ver.bag
selimnairb Sep 19, 2026
db59218
tests: improve coverage of bag_dataset.cpp
selimnairb Sep 21, 2026
3798f15
api: bag_legacy_crs: Remove unused private functions not exported as …
selimnairb Sep 21, 2026
2104627
tests: Improve coverage of bag_legacy_crs.cpp
selimnairb Sep 21, 2026
98ea7c2
tests: Improve coverage of bag_compounddatatype
selimnairb Sep 21, 2026
f3d15f2
build: dev: Explicitly use capital BAG in path to avoid confusion on …
selimnairb Sep 22, 2026
436ada9
api: C: Fix error in bagWrite() declaration in bag.h, adding const qu…
selimnairb Sep 22, 2026
1a3038d
test: Update test case description
selimnairb Sep 22, 2026
a657fbd
tests: C: Begin increasing coverage of C API; fix various bugs in C API
selimnairb Sep 22, 2026
36d3ff6
tests: C API: increase coverage corrected layer
selimnairb Sep 23, 2026
c75f67e
api: Fix bug where surface correction vertical datum wsa not being su…
selimnairb Sep 24, 2026
685e23c
api: C: Modify bagCreateFromBuffer to allow handle to be null, which …
selimnairb Sep 24, 2026
fca2b19
tests: C api: Remove commented out tests not needed; Update and re-en…
selimnairb Sep 24, 2026
62d9d5c
api: C: update bagGetErrorString() to include all members of enum BAG…
selimnairb Sep 25, 2026
130f0f2
api: C: fix bug in bagGetGeorefMetadataLayerDefinition() where defini…
selimnairb Sep 25, 2026
c2c2b53
windows: Fix compatibility issues with MSVC
selimnairb Sep 28, 2026
93c3c0e
tests: Verify and correct changes to test suites after changes made f…
selimnairb Sep 28, 2026
d69f4ef
tests: Fix bug where if test case [bag_c_api][metadata][happy] was ca…
selimnairb Sep 28, 2026
fec3a81
tests: C api: fix tests for bagComputeIndex() and bagComputePosition(…
selimnairb Sep 29, 2026
4f124d6
dev: windows: Update build script to use py instead of python to crea…
selimnairb Sep 29, 2026
c5e76e8
dev: windows: update to use swig-4.4.1 to match current GH actions wi…
selimnairb Sep 29, 2026
6dc6233
ci: Update windows config: Python 3.12->3.14, Catch 3.4.0->3.16.0, li…
selimnairb Sep 29, 2026
eb8f19b
ci: windows; Fix path to vscode tools
selimnairb Sep 29, 2026
72e8029
ci: windows: add SHA256 hash verification for dependency downloads; d…
selimnairb Sep 29, 2026
64fbae1
ci: linux: Update versions of catch2 and libxml2
selimnairb Sep 29, 2026
13b4f9a
CI: Skip problematic test case when in CI
selimnairb Sep 29, 2026
3ed260a
ci: Set BAG_HOME since this is required for some of the C API tests
selimnairb Sep 29, 2026
82242d3
ci: Set BAG_HOME for coverage testing
selimnairb Sep 29, 2026
73c0162
api: Fix buffer overflow in bagLegacyToWkt()
selimnairb Sep 29, 2026
9602368
CI: Update deprecated actions; Upgrade Linux runners from Ubuntu 22.0…
selimnairb Sep 29, 2026
9da59ae
build: Update version number for next release
selimnairb Sep 29, 2026
104e833
api: bag_metadatatypes: bagFreeMetadata: Fix memory leak where BagMet…
selimnairb Sep 30, 2026
6c2a892
release: add release notes for version proposed version 2.0.6
selimnairb Sep 30, 2026
087db2e
ci: Add CHANGES.txt to ignore lists
selimnairb Sep 30, 2026
fdf2174
Add documentation header and copyright/license information
selimnairb Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions .github/workflows/testmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- 'docs/**'
- readme.*
- README.*
- 'CHANGES.txt'
- '*.md'
- '*.svg'
- '*.png'
Expand All @@ -17,6 +18,7 @@ on:
- 'docs/**'
- readme.*
- README.*
- 'CHANGES.txt'
- '*.md'
- '*.svg'
- '*.png'
Expand All @@ -34,19 +36,19 @@ jobs:
build:
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
os: [ubuntu-22.04]
python-version: ["3.11", "3.12", "3.13", "3.14"]
os: [ubuntu-24.04]
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ${{matrix.os}}

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Setup Python
uses: actions/setup-python@v6
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
Expand Down Expand Up @@ -82,7 +84,9 @@ jobs:
- name: Tests
# Execute C++ and Python tests
run: |
BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data ./build/tests/bag_tests
export BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data
export BAG_HOME=${{github.workspace}}/configdata
./build/tests/bag_tests
source python-venv/bin/activate
BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data python -m pytest --cov=bagPy --cov-branch --cov-report=xml --junitxml=python-test-results.xml python/test_*.py
python -m pytest --cov=bagPy --cov-branch --cov-report=xml --junitxml=python-test-results.xml python/test_*.py
deactivate
18 changes: 12 additions & 6 deletions .github/workflows/testreporting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- 'docs/**'
- readme.*
- README.*
- 'CHANGES.txt'
- '*.md'
- '*.svg'
- .github/workflows/testmatrix.yml
Expand All @@ -16,6 +17,7 @@ on:
- 'docs/**'
- readme.*
- README.*
- 'CHANGES.txt'
- '*.md'
- '*.svg'
- .github/workflows/testwindows.yml
Expand All @@ -33,7 +35,7 @@ jobs:
PUBLISH_COVERAGE: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/master' }}
strategy:
matrix:
os: [ubuntu-22.04]
os: [ubuntu-24.04]
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
Expand Down Expand Up @@ -65,7 +67,7 @@ jobs:
BRANCH: badges

- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
Expand All @@ -91,7 +93,9 @@ jobs:

- name: Run tests
run: |
BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data ./build/tests/bag_tests_d -r junit | tee build/tests/bag_tests-testreport.xml
export BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data
export BAG_HOME=${{github.workspace}}/configdata
./build/tests/bag_tests_d -r junit | tee build/tests/bag_tests-testreport.xml

- name: Test Reporter
uses: mikepenz/action-junit-report@v5
Expand All @@ -102,7 +106,9 @@ jobs:
- name: Run test coverage
# Execute C++ tests
run: |
BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data ninja -C build ccov-all-export-lcov
export BAG_SAMPLES_PATH=${{github.workspace}}/examples/sample-data
export BAG_HOME=${{github.workspace}}/configdata
ninja -C build ccov-bag_tests

- name: Test coverage reporter
uses: zgosalvez/github-actions-report-lcov@v4
Expand All @@ -118,13 +124,13 @@ jobs:
if: ${{ env.PUBLISH_COVERAGE == 'true' }}
run: |
source python-venv/bin/activate
llvm-cov report -instr-profile=build/ccov/all-merged.profdata `cat ./build/ccov/binaries.list` -ignore-filename-regex="tests/*" -ignore-filename-regex="bag.cpp" | tail -n 1 | awk '{ print $10 }' | xargs python ./scripts/coverage-badge.py -o /tmp/coverage.svg -c
llvm-cov report -instr-profile=build/ccov/all-merged.profdata `cat ./build/ccov/binaries.list` -ignore-filename-regex="tests/*" | tail -n 1 | awk '{ print $10 }' | xargs python ./scripts/coverage-badge.py -o /tmp/coverage.svg -c
deactivate

- name: Checkout badges branch
if: ${{ env.PUBLISH_COVERAGE == 'true' }}
# Checkout badges branch of repo so that we can commit the coverage badge there
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
ref: ${{ steps.coverage.outputs.branch }}

Expand Down
51 changes: 35 additions & 16 deletions .github/workflows/testwindows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- 'docs/**'
- readme.*
- README.*
- 'CHANGES.txt'
- '*.md'
- '*.svg'
- '*.png'
Expand All @@ -17,6 +18,7 @@ on:
- 'docs/**'
- readme.*
- README.*
- 'CHANGES.txt'
- '*.md'
- '*.svg'
- '*.png'
Expand All @@ -38,17 +40,17 @@ jobs:
fail-fast: true
matrix:
os: [windows-latest]
python-version: ["3.12"]
python-version: ["3.14"]
c_compiler: [cl]
include:
- VS_VERSION: Visual Studio 17
VS_VER: 2022
- VS_VERSION: Visual Studio 18
VS_VER: 2026
SDK: release-1911
MSVC_VER: 1920
MSVC_VER: 1950
ZLIB_URL: "https://github.com/madler/zlib/releases/download/v1.3/zlib13.zip"
LIBXML2_URL: "https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.9.tar.xz"
LIBXML2_URL: "https://download.gnome.org/sources/libxml2/2.15/libxml2-2.15.1.tar.xz"
HDF5_URL: "https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5_1.14.5.zip"
CATCH2_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.4.0.zip"
CATCH2_URL: "https://github.com/catchorg/Catch2/archive/refs/tags/v3.16.0.zip"

env:
ARCHITECTURE: "amd64"
Expand All @@ -65,15 +67,15 @@ jobs:
steps:

- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Set compiler environment
shell: cmd
run: |
if "%VS_VER%" == "2022" CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=%ARCHITECTURE%
if "%VS_VER%" == "2026" CALL "C:\Program Files\Microsoft Visual Studio\18\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=%ARCHITECTURE%
echo PATH=%PATH%>> %GITHUB_ENV%
echo INCLUDE=%INCLUDE%>> %GITHUB_ENV%
echo LIB=%LIB%>> %GITHUB_ENV%
Expand Down Expand Up @@ -113,44 +115,60 @@ jobs:
mkdir src
cd src
# zlib
if ("C561D09347F674F0D72692E7C75D9898919326C532AAB7F8C07BB43B07EFEB38" -ne (Get-FileHash ..\downloads\$env:ZLIB_ZIP).Hash) {
Write-Error "Invalid checksum for $env:ZLIB_ZIP"
exit 1
}
exec { 7z x ..\downloads\$env:ZLIB_ZIP }
cd zlib-1.3
if(-Not (Test-Path -Path build)) { mkdir build }
$env:CMAKE_INSTALL_PREFIX="-DCMAKE_INSTALL_PREFIX=" + $env:BAG_INSTALL_PATH
cmake -B build -G $env:VS_VERSION -S . $env:CMAKE_INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --target install -- /nologo /verbosity:minimal
cmake --build build -j $env:NUMBER_OF_PROCESSORS --config Release --target install -- /nologo /verbosity:minimal
cd ..
# libxml2
if ("C008BAC08FD5C7B4A87F7B8A71F283FA581D80D80FF8D2EFD3B26224C39BC54C" -ne (Get-FileHash ..\downloads\$env:LIBXML2_ZIP).Hash) {
Write-Error "Invalid checksum for $env:LIBXML2_ZIP"
exit 1
}
exec { tar xf ..\downloads\$env:LIBXML2_ZIP }
cd libxml2-2.13.9
cd libxml2-2.15.1
if(-Not (Test-Path -Path build)) { mkdir build }
cmake -B build -G $env:VS_VERSION -S . $env:CMAKE_INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release `
-DLIBXML2_WITH_ZLIB=ON -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF
cmake --build build --config Release --target install -- /nologo /verbosity:minimal
cmake --build build -j $env:NUMBER_OF_PROCESSORS --config Release --target install -- /nologo /verbosity:minimal
cd ..
# HDF5
if ("911CADF4FEDFA6E5844D853D31F9125C960E0C960907DF9F0AC9CE2C4521DB32" -ne (Get-FileHash ..\downloads\$env:HDF5_ZIP).Hash) {
Write-Error "Invalid checksum for $env:HDF5_ZIP"
exit 1
}
exec { 7z x ..\downloads\$env:HDF5_ZIP }
cd hdf5-hdf5_1.14.5
if(-Not (Test-Path -Path build)) { mkdir build }
cmake -B build -G $env:VS_VERSION -S . $env:CMAKE_INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release `
-DHDF5_BUILD_CPP_LIB=ON -DHDF5_BUILD_TOOLS:BOOL=OFF `
-DBUILD_TESTING:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON `
-DHDF5_BUILD_HL_LIB:BOOL=ON -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON
cmake --build build --config Release --target install -- /nologo /verbosity:minimal
cmake --build build -j $env:NUMBER_OF_PROCESSORS --config Release --target install -- /nologo /verbosity:minimal
cd ..
# Catch2
if ("1E96CCA4CE3BFBF1F20EFFF50C3A16FCC818D4BBD65C2C51155F976EE2BD0B8A" -ne (Get-FileHash ..\downloads\$env:CATCH2_ZIP).Hash) {
Write-Error "Invalid checksum for $env:CATCH2_ZIP"
exit 1
}
exec { 7z x ..\downloads\$env:CATCH2_ZIP }
cd Catch2-3.4.0
cd Catch2-3.16.0
if(-Not (Test-Path -Path build)) { mkdir build }
cmake -B build -G $env:VS_VERSION -S . $env:CMAKE_INSTALL_PREFIX -DCMAKE_BUILD_TYPE=Release `
-DBUILD_TESTING:BOOL=OFF
cmake --build build --config Release --target install -- /nologo /verbosity:minimal
cmake --build build -j $env:NUMBER_OF_PROCESSORS --config Release --target install -- /nologo /verbosity:minimal
cd ..\..
# Build and install BAG C++ API
cmake -G $env:VS_VERSION -DCMAKE_BUILD_TYPE=Release -B build -S . `
$env:CMAKE_INSTALL_PREFIX -DBUILD_SHARED_LIBS=ON `
-DBAG_BUILD_TESTS:BOOL=ON -DBAG_CI=ON -DCMAKE_OBJECT_PATH_MAX=1024
cmake --build build --config Release --target install
cmake --build build -j $env:NUMBER_OF_PROCESSORS --config Release --target install
# Build and install bagPy Python wheel
$activate_cmd="$env:VENV_PATH\Scripts\Activate.ps1"
echo "Attempting to activate Python environment using script: $activate_cmd ..."
Expand All @@ -165,6 +183,7 @@ jobs:
$env:Path += ";$env:BAG_INSTALL_PATH\bin"
echo $env:Path
$env:BAG_SAMPLES_PATH="$env:GITHUB_WORKSPACE\examples\sample-data"
$env:BAG_HOME="$env:GITHUB_WORKSPACE\configdata"
$test_path="$env:GITHUB_WORKSPACE\build\tests\Release\bag_tests.exe"
& $test_path
# Run Python tests
Expand Down
64 changes: 64 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,67 @@
=========================
BAG v.2.0.6 Release Notes
=========================

October 2026

## Bug fixes

- C API: [Fix buffer overflow in bagLegacyToWkt()](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/73c0162762c6ae81ac4b70b90b5b4ad6f2f20618)
- [bag_metadatatypes: bagFreeMetadata: Fix memory leak where BagMetadata.characterSet was not being freed](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/104e8334edc01eabb7d3904bd382f3107ec29098) Addresses #147.
- BAG::SurfaceCorrections: [Fix bug where surface correction vertical datum was not being successfully written to BAG files](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/c75f67e6d18ea7c493dceb8ee9d85f909b07890a)
- BAG::SurfaceCorrectionsDescriptor::create(): [Fix bug in surface correction creation where descriptor would not have spacings set, resulting in NaN values being generated when calling SurfaceCorrections::readCorrectedRow()](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/2a8aeb2c6aa892256907bd1658bbfdae7c28b710#diff-13ebba3f004faa1a7e07d3d76f1881f618f4f0e99b3d90c91207384e1dd806faR175)
- BAG::CompoundDataType: [Fix bug in move constructor](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/dc66c60e7f2d1e1142e2a5e238b2279ba688a08d)
- C API: [Fix bug in bagGetGeorefMetadataLayerDefinition() where definition return pointer was not properly set](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/130f0f2a71ee33bb8dc98a964eb42b39ac230fe2)
- MSVC: [Fix compatibility issues with MSVC exposed when trying to link to certain parts of the public API from unit tests](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/c2c2b53e5a9d90482c34fa45bef590523d927ecf)


## API changes

> Note: These API changes are small and focused on fixing obvious bugs. In general they should not break most existing applications.

- C
- [C: Modify bagCreateFromBuffer to allow handle to be null, which it must be when creating a new file](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/685e23cdb0b969bd446de8eeb1c11f12e971900a)
- [Fix error in bagWrite() declaration in bag.h, adding const qualifier to data parameter, which was present in the definition in bag.cpp](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/436ada9581940f5ccf6860e1e562e9dc60c7b499)
- [Update bagGetErrorString() to include all members of enum BAG_ERRORS](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/62d9d5cb6f372be524983d78c6c25f4611ba9a21)

- C++
- BAG::Dataset:
- [Update Dataset::readDataset() to rethrow H5::FileIException since this is not a recoverable error](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/ff01b6b58bad102498bab5a1bf0772c9276552dd)
- [BAG::Dataset::readDataset(): move version number parsing earlier in function so that invalid version numbers can be caught earlier and reported via new exception InvalidBAGVersion](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/3c17ab7cc8ebdd197707a3515f405b02a1cb7bf9)
- [Remove unused private function BAG::Dataset.readStringAttributeFromDataSet()](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/c6733875f46364470b5484f16492b34068db94cc)
- BAG::AttributeInfo: [Add default, copy, move, and move assignment constructors to facilitate unit testing](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/46c78d5a18da4f6a609281b32c2e3b37846d8d70)
- bag_legacy_crs.cpp‎: [Remove unused private functions not exported as part of the public API](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/3798f15d544557791d0563f0af142a3fb10c322b)
- [Refactor private utility functions getValue() into bag_util.cpp to facilitate unit testing](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/a948a6406b8ba7b42a738ac63b40dcf7e25b4d7e)

## CMake

- [Compile API and tests with `-fstack-protector-all` on GCC and Clang](https://github.com/OpenNavigationSurface/BAG/pull/150/changes/73c0162762c6ae81ac4b70b90b5b4ad6f2f20618)
- Update to new version of code-coverage.cmake

## Testing updates

- Greatly improved test coverage previous (from ~70% of functions to ca. 90%), with much higher line and branch coverage
- Update coverage configuration to enable branch coverage
- Begin adding tests for parts of the C API.
- Update from Catch2 v3.4.0 to v3.16.0, which should improve CI performance
- Update deprecated actions: checkout@4/@6 to @7, setup-python@4/@6 to @7.

## CI

- Dependencies
- Update from SWIG 4.3.0 to SWIG 4.4.1
- Update libxml2 from version 2.13.9 to 2.15.1
- Windows
- Calculate SHA256 sums for dependencies before unarchiving and building
- Enable parallel builds, which should improve CI performance
- Test matrix
- Windows
- Update from Visual Studio 2022 to 2026
- Linux
- Update from Ubuntu 22.04 to 24.04
- Python
- Update from CPython 3.10-3.13 to 3.11-3.14

=========================
BAG v.2.0.5 Release Notes
=========================
Expand Down
8 changes: 5 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# CMake 3.15+ needed for SWIG version 4.0+ support. 3.18+ needed for Development.Module
# sub-component support for FindPyton.
cmake_minimum_required(VERSION 3.18)
project(OpenNavSurf-BAG LANGUAGES C CXX VERSION 2.0.5)
project(OpenNavSurf-BAG LANGUAGES C CXX VERSION 2.0.6)
set(CMAKE_CXX_STANDARD 14)

# SWIG: use standard target name.
Expand Down Expand Up @@ -61,8 +61,10 @@ endif()
if(BAG_CODE_COVERAGE)
set(CODE_COVERAGE ON CACHE INTERNAL "Turn on code coverage")
include(CMakeModules/code-coverage.cmake)
# Exclude C wrapper for now since our tests only target C++ code currently
add_code_coverage_all_targets(EXCLUDE test/* api/bag.cpp api/bag.h)
add_code_coverage_all_targets(EXCLUDE test/*
LCOV_OPTIONS --rc branch_coverage=1
GENHTML_OPTIONS --branch-coverage
)
endif()

# Generate setup.cfg and setup.py in case Python wheel is later generated
Expand Down
Loading