Skip to content

v1.0.0: Stable API Release

Latest

Choose a tag to compare

@kcenon kcenon released this 15 Apr 23:06
6dd5c9e

thread_system v1.0.0

First stable release with frozen public API and semantic versioning guarantees.

Highlights

  • Stable API: All public headers frozen — no breaking changes until v2.0
  • Result<T> Error Handling: throw replaced with Result<T> across all public APIs
  • Queue Consolidation: 10 queue implementations reduced to 2 public types (adaptive_job_queue, job_queue)
  • CMake Project Rename: ThreadSystemthread_system (breaking change from 0.x)

Added

  • vcpkg CMake preset for streamlined builds (#632)
  • Tutorials, FAQ, and troubleshooting guide (#661)
  • Getting Started guide with categorized examples (#655)
  • Architecture Decision Records (ADR) (#648)
  • Issue/PR templates, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY (#628)
  • Documentation audit CI workflow for PRs (#650)
  • Automated vcpkg registry sync on release (#629)

Changed

  • BREAKING: Rename CMake project from ThreadSystem to thread_system (#642)
  • Replace throw statements with Result<T> in all public API headers (#675)
  • Add deprecation markers for v1.0 API freeze (#676)
  • Remove deprecated job classes, resilience headers, and policy methods (#611)
  • Standardize license headers to short BSD-3-Clause format (#641)
  • Standardize CMake export naming to thread_system-targets (#588)
  • Standardize minimum CMake version to 3.20 (#621)

Fixed

  • Thread-safe diagnostics initialization with std::call_once (#669)
  • vcpkg usage target name mismatch and stale fmt dependency (#664)
  • hazard_pointer memory ordering issues for lock-free correctness
  • pkg-config template for unified library (#634)

Performance

  • Replace mutex with atomic counter for job_queue read-only query APIs (#609)
  • Add exponential backoff to lockfree_job_queue CAS retry loops (#610)
  • Lock-free freelist pool for queue node allocation
  • Replace 10ms polling sleep with condition_variable blocking in thread pool

Infrastructure

  • Upgrade dependencies: spdlog 1.15.3, gtest 1.17.0, benchmark 1.9.5
  • Adopt setup-vcpkg composite action for CI standardization (#622)

Migration from 0.x

See USER_MIGRATION_GUIDE.md for details.

Key changes:

  1. Update CMake: find_package(thread_system) (was ThreadSystem)
  2. Update target: thread_system::thread_system (was ThreadSystem::ThreadSystem)
  3. Replace throw-based error handling with Result<T> returns
  4. Update FetchContent: GIT_TAG v1.0.0

Full Changelog: https://github.com/kcenon/thread_system/blob/main/CHANGELOG.md