diff --git a/CHANGELOG.md b/CHANGELOG.md index fb23db3..f1779d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ 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 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 - `convert_to`, `round_to_declared` and `within_bounds` for a `Measured`: the throwing twins @@ -664,6 +676,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 712defc..5ef7482 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 d5eae7c..6069f31 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 50831ea..e9deb5a 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 63e9485..a80225e 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 98f84c2..6d96a50 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]")