diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f2d23d..156b801 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,94 @@ project uses [Semantic Versioning](https://semver.org). --- +## [0.10.0] — 2026-05-26 + +The **"reviewer-ready"** release. Three PRs (#17 + #18 + #19, 13 +thematic commits total) landed: a 100 %-Doxygen-covered public API, +a 14-gate structural quality suite (4 of them required CI), a +researcher-targeted reviewer materials package, the `output_uv_map` +named parameter extended to four of the five DCE solvers, six new +roadmap phases from a full Java-library scan, thirteen new Tier-1/2 +literature citations, three RESEARCH-only phases with acceptance +criteria, and a six-mode compile-time workflow matrix. + +### Added — reviewer materials (PR #19) + +* `doc/reviewer/{briefing,questions,agenda,README}.md` — one-page + reviewer briefing + seven scoped questions (Q1–Q2 research-track + alignment; Q3–Q4 porting decisions; Q5–Q6 process; Q7 the "no" + question) + internal meeting agenda + landing index. +* `doc/reviewer/hub.html` — hand-curated reviewer landing page, + in-repo so the publish URL survives every merge. +* `code/deps/THIRD-PARTY-LICENSES.md` — per-vendored-dep SPDX with + MIT-compatibility analysis (CGAL LGPL §3 vs §4 distinction). +* `doc/architecture/dependencies.md` — required vs optional deps; + standalone-verification recipe. + +### Added — new roadmap content (PR #19) + +* Six new phases from full Java-library scan: Phase 9d (cones), + 9d.4 (variational Möbius centring), 9e (circle-pattern layout), + 10d (Koebe circle-domain), 10e (quasi-isothermic, ~800 lines, 6 + classes), 10f (Koebe polyhedra), 10g (cyclic-symmetry quotients). +* Three RESEARCH phases with acceptance criteria: 9d.2 (non-Euclidean + cone extensions), 9f (polygon Laplacian on non-triangular meshes, + no Java parent), 10c′ (Koebe polyhedron rigidity). +* 13 new Tier-1/Tier-2 citations in `doc/math/references.md`. + +### Added — compile-time workflow matrix (PR #19) + +* PCH + Unity Build defaults: CGAL test wall-time **78 s → 55 s** + (−30 %), CPU time 676 s → 167 s (−75 %). +* Five new opt-in workflow modes (`BUILD_TESTING=OFF`, + `CONFORMALLAB_HEADERS_CHECK`, `CONFORMALLAB_DEV_BUILD`, + `CONFORMALLAB_FAST_TEST_BUILD`, `CONFORMALLAB_USE_CCACHE`). +* `doc/architecture/compile-time.md` — full measurement + workflow + matrix + macOS-vs-Linux honesty notes. +* `.gitea/workflows/perf-compile-time.yml` — Linux CI bench. + +### Added — output_uv_map covers 4 of 5 DCE entries (PR #19) + +* `CGAL::discrete_inversive_distance_map` honours `output_uv_map` + via Bowers-Stephenson edge-length reconstruction. +* `CGAL::discrete_circle_packing_euclidean` rejects `output_uv_map` + with a clear `std::runtime_error` (face-based DOFs, Phase 9c). + +### Added — structural quality gates (PR #18) + +Four scripts promoted to required CI: `license-headers.sh`, +`cgal-conventions.py`, `codespell.sh`, `shellcheck.sh --strict`. +Seven additional local-only gates: clang-format, cmake-format, +cppcheck, sanitizers (ASan + UBSan), clang-tidy, multi-compiler, +reproducible-build, CGAL-version-matrix. + +### Added — Doxygen 100 % public-API coverage (PR #17) + +* Doxygen coverage: **24 % → 100 %** (396/396 public symbols). +* Fixed `EXCLUDE_PATTERNS` bug that previously silently excluded + every `.hpp`/`.h` — pre-fix HTML had ~0 % API surface. +* MathJax + CGAL `\cgalParam*` aliases. +* New scripts: `scripts/doxygen-coverage.sh` (CI-gateable), + `scripts/gen-headers-md.py` (auto-regenerates `doc/api/headers.md`). + +### Changed + +* Three headers `` → `` (none use Eigen + decompositions): `projective_math.hpp`, + `hyper_ideal_visualization_utility.hpp`, `mesh_utils.hpp`. +* `doc/api/tests.md` — CGAL suite 234 → 236 tests. +* `code/.gitignore` — un-ignore `code/deps/THIRD-PARTY-LICENSES.md`. + +### Numbers at release + +* 259 / 259 tests pass, 0 skipped. +* 100 % Doxygen coverage on public API, 0 warnings. +* 14 / 15 quality gates green, 1 SKIP (no CGAL tarballs locally). +* CI build wall: ~55 s on Apple M1 (−30 % vs v0.9.0). +* 13 Tier-1 / Tier-2 literature citations integrated. + +--- + ## [0.9.0] — 2026-05-22 The “DCE-complete + CGAL-surface-complete” release. Two new discrete- diff --git a/CITATION.cff b/CITATION.cff index 5a7b9a4..ab941e3 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -7,8 +7,8 @@ authors: email: Tarik.moussa95@gmail.com title: "conformallab++" -version: 0.9.0 -date-released: 2026-05-22 +version: 0.10.0 +date-released: 2026-05-26 url: "https://codeberg.org/TMoussa/ConformalLabpp" repository-code: "https://codeberg.org/TMoussa/ConformalLabpp" license: MIT diff --git a/doc/architecture/compile-time.md b/doc/architecture/compile-time.md index 3968fb6..cc6f132 100644 --- a/doc/architecture/compile-time.md +++ b/doc/architecture/compile-time.md @@ -99,7 +99,7 @@ The four candidate quick-wins from the prior analysis were: add a fragile maintenance burden (every Eigen version-bump would need re-verification of the explicit-instantiation list). If a future Eigen update breaks the PCH, this is the next lever. -3. **Header split** for `** — separate +3. **Header split** for `` — separate into `_euclidean.h` / `_spherical.h` / `_hyper_ideal.h` so downstream consumers who only need one geometry pay less. **Deferred**: our test build pulls all three, so the gain is @@ -232,19 +232,22 @@ Three issues defeat the hot rebuild: 1. **PCH artefacts are not cached by default.** Apple clang's `-include-pch ...gch` path embeds timestamps that miss the cache - lookup. Workaround: set `CCACHE_SLOPPINESS=pch_defines, - include_file_mtime,include_file_ctime,time_macros,file_macro, - system_headers` (tried; still 0 % hit on macOS). + lookup. Workaround: set the environment variable + `CCACHE_SLOPPINESS` to + `pch_defines,include_file_mtime,include_file_ctime,time_macros,file_macro,system_headers` + (tried; still 0 % hit on macOS). 2. **Unity Build .cxx files** have generated paths that change between configurations; ccache treats each as a fresh compile. 3. **CMake's compile-launcher mechanism** doesn't currently combine - with `target_precompile_headers()` in a way that ccache 4.x - recognises on Apple clang. Tracked upstream as a known issue. + with the `target_precompile_headers` CMake command in a way that + ccache 4.x recognises on Apple clang — known-issue upstream. **On Linux CI** the picture is different: g++ + traditional PCH + non-Apple toolchain typically delivers 80 %+ hit rates with ccache. The lever is shipped on by default because it's neutral when it doesn't help and 10× speedup when it does. -To force-disable for clean from-scratch measurements, pass the -CMake flag `-DCONFORMALLAB_USE_CCACHE=OFF` at configure time. +To force-disable for clean from-scratch measurements, set the CMake +cache variable **CONFORMALLAB_USE_CCACHE** to **OFF** at configure +time. +