Skip to content

Prepare for v1.93 - #803

Draft
sdebionne wants to merge 42 commits into
masterfrom
develop
Draft

Prepare for v1.93#803
sdebionne wants to merge 42 commits into
masterfrom
develop

Conversation

@sdebionne

Copy link
Copy Markdown
Contributor

Description

Merge to master (again) for 1.93 (deadline Oct. 21)

Tasklist

  • Add release notes
  • Ensure all CI builds pass
  • Review and approve

marco-langer and others added 30 commits July 5, 2022 17:53
…ization

Remove std::floating_point specializations
Fix wrong return type of copy_fn and missing typedef in destruct_range
boost/gil/pixel_iterator_adaptor.hpp includes
boost/stl_interfaces/iterator_interface.hpp, but the boost_gil target's
link libraries never declared Boost::stl_interfaces. Building gil via a
minimal CMake superbuild (BOOST_INCLUDE_LIBRARIES=gil) therefore fails
to pull in stl_interfaces at all, causing a missing-header error.
Use constexpr wherever preferred; Replace static const bool by inheriting std::true_type or std::false_type in metafunctions.
Moves 2 metafunctions: check_mask_size and check_distance_type to detail namespace and prefixes them with 'dt' (distance_transform) to avoid naming conflicts.
Uses the clang-format configuration provided in the latest commit of PR #596. Formatting is applied to test file and example file as well. I have made no changes whatsoever after using the clang-format.
Fix missing Boost::stl_interfaces dependency in CMakeLists.txt
Fix integer overflow in channel_converter_unsigned_integral_nondivisible
Convert all prose documentation under doc/ to AsciiDoc pages built with
Antora, following the boostorg/redis and boostorg/url convention
(antora.yml, nav.adoc, build_antora.sh, package.json). Fix two
pre-existing navigation gaps in the process: the contrast_enhancement
pages that were unreachable from the old toctree, and the duplicated
histogram/extension inclusion.

The C++ API reference stays Doxygen-generated for now and is linked in
via modules/ROOT/pages/reference.adoc: MrDocs 0.8.0 segfaults on most
of GIL's CRTP-based pixel/image/iterator/locator headers, so a
MrDocs-native reference (mrdocs.yml is prepared but not wired into
antora.yml) is blocked on an upstream fix.

Update the docs CI actions and pixi.toml's new `docs` environment
(Node.js + Doxygen) accordingly, and remove the old Sphinx toolchain
files.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace the interim Doxygen reference (see previous commit) with a real
MrDocs-generated one, now that the upstream segfault blocking it is fixed
(verified against a fixed MrDocs dev build against all 49 previously-crashing
GIL headers, and against the full public API: 6796 declarations, 5662 pages).

- doc/mrdocs-src/all.cpp: the single translation unit MrDocs extracts from --
  core + concepts + image_processing + the dynamic_image/toolbox/numeric/
  histogram extensions + the generic io layer. Deliberately excludes
  extension/io/{jpeg,png,tiff,bmp,pnm,raw}, which need the matching external
  image libraries just to parse.
- doc/mrdocs.yml: scoped to that same surface; compilation-database is
  generated by build_antora.sh since it needs $BOOST_SRC_DIR baked in.
- antora.yml: ext.cppReference wired in (camelCase -- the extension doesn't
  read the kebab-case key the public docs guide shows).
- reference.adoc: rewritten from the Doxygen stopgap to a curated table of
  xref:reference:boost/gil/<Symbol>.adoc[] links, grouped by the categories
  the old doc/reference.dox Doxygen-group taxonomy used (that taxonomy has
  no equivalent in MrDocs' output, which groups by namespace/file instead).
- design/*.adoc: the ~45 concept deep-links that used to point at Doxygen
  HTML now point at the real MrDocs reference pages instead.
- doxyfile, reference.dox, header.html, footer.html, doxygen-boost.css:
  removed, no longer needed.
- local-playbook.yml: failure_level set to `fatal` rather than `error` --
  some MrDocs-generated pages (e.g. packed_pixel) link to private-member
  sub-pages (`_bitfield`) that MrDocs doesn't actually emit regardless of
  extract-private; cosmetic, worth another small upstream report, but not
  worth hard-failing the build over.
- .gitignore: `/doc/*build*` was accidentally also matching and silently
  untracking doc/build_antora.sh this whole time (the same trap the
  pre-existing `!build.jam` exception below it was clearly added for
  before); narrowed to `/doc/build/`, and doc/build_antora.sh is now
  actually tracked.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
setup-boost's `cp -r $GITHUB_WORKSPACE/* libs/gil` (into ../boost-root)
drops .git (cp -r with a glob doesn't match dotfiles), but
local-playbook.yml's Antora content source (`url: ..`) requires a real
git repository. Found via the docs-ci-smoke test branch:

  FATAL (antora): Local content source must be a git repository:
  /home/runner/work/gil/boost-root/libs/gil (url: ..)

Run the build from the original checkout instead (which does have .git),
and only use ../boost-root for BOOST_SRC_DIR (MrDocs' cross-library
header resolution), matching how boostorg/url and boostorg/redis's CI
scripts keep those two concerns separate.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Add libs/gil/pixi.toml -- a self-contained `docs` environment (Node, a C++
compiler, and MrDocs from the sdebionne/label/esrf-bcu channel, which
repackages a fixed MrDocs dev build until the upstream segfault fix ships
in an official release) -- so `pixi run -e docs docs-build` is a fully
self-contained one-command local build.

build_antora.sh now auto-detects a pixi/conda-provided MrDocs via
CONDA_PREFIX when MRDOCS_ROOT isn't already set, instead of falling
through to the antora-cpp-reference-extension's auto-download (which
currently fetches the still-broken official release).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
docs-prerequisites now sets up the pixi `docs` environment instead of a
plain Node install, and generate-doc runs the build through `pixi run -e
docs docs-build`. Without this, a real push to develop/master would still
hit the antora-cpp-reference-extension's auto-download of the official
MrDocs release, which segfaults on GIL's headers -- validated end-to-end
on the docs-ci-smoke test branch first.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
sdebionne and others added 2 commits September 3, 2026 14:34
docs: migrate from Sphinx/RST/Doxygen to Antora/AsciiDoc
generate-doc's earlier fix (running the build from the original checkout
instead of the .git-less copy under ../boost-root/libs/gil) also moved
where docs-config.sh creates temp-doc: it's now at $GITHUB_WORKSPACE/temp-doc,
not ../boost-root/libs/gil/temp-doc. docs.yaml's Deploy step still pointed
at the old path, so it failed with:

  ENOENT: no such file or directory, scandir
  '.../boost-root/libs/gil/temp-doc'

(and a confusing secondary "branch gh-pages already exists" error from
peaceiris/actions-gh-pages mishandling that missing directory).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@sdebionne sdebionne added this to the Boost 1.93 milestone Sep 3, 2026
@sdebionne sdebionne self-assigned this Sep 3, 2026
sdebionne and others added 10 commits September 3, 2026 22:22
MrDocs 2026.9.4 (official, non-prerelease release) fixes the segfault on
GIL's CRTP-based headers that motivated pinning a personal build.

The other bug that motivated it -- reference pages linking to
private-member sub-pages MrDocs never emits -- is still open upstream
(github.com/cppalliance/mrdocs/issues/1277). Oddly, GIL's specific repro
from that issue passes cleanly against the tagged 2026.9.4 release binary
itself, but fails again against the current `develop` tip (one commit
newer) -- so this is unresolved/regressed, not fixed, regardless of that
one data point.

- docs-prerequisites / generate-doc: back to plain actions/setup-node@v4
  + `bash build_antora.sh`, matching boostorg/url, redis and graph -- no
  cppalliance GitHub Action exists for MrDocs itself (it's resolved by the
  @cppalliance/antora-cpp-reference-extension npm package, not an Action),
  so this is the standard pattern other Boost libraries already use.
- pixi.toml: drop the sdebionne/label/esrf-bcu channel and the mrdocs
  dependency; keeps Node + a C++ compiler for local `pixi run -e docs
  docs-build`, per request pixi itself stays for local dev.
- build_antora.sh: drop the MRDOCS_ROOT/CONDA_PREFIX detection block.

One deliberate remaining guard: local-playbook.yml keeps
`failure_level: fatal` rather than `error`. Beyond #1277 itself, the
extension's release selection always considers cppalliance/mrdocs'
rolling `develop`/`master` tags (verified in its source:
`allowMaster`/`allowDevelop` are hardcoded to `true` regardless of
config, so a `version:` pin can't exclude them), so the exact MrDocs
build used here isn't actually pinned and can vary from run to run.
`fatal` keeps that class of cosmetic dangling-xref noise from
hard-failing the build while still catching a real extraction failure.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Leftover from the interim-Doxygen phase of the MrDocs migration and never
updated when MrDocs replaced it -- doxyfile doesn't even exist anymore.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants