From 64046a9a3e49636afe1a480c19ad2f0f768f79b7 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Thu, 1 Oct 2026 00:37:12 +0200 Subject: [PATCH 1/2] chore(release): prepare 0.3.0 The version test pins the number literally, so it moves with the header and project(VERSION). Signed-off-by: Christian Parpart --- CHANGELOG.md | 14 +++++++++++++- CMakeLists.txt | 2 +- README.md | 3 ++- docs/index.md | 1 + include/formula-cpp/version.hpp | 4 ++-- test/runtime_tests.cpp | 4 ++-- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb23db3d..853a4209 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ change is recorded here. ## [Unreleased] +## [0.3.0] - 2026-10-01 + +The third release. It gives a shorter spelling to everything the examples repeated, and takes no +spelling away. `_r` writes an exact decimal, `27.3_r` being the `Rational` 273/10; a series takes +plain numbers and `not_measured`; `number_of` reads the number a result holds; `describe` and +`std::format` write results, units, dimensions and enumerations; `traced`, the `explain_*` twins and +`trace_of` return a trace in one call; `DecimalRounding` names a rounding once; a `Measured` has +throwing twins for its checked conversions; and `yields` binds a formula to its result quantity. +Every example is rewritten with these spellings and prints with `std::println`. GCC 14 is now the +oldest supported GCC. Some changes break code written for 0.2.0; each is listed under Changed. + ### Added - `convert_to`, `round_to_declared` and `within_bounds` for a `Measured`: the throwing twins @@ -664,6 +675,7 @@ are one type; `docs/quantities.md` sets out what each spelling costs. for 205.5 g, and so were a curve over it and a value read off that curve. Each now reads in the series' unit, `411/2 g`, when that unit has a symbol and no offset. -[Unreleased]: https://github.com/LASTRADA-Software/formula-cpp/compare/v0.2.0...HEAD +[Unreleased]: https://github.com/LASTRADA-Software/formula-cpp/compare/v0.3.0...HEAD +[0.3.0]: https://github.com/LASTRADA-Software/formula-cpp/releases/tag/v0.3.0 [0.2.0]: https://github.com/LASTRADA-Software/formula-cpp/releases/tag/v0.2.0 [0.1.0]: https://github.com/LASTRADA-Software/formula-cpp/releases/tag/v0.1.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 712defc3..5ef74824 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.23) # silently becomes 0.0.0 and every find_package(formula-cpp 0.1.0) then fails # with an error the git tag does not explain. project(formula-cpp - VERSION 0.2.0 + VERSION 0.3.0 DESCRIPTION "Declarative, traceable, self-documenting formulas for C++23" HOMEPAGE_URL "https://github.com/LASTRADA-Software/formula-cpp" LANGUAGES CXX) diff --git a/README.md b/README.md index d5eae7c2..f2c038bc 100644 --- a/README.md +++ b/README.md @@ -316,7 +316,7 @@ Each guide has a matching runnable program under `examples/`. ## Status -0.2.0 is the latest release ([CHANGELOG](CHANGELOG.md)). Usable for what is listed as shipped, +0.3.0 is the latest release ([CHANGELOG](CHANGELOG.md)). Usable for what is listed as shipped, and still growing. The public API may change until 1.0. | Area | State | @@ -342,6 +342,7 @@ and still growing. The public API may change until 1.0. | Named base dimensions such as money | shipped | | Decimals in traces, rendered formulas and `std::format` | shipped | | Calculations: definitions, dependency graph, incremental worksheets | shipped | +| Short spellings: exact decimal literals, bound formulas, number_of, trace_of, std::format of results | shipped | ## Requirements diff --git a/docs/index.md b/docs/index.md index 50831ea9..73d1d7ec 100644 --- a/docs/index.md +++ b/docs/index.md @@ -133,5 +133,6 @@ Usable for what is listed as shipped, and still growing. The public API may chan | Named base dimensions such as money | shipped | | Decimals in traces, rendered formulas and `std::format` | shipped | | Calculations: definitions, dependency graph, incremental worksheets | shipped | +| Short spellings: exact decimal literals, bound formulas, number_of, trace_of, std::format of results | shipped | Apache-2.0. Source at [github.com/LASTRADA-Software/formula-cpp](https://github.com/LASTRADA-Software/formula-cpp). diff --git a/include/formula-cpp/version.hpp b/include/formula-cpp/version.hpp index 63e9485c..a80225e5 100644 --- a/include/formula-cpp/version.hpp +++ b/include/formula-cpp/version.hpp @@ -10,8 +10,8 @@ /// The major version -- bumped for a breaking change. #define FORMULA_VERSION_MAJOR 0 /// The minor version -- bumped for a compatible feature addition. -#define FORMULA_VERSION_MINOR 2 +#define FORMULA_VERSION_MINOR 3 /// The patch version -- bumped for a compatible fix. #define FORMULA_VERSION_PATCH 0 /// The full version, as a string literal. -#define FORMULA_VERSION_STRING "0.2.0" +#define FORMULA_VERSION_STRING "0.3.0" diff --git a/test/runtime_tests.cpp b/test/runtime_tests.cpp index 98f84c28..6d96a505 100644 --- a/test/runtime_tests.cpp +++ b/test/runtime_tests.cpp @@ -10,9 +10,9 @@ TEST_CASE("version macros agree with each other", "[version]") { CHECK(FORMULA_VERSION_MAJOR == 0); - CHECK(FORMULA_VERSION_MINOR == 2); + CHECK(FORMULA_VERSION_MINOR == 3); CHECK(FORMULA_VERSION_PATCH == 0); - CHECK(std::string_view { FORMULA_VERSION_STRING } == "0.2.0"); + CHECK(std::string_view { FORMULA_VERSION_STRING } == "0.3.0"); } TEST_CASE("quantity types survive a translation unit boundary", "[linkage]") From 6d51e20c6e1578ebbb475a3a58d227234ec64a0b Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Thu, 1 Oct 2026 00:40:15 +0200 Subject: [PATCH 2/2] docs(release): name every throwing twin in the 0.3.0 summary, and format the new status row The summary said a Measured has throwing twins for its checked conversions; it has them for its conversion, its rounding and its bounds check. The new status row now writes code names in backticks, as the other rows do. Signed-off-by: Christian Parpart --- CHANGELOG.md | 7 ++++--- README.md | 2 +- docs/index.md | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 853a4209..f1779d5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,9 +13,10 @@ spelling away. `_r` writes an exact decimal, `27.3_r` being the `Rational` 273/1 plain numbers and `not_measured`; `number_of` reads the number a result holds; `describe` and `std::format` write results, units, dimensions and enumerations; `traced`, the `explain_*` twins and `trace_of` return a trace in one call; `DecimalRounding` names a rounding once; a `Measured` has -throwing twins for its checked conversions; and `yields` binds a formula to its result quantity. -Every example is rewritten with these spellings and prints with `std::println`. GCC 14 is now the -oldest supported GCC. Some changes break code written for 0.2.0; each is listed under Changed. +throwing twins for its checked conversion, rounding and bounds check; and `yields` binds a +formula to its result quantity. Every example is rewritten with these spellings and prints with +`std::println`. GCC 14 is now the oldest supported GCC. Some changes break code written for 0.2.0; +each is listed under Changed. ### Added diff --git a/README.md b/README.md index f2c038bc..6069f313 100644 --- a/README.md +++ b/README.md @@ -342,7 +342,7 @@ and still growing. The public API may change until 1.0. | Named base dimensions such as money | shipped | | Decimals in traces, rendered formulas and `std::format` | shipped | | Calculations: definitions, dependency graph, incremental worksheets | shipped | -| Short spellings: exact decimal literals, bound formulas, number_of, trace_of, std::format of results | shipped | +| Short spellings: exact decimal literals, bound formulas, `number_of`, `trace_of`, `std::format` of results | shipped | ## Requirements diff --git a/docs/index.md b/docs/index.md index 73d1d7ec..e9deb5a8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -133,6 +133,6 @@ Usable for what is listed as shipped, and still growing. The public API may chan | Named base dimensions such as money | shipped | | Decimals in traces, rendered formulas and `std::format` | shipped | | Calculations: definitions, dependency graph, incremental worksheets | shipped | -| Short spellings: exact decimal literals, bound formulas, number_of, trace_of, std::format of results | shipped | +| Short spellings: exact decimal literals, bound formulas, `number_of`, `trace_of`, `std::format` of results | shipped | Apache-2.0. Source at [github.com/LASTRADA-Software/formula-cpp](https://github.com/LASTRADA-Software/formula-cpp).