From 8467d4fb9c5146dac7ccf1ddfa2fbde80a0d7fe5 Mon Sep 17 00:00:00 2001 From: Edward Nolan Date: Sun, 24 May 2026 19:39:56 -0400 Subject: [PATCH] Exemplar updates since 2026-05-01 Added missing SPDX license identifiers to CONTRIBUTING.md and port/portfile.cmake.in. Updated infra/.beman_submodule commit_hash to 9bd493ce12ba5b7b01bc777f35d1e08a16889a90. Added .beman-tidy.yaml config file for beman-tidy compliance checking. Bumped infra/.beman_submodule commit_hash to 66b4f0cdf527cb66bfe2f009f0d2b0ceb56d2cd0 to support modules. Bumped vcpkg registry baselines (default to 522253caf47268c1724f486a035e927a42a90092, beman registry to 28992b34d1e39368f5d1214a557fd61949de39fb). Bumped infra/.beman_submodule commit_hash to eb7b7c3688bd8f26ab0c145e3147df9a8f2ec8ce (adds SPDX header to enable-experimental-import-std.cmake, already present in indirect). Bump infra-workflows from 1.7.1 to 1.7.2 (code coverage job fix). Added concurrency block to ci_tests.yml to cancel in-progress runs on new pushes. Bumped infra/.beman_submodule commit_hash to d536fc285ae058cf8f5b736b5ff73d18a421b296 and added CMake 4.3.3 support to enable-experimental-import-std.cmake. Bumped infra-workflows from 1.7.2 to 1.7.3 (pins CMake for MSVC/AppleClang CI to avoid breaking enable-experimental-import-std.cmake). Bumped pre-commit hooks: clang-format v22.1.4->v22.1.5, gersemi 0.27.2->0.27.6, beman-tidy v0.4.1->v0.5.0 (fixes SPDX license identifier check). Updated README.md badges to one-per-line layout with links to CI workflows and the maturity model doc. Bumped beman-tidy pre-commit hook v0.5.0->v0.5.1 (new checks for improved README.md badges). Removed redundant include search path modification note from README.md. Bumped vcpkg-registry baseline from 28992b34d1e39368f5d1214a557fd61949de39fb to e1aa5c3c2a46486cc1384d70beab939d76bfe128. Bumped microsoft/vcpkg baseline from 522253caf47268c1724f486a035e927a42a90092 to aa40adda5352e87655b8583cfb2451d5e9e276fd. --- .beman-tidy.yaml | 10 ++++++++++ .exemplar_version | 2 +- .github/workflows/ci_tests.yml | 14 +++++++++----- .github/workflows/pre-commit-check.yml | 2 +- .github/workflows/pre-commit-update.yml | 2 +- .github/workflows/vcpkg-release.yml | 2 +- .pre-commit-config.yaml | 6 +++--- CONTRIBUTING.md | 4 ++++ README.md | 16 ++++++++-------- infra/.beman_submodule | 2 +- infra/cmake/enable-experimental-import-std.cmake | 4 ++++ port/portfile.cmake.in | 1 + vcpkg-configuration.json | 4 ++-- 13 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 .beman-tidy.yaml diff --git a/.beman-tidy.yaml b/.beman-tidy.yaml new file mode 100644 index 0000000..24d798b --- /dev/null +++ b/.beman-tidy.yaml @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# This is the config file for beman-tidy, which checks compliance with the Beman Standard (https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md) +# Check documentation for beman-tidy here: +# https://github.com/bemanproject/beman-tidy/blob/main/README.md + +disabled_rules: + # None +ignored_paths: + # None diff --git a/.exemplar_version b/.exemplar_version index 1fe9d8b..14f6221 100644 --- a/.exemplar_version +++ b/.exemplar_version @@ -1 +1 @@ -07a42c8a3ace7b889d4d98df8f9ec3a4cf74887f +ec861600898941a5114f352f1efcba57d825b6d0 diff --git a/.github/workflows/ci_tests.yml b/.github/workflows/ci_tests.yml index 726daa6..ae2fb8e 100644 --- a/.github/workflows/ci_tests.yml +++ b/.github/workflows/ci_tests.yml @@ -11,12 +11,16 @@ on: schedule: - cron: '30 16 * * 4' +concurrency: + group: ${{format('{0}:{1}', github.repository, github.ref)}} + cancel-in-progress: true + jobs: beman-submodule-check: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-submodule-check.yml@1.7.3 preset-test: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.3 with: matrix_config: > [ @@ -31,7 +35,7 @@ jobs: ] build-and-test: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.3 with: matrix_config: > { @@ -145,11 +149,11 @@ jobs: } vcpkg-ci: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.3 with: port_name: beman-indirect create-issue-when-fault: needs: [preset-test, build-and-test] if: failure() && github.event_name == 'schedule' - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.3 diff --git a/.github/workflows/pre-commit-check.yml b/.github/workflows/pre-commit-check.yml index fc46265..d65a3cc 100644 --- a/.github/workflows/pre-commit-check.yml +++ b/.github/workflows/pre-commit-check.yml @@ -17,4 +17,4 @@ permissions: jobs: pre-commit: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.3 diff --git a/.github/workflows/pre-commit-update.yml b/.github/workflows/pre-commit-update.yml index e1ab7e8..3b80ce8 100644 --- a/.github/workflows/pre-commit-update.yml +++ b/.github/workflows/pre-commit-update.yml @@ -9,7 +9,7 @@ on: jobs: auto-update-pre-commit: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.7.3 secrets: APP_ID: ${{ secrets.AUTO_PR_BOT_APP_ID }} PRIVATE_KEY: ${{ secrets.AUTO_PR_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/vcpkg-release.yml b/.github/workflows/vcpkg-release.yml index 0bc8c45..f84bb9c 100644 --- a/.github/workflows/vcpkg-release.yml +++ b/.github/workflows/vcpkg-release.yml @@ -6,7 +6,7 @@ on: types: [published] jobs: vcpkg-release: - uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.1 + uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.3 with: port_name: beman-indirect secrets: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 099e456..e09e0e3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,14 +14,14 @@ repos: # This brings in a portable version of clang-format. # See also: https://github.com/ssciwr/clang-format-wheel - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v22.1.4 + rev: v22.1.5 hooks: - id: clang-format types_or: [c++, c] # CMake linting and formatting - repo: https://github.com/BlankSpruce/gersemi-pre-commit - rev: 0.27.2 + rev: 0.27.6 hooks: - id: gersemi name: CMake linting @@ -42,7 +42,7 @@ repos: # Beman Standard checking via beman-tidy - repo: https://github.com/bemanproject/beman-tidy - rev: v0.4.1 + rev: v0.5.1 hooks: - id: beman-tidy diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 142aa2f..cd83359 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,7 @@ + + # Development ## Configure and Build the Project Using CMake Presets diff --git a/README.md b/README.md index d940c97..2b768b5 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,14 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> - -![Library Status](https://raw.githubusercontent.com/bemanproject/beman/refs/heads/main/images/badges/beman_badge-beman_library_under_development.svg) ![Continuous Integration Tests](https://github.com/bemanproject/indirect/actions/workflows/ci_tests.yml/badge.svg) ![Lint Check (pre-commit)](https://github.com/bemanproject/indirect/actions/workflows/pre-commit-check.yml/badge.svg) [![Coverage](https://coveralls.io/repos/github/bemanproject/indirect/badge.svg?branch=main)](https://coveralls.io/github/bemanproject/indirect?branch=main) ![Standard Target](https://github.com/bemanproject/beman/blob/main/images/badges/cpp29.svg) [![Compiler Explorer Example](https://img.shields.io/badge/Try%20it%20on%20Compiler%20Explorer-grey?logo=compilerexplorer&logoColor=67c52a)](https://www.example.com) + +[![Library Status](https://raw.githubusercontent.com/bemanproject/beman/refs/heads/main/images/badges/beman_badge-beman_library_under_development.svg)](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#the-beman-library-maturity-model) +[![Continuous Integration Tests](https://github.com/bemanproject/indirect/actions/workflows/ci_tests.yml/badge.svg)](https://github.com/bemanproject/indirect/actions/workflows/ci_tests.yml) +[![Lint Check (pre-commit)](https://github.com/bemanproject/indirect/actions/workflows/pre-commit-check.yml/badge.svg)](https://github.com/bemanproject/indirect/actions/workflows/pre-commit-check.yml) +[![Coverage](https://coveralls.io/repos/github/bemanproject/indirect/badge.svg?branch=main)](https://coveralls.io/github/bemanproject/indirect?branch=main) +![Standard Target](https://github.com/bemanproject/beman/blob/main/images/badges/cpp29.svg) +[![Compiler Explorer Example](https://img.shields.io/badge/Try%20it%20on%20Compiler%20Explorer-grey?logo=compilerexplorer&logoColor=67c52a)](https://www.example.com) + `beman.indirect` implements `std::indirect` and `std::polymorphic`, vocabulary types for composite class design. These types provide value semantics for owned heap-allocated objects: @@ -211,9 +217,3 @@ include an appropriate `beman.indirect` header from your source code. ```c++ #include ``` - -> [!NOTE] -> -> `beman.indirect` headers are to be included with the `beman/indirect/` prefix. -> Altering include search paths to spell the include target another way (e.g. -> `#include `) is unsupported. diff --git a/infra/.beman_submodule b/infra/.beman_submodule index 4e9900c..a24c23d 100644 --- a/infra/.beman_submodule +++ b/infra/.beman_submodule @@ -1,3 +1,3 @@ [beman_submodule] remote=https://github.com/bemanproject/infra.git -commit_hash=b7b533a00ba72049c7c583f4344dfb7c04342a0f +commit_hash=d536fc285ae058cf8f5b736b5ff73d18a421b296 diff --git a/infra/cmake/enable-experimental-import-std.cmake b/infra/cmake/enable-experimental-import-std.cmake index 20fc302..0ac9604 100644 --- a/infra/cmake/enable-experimental-import-std.cmake +++ b/infra/cmake/enable-experimental-import-std.cmake @@ -187,4 +187,8 @@ elseif(CMAKE_VERSION VERSION_EQUAL "4.3.2") set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "451f2fe2-a8a2-47c3-bc32-94786d8fc91b" ) +elseif(CMAKE_VERSION VERSION_EQUAL "4.3.3") + set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD + "451f2fe2-a8a2-47c3-bc32-94786d8fc91b" + ) endif() diff --git a/port/portfile.cmake.in b/port/portfile.cmake.in index 3b59dc1..9d94dca 100644 --- a/port/portfile.cmake.in +++ b/port/portfile.cmake.in @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bemanproject/indirect diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 25169b2..0924600 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -2,13 +2,13 @@ "default-registry": { "kind": "git", "repository": "https://github.com/microsoft/vcpkg.git", - "baseline": "80f9bcfa455e875d9c1bf7a7c6692d7e1e481061" + "baseline": "aa40adda5352e87655b8583cfb2451d5e9e276fd" }, "registries": [ { "kind": "git", "repository": "https://github.com/bemanproject/vcpkg-registry.git", - "baseline": "5195f94f2b550163917c1152180fc59bbd760556", + "baseline": "e1aa5c3c2a46486cc1384d70beab939d76bfe128", "packages": ["beman-*"] } ]