Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

95 lines
4.6 KiB
Markdown

# Changelog
All notable user-facing changes to the profiler-hub library are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Sections in each release entry:
- **Added** — new features, new public APIs, new build options
- **Changed** — changes to existing public behavior or APIs
- **Deprecated** — APIs that still work but will be removed
- **Removed** — APIs or build options that no longer exist
- **Fixed** — bug fixes visible to users
- **Security** — vulnerability fixes
Internal refactors and CI changes that have no user-visible impact do not need
a changelog entry. Release entries should be written from the perspective of a
downstream consumer of the library.
## [Unreleased]
### Added
- `libprofiler-hub.so` now ships with a SOVERSION (`libprofiler-hub.so.0` symlink and
`libprofiler-hub.so.0.1.0` actual file) so consumers can pin to a specific ABI.
- New cache var `FMT_VERSION` (default `11.2.0`). When the system fmt is missing,
the build fetches `fmtlib/fmt` at this version.
### Changed
- spdlog is now built with `SPDLOG_FMT_EXTERNAL=ON`. fmt is resolved as an
independent dependency (via `find_package(fmt)` or FetchContent) rather than
through spdlog's vendored copy. Internal includes switched from
`<spdlog/fmt/bundled/core.h>` to `<fmt/core.h>`. Required to integrate
profiler-hub into the TheRock super-project, which builds spdlog with
`SPDLOG_FMT_EXTERNAL=ON` and rejects any duplicate fmt provider.
- Because fmt is now an external dependency, consumers of the installed
`profiler-hub` CMake package (especially the static library) must have fmt
discoverable; the package config calls `find_dependency(fmt)`.
- FetchContent fallback versions bumped to a compatible pair: spdlog `1.15.3`
and fmt `11.2.0`. spdlog 1.14.x does not compile against fmt 11, so the
external-fmt switch requires spdlog >= 1.15 when the system fmt is 11.x.
- `find_package(spdlog ...)`, `find_package(fmt ...)`, and the other system
lookups keep their version variable as a minimum, so a system copy that is
too old to satisfy the requirement falls back to FetchContent. A system
spdlog is additionally accepted only when it was built with
`SPDLOG_FMT_EXTERNAL`, to avoid linking two fmt copies into one binary.
### Removed
- Build options `PROFILER_HUB_USE_SYSTEM_SPDLOG`, `PROFILER_HUB_USE_SYSTEM_NLOHMANN_JSON`,
`PROFILER_HUB_USE_SYSTEM_GTEST`, and `PROFILER_HUB_USE_SYSTEM_BENCHMARK`. These
were always-on toggles that only suppressed the system `find_package` lookup;
callers that need bundled builds can simply remove the system package or set
`CMAKE_DISABLE_FIND_PACKAGE_<name>=ON`.
### Changed
- `libprofiler-hub.so` no longer exports the bundled `sqlite3_*` symbols (sealed via
hidden visibility + `--exclude-libs`), preventing collisions with other SQLite versions.
## [0.1.0] - 2026-05-05
Initial release.
### Added
- C++17 public API for storing and retrieving ROCm profiling data in the
rocpd (SQLite) database format. Public types under `profiler-hub::` namespace:
`storage_t`, `writer_t`, `reader_t`, `version_t`, plus the supporting
type families in `writer_types`, `reader_types`, and `shared_types`.
- Schema versions 3.0.0 and 4.0.0, runtime-selectable.
- Both shared (`libprofiler-hub.so`) and static (`libprofiler-hub.a`) library
variants built from a shared object set.
- CMake package config for downstream consumption:
`find_package(profiler-hub REQUIRED)` resolves the namespaced
`profiler-hub::profiler-hub` target, including a `Findprofiler-hub.cmake` module
for non-CMake-config integrations.
- Build options: `PROFILER_HUB_BUILD_TESTS`, `PROFILER_HUB_BUILD_BENCHMARKS`,
`PROFILER_HUB_ENABLE_LOGGING`, `PROFILER_HUB_ENABLE_COVERAGE`,
`PROFILER_HUB_USE_SYSTEM_SPDLOG`, `PROFILER_HUB_USE_SYSTEM_GTEST`.
- System dependency support for SQLite3, spdlog, fmt, nlohmann_json,
GoogleTest, and Google Benchmark, with FetchContent fallback for
spdlog and GoogleTest when the system version is too old.
- Public install layout:
- `<prefix>/lib/libprofiler-hub.{so,a}`
- `<prefix>/include/profiler-hub/{reader,reader_types,shared_types,storage,version,writer,writer_types}.hpp`
- `<prefix>/lib/cmake/profiler-hub/{profiler-hub-config,profiler-hub-config-version,profiler-hub-targets,Findprofiler-hub}.cmake`
- Cobertura code coverage reports via the `coverage-xml` CMake target.
- clang-tidy custom target using the bundled `.clang-tidy` configuration.
[Unreleased]: https://github.com/ROCm/rocm-systems/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/ROCm/rocm-systems/releases/tag/v0.1.0