release: v0.10.0 — reviewer-ready release
Some checks failed
C++ Tests / test-fast (pull_request) Successful in 2m16s
API Docs / doc-build (pull_request) Successful in 49s
Markdown link check / check (pull_request) Successful in 51s
C++ Tests / test-cgal (pull_request) Failing after 7m34s
C++ Tests / quality-gates (pull_request) Successful in 2m20s

Post-merge consistency commit:

  * CITATION.cff version 0.9.0 → 0.10.0, date 2026-05-26
  * CHANGELOG.md — new "[0.10.0]" section listing all 13 commits
    that landed across PRs #17 / #18 / #19
  * Post-merge gate fixes:
      - doxygen_groups.h + doxygen_namespaces.h gain \\file briefs
      - .codespellrc extended (honour, thead, optimiser)
      - compile-time.md: unbalanced backtick on line 102 fixed
        (was confusing Doxygen's verbatim-block detector)

Final gate state on the merged main:
   259/259 tests pass
   test-count consistency
   markdown links 166/166 resolve (43 .md files)
   CGAL conventions 0/8 violations
   license-headers 68/68 carry MIT SPDX
   codespell 0 typos
   shellcheck 0 findings (18 scripts)
   Doxygen 396/396 symbols, 0 warnings

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-05-26 11:23:11 +02:00
parent e874f73e29
commit 09a68a4569
3 changed files with 101 additions and 10 deletions

View File

@@ -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 (Q1Q2 research-track
alignment; Q3Q4 porting decisions; Q5Q6 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 `<Eigen/Dense>` → `<Eigen/Core>` (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 ## [0.9.0] — 2026-05-22
The “DCE-complete + CGAL-surface-complete” release. Two new discrete- The “DCE-complete + CGAL-surface-complete” release. Two new discrete-

View File

@@ -7,8 +7,8 @@ authors:
email: Tarik.moussa95@gmail.com email: Tarik.moussa95@gmail.com
title: "conformallab++" title: "conformallab++"
version: 0.9.0 version: 0.10.0
date-released: 2026-05-22 date-released: 2026-05-26
url: "https://codeberg.org/TMoussa/ConformalLabpp" url: "https://codeberg.org/TMoussa/ConformalLabpp"
repository-code: "https://codeberg.org/TMoussa/ConformalLabpp" repository-code: "https://codeberg.org/TMoussa/ConformalLabpp"
license: MIT license: MIT

View File

@@ -99,7 +99,7 @@ The four candidate quick-wins from the prior analysis were:
add a fragile maintenance burden (every Eigen version-bump would add a fragile maintenance burden (every Eigen version-bump would
need re-verification of the explicit-instantiation list). If a need re-verification of the explicit-instantiation list). If a
future Eigen update breaks the PCH, this is the next lever. future Eigen update breaks the PCH, this is the next lever.
3. **Header split** for `<CGAL/Discrete_conformal_map.h>** — separate 3. **Header split** for `<CGAL/Discrete_conformal_map.h>` separate
into `_euclidean.h` / `_spherical.h` / `_hyper_ideal.h` so into `_euclidean.h` / `_spherical.h` / `_hyper_ideal.h` so
downstream consumers who only need one geometry pay less. downstream consumers who only need one geometry pay less.
**Deferred**: our test build pulls all three, so the gain is **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 1. **PCH artefacts are not cached by default.** Apple clang's
`-include-pch ...gch` path embeds timestamps that miss the cache `-include-pch ...gch` path embeds timestamps that miss the cache
lookup. Workaround: set `CCACHE_SLOPPINESS=pch_defines, lookup. Workaround: set the environment variable
include_file_mtime,include_file_ctime,time_macros,file_macro, `CCACHE_SLOPPINESS` to
system_headers` (tried; still 0 % hit on macOS). `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 2. **Unity Build .cxx files** have generated paths that change
between configurations; ccache treats each as a fresh compile. between configurations; ccache treats each as a fresh compile.
3. **CMake's compile-launcher mechanism** doesn't currently combine 3. **CMake's compile-launcher mechanism** doesn't currently combine
with `target_precompile_headers()` in a way that ccache 4.x with the `target_precompile_headers` CMake command in a way that
recognises on Apple clang. Tracked upstream as a known issue. ccache 4.x recognises on Apple clang known-issue upstream.
**On Linux CI** the picture is different: g++ + traditional PCH + **On Linux CI** the picture is different: g++ + traditional PCH +
non-Apple toolchain typically delivers 80 %+ hit rates with ccache. non-Apple toolchain typically delivers 80 %+ hit rates with ccache.
The lever is shipped on by default because it's neutral when it The lever is shipped on by default because it's neutral when it
doesn't help and 10× speedup when it does. doesn't help and 10× speedup when it does.
To force-disable for clean from-scratch measurements, pass the To force-disable for clean from-scratch measurements, set the CMake
CMake flag `-DCONFORMALLAB_USE_CCACHE=OFF` at configure time. cache variable **CONFORMALLAB_USE_CCACHE** to **OFF** at configure
time.