Skip to content

Commit 6ff37eb

Browse files
committed
Merge branch 'staging' into release
2 parents 07fd809 + 9b13d51 commit 6ff37eb

24 files changed

Lines changed: 704 additions & 489 deletions

.github/workflows/ci.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ jobs:
414414
{
415415
"os": "ubuntu-24.04",
416416
"compiler": "clang-20",
417-
"label": "asan",
417+
"label": "ASan",
418418
"status": "${{ job.status }}"
419419
}
420420
EOF
@@ -487,7 +487,7 @@ jobs:
487487
{
488488
"os": "ubuntu-24.04",
489489
"compiler": "clang-20",
490-
"label": "ubsan",
490+
"label": "UBSan",
491491
"status": "${{ job.status }}"
492492
}
493493
EOF
@@ -577,13 +577,14 @@ jobs:
577577
esac
578578
579579
if [[ -n "$custom_label" ]]; then
580-
badge_name="$custom_label"
580+
badge_name="${custom_label,,}"
581+
url="https://img.shields.io/badge/${custom_label}-${symbol}-${color}.svg"
581582
else
582583
badge_name="${os}-${compiler}"
584+
url="https://img.shields.io/badge/${prefix}-${symbol}-${color}.svg"
583585
fi
584586
585587
badge="$badge_dir/${badge_name}.svg"
586-
url="https://img.shields.io/badge/${prefix}-${symbol}-${color}.svg"
587588
588589
echo "$url -> $badge"
589590
curl -fsSL "$url" -o "$badge"

.github/workflows/package.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ jobs:
4848
-DCPACK_PACKAGING_INSTALL_PREFIX=/usr \
4949
-DH5CPP_BUILD_EXAMPLES=OFF \
5050
-DH5CPP_BUILD_TESTS=OFF \
51-
-DH5CPP_BUILD_BENCH=OFF
51+
-DH5CPP_BUILD_BENCH=OFF \
52+
-DH5CPP_USE_LIBDEFLATE=OFF \
53+
-DH5CPP_USE_ZSTD=OFF
5254
5355
- name: Build (amalgamation only)
5456
run: cmake --build build --target h5cpp-amalgamate
@@ -87,6 +89,7 @@ jobs:
8789
cmake -B build \
8890
-DCMAKE_BUILD_TYPE=Release \
8991
-DCMAKE_INSTALL_PREFIX=/usr/local \
92+
-DHDF5_ROOT=$(brew --prefix hdf5) \
9093
-DH5CPP_BUILD_EXAMPLES=OFF \
9194
-DH5CPP_BUILD_TESTS=OFF \
9295
-DH5CPP_BUILD_BENCH=OFF
@@ -111,30 +114,19 @@ jobs:
111114
steps:
112115
- uses: actions/checkout@v4
113116

114-
- name: Cache HDF5
115-
id: cache-hdf5
116-
uses: actions/cache@v4
117-
with:
118-
path: C:/hdf5
119-
key: hdf5-1.10.10-windows-x64
120-
121-
- name: Download HDF5
122-
if: steps.cache-hdf5.outputs.cache-hit != 'true'
123-
shell: pwsh
124-
run: |
125-
$url = "https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.10.10/hdf5-1.10.10-win-vs2022_intel.zip"
126-
Invoke-WebRequest -Uri $url -OutFile hdf5.zip
127-
Expand-Archive hdf5.zip -DestinationPath C:/hdf5
117+
- name: Install HDF5
118+
run: choco install hdf5 -y --no-progress
128119

129120
- name: Configure
130121
shell: pwsh
131122
run: |
132123
cmake -B build `
133124
-DCMAKE_BUILD_TYPE=Release `
134-
-DHDF5_ROOT="C:/hdf5" `
135125
-DH5CPP_BUILD_EXAMPLES=OFF `
136126
-DH5CPP_BUILD_TESTS=OFF `
137-
-DH5CPP_BUILD_BENCH=OFF
127+
-DH5CPP_BUILD_BENCH=OFF `
128+
-DH5CPP_USE_LIBDEFLATE=OFF `
129+
-DH5CPP_USE_ZSTD=OFF
138130
139131
- name: Build (amalgamation only)
140132
run: cmake --build build --target h5cpp-amalgamate --config Release

CHANGES

Lines changed: 0 additions & 16 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ endif()
213213

214214
if(H5CPP_LIBDEFLATE_FOUND)
215215
target_link_libraries(h5cpp INTERFACE ${H5CPP_LIBDEFLATE_TARGET})
216+
target_compile_definitions(h5cpp INTERFACE H5CPP_HAS_LIBDEFLATE=1)
216217
else()
217218
target_compile_definitions(h5cpp INTERFACE H5CPP_DISABLE_LIBDEFLATE=1)
218219
endif()
@@ -382,3 +383,34 @@ set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
382383
set(CPACK_PRODUCTBUILD_IDENTIFIER "org.h5cpp.h5cpp")
383384

384385
include(CPack)
386+
387+
# ─── Developer convenience targets ───────────────────────────────────────────
388+
find_program(MKDOCS_EXECUTABLE mkdocs)
389+
find_program(DOXYGEN_EXECUTABLE doxygen)
390+
391+
if(MKDOCS_EXECUTABLE)
392+
add_custom_target(docs
393+
COMMAND ${MKDOCS_EXECUTABLE} build
394+
--config-file ${CMAKE_SOURCE_DIR}/mkdocs.yml
395+
--site-dir ${CMAKE_BINARY_DIR}/site
396+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
397+
COMMENT "Building MkDocs documentation → build/site"
398+
VERBATIM
399+
)
400+
add_custom_target(docs-serve
401+
COMMAND ${MKDOCS_EXECUTABLE} serve --livereload
402+
--config-file ${CMAKE_SOURCE_DIR}/mkdocs.yml
403+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
404+
COMMENT "Serving MkDocs with live reload (Ctrl-C to stop)"
405+
VERBATIM
406+
)
407+
endif()
408+
409+
if(DOXYGEN_EXECUTABLE)
410+
add_custom_target(docs-doxygen
411+
COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile
412+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/doxy
413+
COMMENT "Building Doxygen API reference → docs/doxygen/html"
414+
VERBATIM
415+
)
416+
endif()

CONTRIBUTING.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Contributing to H5CPP
2+
3+
Fixes and contributions are welcome, including external feature branches and pull requests. All contributions are accepted under the MIT license.
4+
5+
## Issue naming
6+
7+
Issues should follow the form:
8+
9+
```text
10+
<category>, <description>
11+
```
12+
13+
Examples:
14+
15+
```text
16+
ci, add macOS AppleClang runner
17+
fix, resolve HDF5 discovery on Homebrew
18+
feature, add compiler metadata contract
19+
refactor, simplify datatype synthesis
20+
docs, update migration notes
21+
```
22+
23+
Categories:
24+
25+
```text
26+
fix
27+
feature
28+
refactor
29+
ci
30+
docs
31+
test
32+
legal
33+
cleanup
34+
```
35+
36+
## Branch naming
37+
38+
Feature branches should be created from the current `staging` branch and follow the form:
39+
40+
```text
41+
<#issue>-<category>-<description>
42+
```
43+
44+
Examples:
45+
46+
```text
47+
138-ci-add-macos-appleclang-runner
48+
139-fix-hdf5-homebrew-discovery
49+
140-refactor-datatype-synthesis
50+
```
51+
52+
New work should always start from the current `staging` branch:
53+
54+
```bash
55+
git fetch origin
56+
git checkout staging
57+
git pull --ff-only origin staging
58+
gh issue develop <#issue> --checkout
59+
```
60+
61+
If the generated branch name differs from the convention, rename or recreate it before pushing.
62+
63+
## Commit format
64+
65+
Each commit should follow this pattern:
66+
67+
```text
68+
[#issue]:author:category, description
69+
```
70+
71+
Examples:
72+
73+
```text
74+
[#138]:svarga:ci, add macOS AppleClang runner
75+
[#139]:svarga:fix, resolve HDF5 discovery on Homebrew
76+
[#140]:svarga:refactor, simplify datatype synthesis
77+
```
78+
79+
Keep commits focused. Prefer several precise commits over one heroic commit that tries to solve the universe and accidentally invents another one.
80+
81+
## Rebase-based development
82+
83+
H5CPP uses a rebase-based feature-branch workflow. Feature branches are carried forward by rebasing onto the current `staging` branch rather than merging `staging` into the feature branch.
84+
85+
Before opening or updating a pull request:
86+
87+
```bash
88+
git fetch origin
89+
git checkout <feature-branch>
90+
git rebase origin/staging
91+
```
92+
93+
Resolve conflicts locally, rerun the relevant build and test matrix where possible, then force-push safely:
94+
95+
```bash
96+
git push --force-with-lease
97+
```
98+
99+
Use `--force-with-lease`, not plain `--force`; we are civilized barbarians.
100+
101+
## Pull requests
102+
103+
Once the feature branch is complete, open a pull request targeting `staging`.
104+
105+
A pull request should:
106+
107+
- reference the issue it resolves
108+
- follow the branch and commit naming convention
109+
- keep the change scoped to the issue
110+
- pass the relevant CI jobs
111+
- document user-visible behavior changes
112+
113+
The preferred merge target for active development is `staging`. Release branches are promoted from `staging` after validation.

CONTRIBUTORS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Steven Varga - author
2-
Gerd Heber - collaborator from HDFGroup
3-
Gilles Filippini - debian packaging: sponsor and collaborator
1+
Steven Varga author
2+
Gerd Heber — advisor, CEO The HDF Group
3+

COPYRIGHT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
H5CPP may be used for any purpose, including commercial purposes, at absolutely
33
no cost. It is distributed under the terms of the MIT license reproduced here.
44

5-
Copyright (c) 2018-2020 Steven Varga, Toronto,ON Canada
5+
Copyright (c) 2018-2026 Steven Varga, Toronto,ON Canada
66
Author: Varga, Steven <steven@vargaconsulting.ca>
77
-------------------------------------------------------------------------------
88

INSTALL

Lines changed: 0 additions & 81 deletions
This file was deleted.

0 commit comments

Comments
 (0)