Files
hdf5/.github/workflows
Scot BreitenfeldandClaude Sonnet 4.5 16364fe2fa Badges (#6170)
* Fix Release Progress badges and workflow

- Fix update-progress.py to output blocker/mustdo counts in correct format
  The workflow expects blocker_done=, blocker_total=, mustdo_done=, mustdo_total=
  output lines but the script was only outputting human-readable format

- Update README badge links to point to project view 24 instead of base project

This fixes the workflow failures where BLOCKER_DONE and the related environment
variables were not being set, causing badge updates to fail.

The badges were pointing to old unmaintained gists under user X.
Updated to use the gist automatically maintained by the Release Progress
workflow (gist ID: 0ad2eabb63b28eb90d69f5e5b2c1496f).

The workflow now successfully updates these badges every 4 hours with
current release blocker and must-do progress.

The script now auto-detects the HDF5 version from src/H5public.h and
filters release blockers/must-do items by milestone matching that version.

Changes:
- Added get_hdf5_version_from_header() to read version from H5public.h
- Updated GraphQL query to fetch milestone information from issues
- Added milestone filtering logic to only count items for the target release
- Made validation more lenient when using milestone filter (allows 0/0)
- Added MILESTONE_FILTER environment variable for manual override

For develop branch with version 2.1.0 in H5public.h, this will now only
count items with milestone containing "2.1" (e.g., "2.1.0", "HDF5 2.1").

* Add version number to badge labels

The badges now display the version (e.g., "2.1 Release Blockers" instead
of just "Release Blockers") when filtering by milestone.

Changes:
- Python script outputs version to GitHub Actions
- Workflow passes version to badge generation script
- Badge script includes version in label if available
- Labels show "X.Y Release Blockers" / "X.Y Release Must Do"


The three badges now track:
1. Release Blockers - Critical issues that must be resolved
2. Release Must Do - Important items for the release
3. Release Nice to Have - Optional improvements for the release

All three badges show version prefix (e.g., "2.1") and support 0/0
display when no items exist for a milestone.

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-22 14:37:45 -06:00
..
2026-01-21 23:02:49 -06:00
2026-01-22 14:37:45 -06:00
2026-01-22 14:37:45 -06:00
2026-01-22 14:37:45 -06:00
2024-06-24 07:59:29 -05:00

Workflows for Testing

The workflows are contained in .yml files and use the callable workflow method. Workflows can be triggered from PR, creation or merge, and on a scheduled timer. There are a few that only get triggered manually.

Scheduled Workflows

  • daily-schedule.yml executes the daily-build.yml which first checks that there are changes
    • tarball.yml to create a source.zip and source.tar.gz
    • cygwin.yml to test on cygwin
    • script.yml to test and report to my.cdash
    • par-script.yml to test with released MPI and report to my.cdash
    • par-source.yml to test with MPI default branch and report to my.cdash
    • analysis.yml to test with LEAK and ADDRESS sanitizers and report to my.cdash
    • ctest.yml to create signed binaries with commit hash in the name
    • abi-report.yml to compare ABI to the last released binaries
    • release-files.yml uploads new binaries to snapshots
    • remove-files.yml remove previous binaries
  • h5py.yml executes Python tests for h5py
  • markdown-link-check.yml checks the links in markdown files
  • scorecard.yml executes code-scanning and uploads to Github dashboard
  • vfd.yml executes vfd-main.yml with combos of Release and Debug
    • vfd-subfiling.yml configures, builds, and tests MPI with subfiling feature
  • vol.yml calls the following workflows
    • vol_rest.yml tests the REST VOL connector
    • vol_ext_passthru.yml tests the external passthrough VOL connector
    • vol_async.yml tests the asynchronous I/O VOL connector
    • vol_cache.yml tests the cache VOL connector
    • vol_adios2.yml tests the ADIOS2 VOL connector
    • vol_log.yml tests the Log-based VOL connector

Manual Only Workflows

  • publish-branch.yml publishes a local folder to the support.hdfgroup bucket
  • publish-release.yml publishes release binaries to the support.hdfgroup bucket
  • release.yml creates binaries for an official release or snapshot
    • tarball.yml to create a source.zip and source.tar.gz
    • ctest.yml to create signed binaries
    • abi-report.yml to compare ABI to last released binaries
    • maven-staging.yml to generate and test Maven artifacts with Java examples across all platforms
    • maven-deploy.yml to deploy Maven artifacts to repositories
    • release-files.yml uploads new binaries to releases page
  • java-examples-maven-test.yml comprehensive Java examples testing with Maven artifacts

Triggered Workflows

  • clang-format-check.yml runs clang-format and reports issues
  • call-workflows.yml
  • codespell.yml checks spelling
  • cve.yml executes test_hdf5_cve.sh script
  • hdfeos5.yml configures and builds HDF5 then tests HDF-EOS5
  • linkchecker.yml verifies the links in generated doxygen files
  • netcdf.yml configures and builds HDF5 then tests NetCDF

Workflows called by call-workflows.yml

  • main-spc.yml configure, build, and test HDF5 with:
    • API default v1_6
    • API default v1_8
    • API default v1_10
    • API default v1_12
    • API default v1_14
    • API default v2_0
    • using system zlib
    • using zlibng
    • using no filters
    • in debug mode and -Werror compiler option
    • in release mode and -Werror compiler option
    • with minimum CMake Version 3.18
  • main.yml configure, build, test, and package HDF5 on Ubuntu, macOS, and Windows
  • main-static.yml configure, build, test static only HDF5 on Ubuntu, macOS, and Windows
  • bintest.yml test binary packages created by main.yml
  • main-par.yml configure, build, and test HDF5 with openmpi
  • main-par-spc.yml configure, build, and test HDF5 with HDF5_ENABLE_WARNINGS_AS_ERRORS=ON
  • intel.yml configure, build, and test HDF5 with Intel OneAPI on Linux and Windows
  • nvhpc.yml configure, build, and test HDF5 with nvhpc
  • aocc.yml configure, build, and test HDF5 with AOCC and OpenMPI
  • testxpr.yml configure, build, and test HDF5 with HDF_TEST_EXPRESS=0
  • julia.yml configure and build HDF5, then test Julia hdf5 source
  • msys2.yml configure, build, and test HDF5 on mingw32, mingw64, ucrt64, clang64
  • i386.yml configure, build, and test HDF5 on 32-bit Linux