Skip to content

Releases: stephenberry/ut

v1.2.1

Choose a tag to compare

@stephenberry stephenberry released this 31 Jul 10:55

Fixes import std support, which is broken on current CMake releases in v1.2.0.

The library headers are unchanged from v1.2.0 — this is a build system release. If you use ut as headers only, there is nothing new for you.

Fixed

import std works across CMake releases again. v1.2.0 hardcoded a single experimental UUID valid for CMake 4.1/4.2, so UT_ENABLE_MODULES=ON failed to configure on CMake 4.3 and 4.4. The value is now chosen from the running CMake version, and an unrecognized release produces a message saying what to add rather than a confusing mismatch error. (#7, #9)

The gate can be overridden. Pass -DCMAKE_EXPERIMENTAL_CXX_IMPORT_STD=<uuid> to supply your own value — previously this was accepted and then silently ignored. (#12)

Added

Modules documentation for subproject consumers. CMake reads the gate while enabling CXX, so a project that pulls ut in with add_subdirectory() or FetchContent has already passed that point and must set the value before its own project() call. The README now covers this, with both forms and the error you get without it.

Build and CI

  • Workflows updated to ubuntu-26.04, gcc 14/15, clang 21/22, MSVC 14.50 (#9)
  • Third-party actions pinned to commit SHAs and token permissions narrowed to contents: read, with Dependabot added to keep the pins current
  • Dropped stale CMake presets

Upgrading

Drop-in for existing users. Module users on CMake 4.3 or newer should upgrade — v1.2.0 cannot configure at all. If you consume ut as a subproject, see "Consuming ut as a subproject" in the README.

Thanks

  • @DockedFerret800 for the CMake 4.3 compatibility fix (#7), the workflow modernization (#9), and for catching that the gate had to remain overridable (#11)
  • @mccakit for making the case (#10) that pinning one UUID cannot work across CMake releases, which is what led to the version-keyed selection used here

v1.2.0

Choose a tag to compare

@stephenberry stephenberry released this 07 Mar 16:05
864c810

C++20 Modules Support!

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@stephenberry stephenberry released this 11 Dec 15:15

What's Changed

  • Now requires C++23
  • Selective test running with UT_RUN by @stephenberry in #5

Running Specific Tests

Use the UT_RUN environment variable to run specific tests by name:

# Single test
UT_RUN="test name" ./my_tests

# Multiple tests
UT_RUN="[test1,test2,test3]" ./my_tests

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@stephenberry stephenberry released this 12 Jun 14:41

Version 1.0.0 Release

We are happy with the current set of features and stability to mark this 1.0

Fixes

Full Changelog: v0.0.5...v1.0.0

v0.0.5

Choose a tag to compare

@stephenberry stephenberry released this 13 May 14:39

What's Changed

Full Changelog: v0.0.4...v0.0.5

v0.0.4

Choose a tag to compare

@stephenberry stephenberry released this 14 Nov 15:38

Add UT_COMPILE_TIME definition to enable compile time testing. Runtime tests is now always on, but ran be opt-out with the consteval qualifier on tests.

Full Changelog: v0.0.3...v0.0.4

v0.0.3

Choose a tag to compare

@stephenberry stephenberry released this 30 May 14:35
  • Using std::exit rather than std::abort so that MSVC does not hang when unit tests fail.

Full Changelog: v0.0.2...v0.0.3

v0.0.2

Choose a tag to compare

@stephenberry stephenberry released this 30 May 13:57

Proper source location for test failures

Note: Fatal errors require C++23 for accurate source location reporting.

v0.0.1

Choose a tag to compare

@stephenberry stephenberry released this 30 May 13:08

Initial Release!