Skip to content

chore(release): prepare v1.1.0 - #45

Merged
SizzleUnrlsd merged 2 commits into
mainfrom
chore/release-1.1.0
Sep 30, 2026
Merged

SizzleUnrlsd merged 2 commits into
mainfrom
chore/release-1.1.0

Conversation

@SizzleUnrlsd

Copy link
Copy Markdown
Contributor

Summary

  • Bring the README up to date with the changes since v1.0.0:
    • code size;
    • install directory name;
    • FetchContent pinned to v1.1.0;
    • format-error fallback;
    • UTC timestamps;
    • thread-safe mode and reentrant sinks;
    • unserialized write_*() functions;
    • CT_LOG_LEVEL and CT_DEBUG details;
    • a new "Development" section that points to the wiki.
  • Complete the matching API comments in logger.hpp.
  • Bump project(VERSION) to 1.1.0. The installed package reports 1.1.0, and find_package(coretrace-logger 1.1) finds it.

v1.1.0 rather than the v1.0.1 suggested by scripts/ci/semver_check.py: enable_module() now returns bool (a backward-compatible API addition, although its commit was typed fix), and the module filter and set_sink() behave differently.

After this is merged, tag v1.1.0 on the merge commit and publish the release with the notes below.

Verification

  • ctest --test-dir <build> --output-on-failure (25/25 passed)
  • CLANG_FORMAT=<clang-format 20.1.8> scripts/format-check.sh: formatting is clean.
  • Installed package: PACKAGE_VERSION "1.1.0"; a probe project with find_package(coretrace-logger 1.1 REQUIRED) finds 1.1.0.

Release notes (draft)

Highlights

  • Safer sinks and threads. A log line reaches the sink in one call, and a sink may call log() itself. The format-error fallback is serialized with other lines. set_sink() and reset_sink() wait for a line still being written, so the previous sink's file can be closed once they return.
  • Module filter. Disabling the last enabled module no longer turns the filter off. enable_module() reports names it cannot store, and CT_DEBUG ignores spaces around names.
  • Environment defaults. min_level() and module_is_enabled() read CT_LOG_LEVEL and CT_DEBUG before the first log.

Changes that may affect you

  • enable_module() now returns bool: false for an empty name, a name of 32 characters or more, or a full table. Existing calls still compile.
  • After disable_module() removes the last enabled module, tagged messages stay filtered until enable_all_modules().
  • In thread-safe mode, set_sink() and reset_sink() wait for a line being written.

Fixes

Tests and CI

  • Line coverage went from 48.7% to 88.7%. New tests: unit tests, startup environment scenarios, stderr output, concurrent line integrity, pseudo-terminal color checks, the example program as an end-to-end test, and a project that consumes the installed package.
  • New workflows run the tests under ASan, UBSan and TSan, build the package consumer on Linux and Windows, and enforce a coverage floor. The formatting, license and commit checks now actually run.

Documentation

  • README examples fixed and compiled with the tests. The README and API comments are up to date for 1.1.0, and the project now has a wiki.

Full changelog: v1.0.0...v1.1.0

@SizzleUnrlsd SizzleUnrlsd self-assigned this Sep 30, 2026
@SizzleUnrlsd
SizzleUnrlsd merged commit 3be11f4 into main Sep 30, 2026
13 checks passed
@SizzleUnrlsd
SizzleUnrlsd deleted the chore/release-1.1.0 branch September 30, 2026 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant