326 Commits

Author SHA1 Message Date
Victor Zverovich
8be4b46114 Bump mkdocs-material to 9.7.7 2026-09-06 12:26:04 -07:00
Avi Kivity
e27cc20bd9
Format enums annotated with fmt::as_identifiers (requires C++26 reflection) (#4885)
* Format enums annotated with fmt::as_identifiers (requires C++26 reflection)

Format an enum as the identifier of the matching enumerator if the enum is
annotated with fmt::as_identifiers:

  enum class [[=fmt::as_identifiers]] color { red, green, blue };
  fmt::format("{}", color::green);  // "green"

Values that don't match any enumerator are represented as their underlying
value in decimal before applying string formatting.

Identifiers are retrieved via C++26 reflection (P2996) and the annotation
via P3394. FMT_USE_REFLECTION is autodetected and can be overridden by the
user; without reflection the header is empty.

The header is also part of the fmt module, but, unlike with headers, whether
it provides anything is decided when the module is compiled, so the module
build detects reflection and enables it if the configured standard allows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Look up enum identifiers by index when the values are dense

The formatter for enums annotated with fmt::as_identifiers did a linear
search over all enumerators. Build a table indexed by the distance from
the smallest enumerator value instead, with empty string views in the
holes, which reduces the lookup to a bounds check and one load.

The table is only used if at least 70% of its elements are identifiers,
limiting its size to 10/7 of the number of enumerators. Sparser enums
keep using the linear search. Distances are computed in uint64_t so that
enums with negative values and values spanning the whole range of the
underlying type are handled without overflow.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Suppress -Wsfinae-incomplete in format-test on GCC 16

GCC 16 warns when a type is completed after it failed to be complete in a
SFINAE context. format-test does this deliberately to check that formatting
of incomplete types works, so the warning is a false positive there and
breaks the build with -Werror.

* Test GCC 16 on CI

GCC 16 is the first compiler with C++26 reflection support, which is needed
by fmt/enum.h, so add a job that builds with it in C++26 mode. It comes from
the ubuntu-toolchain-r/test PPA since Ubuntu 24.04 only ships GCC 14.

Also report when reflection is not detected to make it visible that
enum-test was skipped.

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-23 09:31:28 -07:00
Ferdinand Bachmann
488c3b9628
Add pkgconfig file for fmt-c library (#4887) 2026-08-23 07:50:04 -07:00
dependabot[bot]
4f645a8d5d
Bump pymdown-extensions in /support in the pip group across 1 directory (#4881)
Bumps the pip group with 1 update in the /support directory: [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions).


Updates `pymdown-extensions` from 10.21.3 to 11.0.1
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.21.3...11.0.1)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-version: 11.0.1
  dependency-type: indirect
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-09 08:42:05 -07:00
Victor Zverovich
841040e781 Attach release artifacts to draft via workflow_dispatch
Draft releases do not fire the `release: created` event, so the release
workflow never ran and the source zip and SLSA provenance were not
attached to the draft. Trigger the workflow explicitly from release.py
via workflow_dispatch, passing the tag to attach to and the ref to build
from, and resolve the tag/ref in the workflow for both event types.
2026-06-08 07:48:52 +02:00
Victor Zverovich
e6a8751df7 Restore api.html redirect to fix broken deep links
Re-enable generation of the api.html redirect page during docs deploy so
legacy links such as api.html#udt forward to the new MkDocs api/ page with
their URL hash preserved.
2026-06-05 08:06:58 -07:00
Victor Zverovich
9afcd929ba Fix release script 2026-06-02 17:32:47 -07:00
Victor Zverovich
f2995637c2 Fix release script 2026-06-02 16:21:20 -07:00
Victor Zverovich
9cd653cac1 Use venv in the release script 2026-06-02 15:32:58 -07:00
Victor Zverovich
a54dbce579 Update branch 2026-06-02 15:17:59 -07:00
Victor Zverovich
e48f8a9070 Pin clang-format install
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-31 20:56:33 -07:00
Victor Zverovich
6a1d56c425 Pin doc deps 2026-05-31 20:14:10 -07:00
Victor Zverovich
49780cabbe Pin deps 2026-05-31 19:10:01 -07:00
Victor Zverovich
a9e889e161 Build release artifacts and SLSA provenance in CI
Adds .github/workflows/release.yml, triggered on `release: created`, which:
  - checks out the release's target_commitish,
  - builds the source zip via CMake/CPack (`package_source`),
  - uploads the zip to the draft release,
  - calls slsa-framework/slsa-github-generator to produce a
    SLSA v1.0 *.intoto.jsonl provenance file and attach it to the
    same draft release.

After CI completes, the draft has both the zip and the provenance attached,
and the maintainer reviews and publishes as before.

Updates support/release.py to stop building and uploading the zip locally;
that work has moved to CI so the SLSA provenance attests to the actual
build environment that produced the artifact, not to a hash observed
after the fact. The script still builds docs locally because the
subsequent mkdocs deploy step depends on them.
2026-05-31 18:16:07 -07:00
Victor Zverovich
e090e3ffad Apply cmake-format 2026-03-03 15:49:40 -08:00
Victor Zverovich
8b8fccdad4 Minor cleanup 2026-01-22 11:24:08 -08:00
Soumik15630m
b7b1abce38
Update Android Gradle Plugin to 9.x (#4658) 2026-01-21 10:22:00 -08:00
Zephyr Lykos
7bce22571a
Make it work on newer mkdocstrings, fix deprecation warnings (#4626)
* Make it work on newer mkdocstrings, fix deprecation warnings

* Bump documentation dependency versions
2025-12-14 08:36:41 -08:00
Victor Zverovich
23c13b3060 Handle ulink in docs 2025-11-03 13:14:48 -10:00
Victor Zverovich
29c46fb82d Add support for more doxygen tags 2025-11-03 10:57:41 -10:00
Victor Zverovich
c5e55972ae Minor improvements to mkdocs 2025-09-21 12:47:15 -07:00
Victor Zverovich
dc409ee86d Explain mkdocs deploy invocation 2025-09-21 12:47:09 -07:00
Victor Zverovich
aa8a30838a Fix mike invocation 2025-09-21 08:03:21 -07:00
Marcel
9908d00037
Delete Bazel support (#4530) 2025-09-05 15:53:13 -07:00
Victor Zverovich
59259a5fde Make a doc directory if it doesn't exist 2025-05-03 10:29:35 -07:00
Vertexwahn
d5d32c1e81
Bazel support: Update platforms to 0.0.11 (#4400) 2025-03-30 08:36:25 -07:00
Victor Zverovich
3c8aad8df7 Update the release script 2024-12-26 07:03:15 -08:00
Victor Zverovich
73d0d3f75d Fix github API call 2024-12-25 08:27:59 -08:00
Victor Zverovich
f3a41441df Replace requests with urllib 2024-12-25 08:16:09 -08:00
Victor Zverovich
f5a16a484b Cleanup 2024-09-06 12:41:53 -07:00
Roberto Turrado Camblor
c71d03fcb0
Make support/python/mkdocstrings_handlers/cxx/__init__.py PEP 8 compliant (2 of 2) (#4115)
* Change indents to 4 spaces.

* Run isort.

* Remove one extra space on the left hand side of each assignment at p.communicate's input.

* Remove 'from __future__ import annotations'.
This requires changing a 'list[]' into a 'List[]'.

We had previously added this import because the code was making use of operator '|'.
But that is no longer true, so the import shouldn't be needed.
2024-08-11 07:24:50 -07:00
Roberto Turrado Camblor
c98518351e
Make support/python/mkdocstrings_handlers/cxx/__init__.py PEP 8 compliant (1 of 2) (#4110)
* Make support/python/mkdocstrings_handlers/cxx/__init__.py PEP compliant.

* Rollback minor change in __init__ signature.

* Rollback minor change in __init__ signature.

* Fix previous commit.

* Add 'from __future__ import annotations' to fix Python 3.8 error when using operator '|'.

* Change doxyxml2html([n]) to doxyxml2html(list(n)) as suggested by Victor.
Change convert_type return type to Optional[str].
2024-08-08 15:22:41 -07:00
Victor Zverovich
0c02813791 Fix doc build 2024-07-24 13:40:54 -07:00
Victor Zverovich
f8581bcecf Add redirect page 2024-07-24 12:21:44 -07:00
Victor Zverovich
55e76e6c20 Update check-commits script 2024-07-17 06:58:37 -07:00
Victor Zverovich
8757f1f8d6 Add a script to test multiple commits 2024-07-16 06:27:01 -07:00
Victor Zverovich
e314776c2e Fix version check 2024-07-05 08:25:10 -07:00
Victor Zverovich
503e183b9e Bump version and add version validation 2024-07-04 07:49:58 -07:00
Victor Zverovich
43c5b34749 Fix package build 2024-06-30 08:23:25 -07:00
Victor Zverovich
e89568e6cb Update vagrant config 2024-06-30 07:56:35 -07:00
Victor Zverovich
f5bf6f7781 Update build script 2024-06-30 07:55:57 -07:00
Victor Zverovich
84f6131825 Fix formatting of release notes 2024-06-29 09:36:35 -07:00
Victor Zverovich
dedc17c1c9 Fix handling of tables, take 3 2024-06-29 09:31:32 -07:00
Victor Zverovich
5d0adb6d74 Fix handling of tables, take 2 2024-06-29 09:29:06 -07:00
Victor Zverovich
3f251fc9c9 Fix handling of tables 2024-06-29 09:23:02 -07:00
Victor Zverovich
1930ed4bfa Fix release script 2024-06-29 09:09:55 -07:00
Victor Zverovich
26d07e49b2 Fix formatting 2024-06-29 09:06:49 -07:00
Victor Zverovich
949d5d1795 Fix build script 2024-06-29 08:59:54 -07:00
Victor Zverovich
602e3c3d11 Update build script 2024-06-29 08:54:03 -07:00
Victor Zverovich
2952130cbc Fix doc build 2024-06-29 08:50:16 -07:00