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
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:
88
CHANGELOG.md
88
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 `<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
|
||||
|
||||
The “DCE-complete + CGAL-surface-complete” release. Two new discrete-
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 `<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
|
||||
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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user