From d095e60ecabc477e8e81a23156b194bf4a38c080 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 05:43:06 +0000 Subject: [PATCH 1/6] Bump the github-actions group with 2 updates Bumps the github-actions group with 2 updates: [step-security/harden-runner](https://github.com/step-security/harden-runner) and [step-security/changed-files](https://github.com/step-security/changed-files). Updates `step-security/harden-runner` from 2.16.1 to 2.17.0 - [Release notes](https://github.com/step-security/harden-runner/releases) - [Commits](https://github.com/step-security/harden-runner/compare/fe104658747b27e96e4f7e80cd0a94068e53901d...f808768d1510423e83855289c910610ca9b43176) Updates `step-security/changed-files` from 47.0.1 to 47.0.5 - [Release notes](https://github.com/step-security/changed-files/releases) - [Commits](https://github.com/step-security/changed-files/compare/60967b822d3001fa82242f8d6b4ed46bc3600a68...2e07db73e5ccdb319b9a6c7766bd46d39d304bad) --- updated-dependencies: - dependency-name: step-security/harden-runner dependency-version: 2.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: step-security/changed-files dependency-version: 47.0.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- .github/workflows/codeql.yml | 2 +- .github/workflows/doxygen-gh-pages.yml | 2 +- .github/workflows/ossf-scorecard-analysis.yml | 2 +- .github/workflows/pre-commit.yml | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d74f9e4..ec9b1d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: - {name: "Ubuntu GCC 12", tag: "gcc:12", toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" -DCMAKE_PREFIX_PATH=\"./infra/cmake\" "} steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit @@ -128,7 +128,7 @@ jobs: steps: # See https://github.com/cli/cli/issues/5075 - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ca17635..e421108 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -59,7 +59,7 @@ jobs: # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit diff --git a/.github/workflows/doxygen-gh-pages.yml b/.github/workflows/doxygen-gh-pages.yml index e3df8ec..0ee57b9 100644 --- a/.github/workflows/doxygen-gh-pages.yml +++ b/.github/workflows/doxygen-gh-pages.yml @@ -16,7 +16,7 @@ jobs: contents: write steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit diff --git a/.github/workflows/ossf-scorecard-analysis.yml b/.github/workflows/ossf-scorecard-analysis.yml index f71a547..7fc4ffc 100644 --- a/.github/workflows/ossf-scorecard-analysis.yml +++ b/.github/workflows/ossf-scorecard-analysis.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 592143d..f6da40b 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -19,7 +19,7 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit @@ -50,7 +50,7 @@ jobs: steps: - name: Harden the runner (Audit all outbound calls) - uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + uses: step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176 # v2.17.0 with: egress-policy: audit @@ -72,7 +72,7 @@ jobs: # we only lint on the changed file in PR. - name: Get Changed Files id: changed-files - uses: step-security/changed-files@60967b822d3001fa82242f8d6b4ed46bc3600a68 # v47.0.1 + uses: step-security/changed-files@2e07db73e5ccdb319b9a6c7766bd46d39d304bad # v47.0.5 - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 id: run-pre-commit From f6318dd99163879b86a769f2a30c62acf843c829 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 05:43:22 +0000 Subject: [PATCH 2/6] Bump actions/upload-artifact in the github-owned-actions group Bumps the github-owned-actions group with 1 update: [actions/upload-artifact](https://github.com/actions/upload-artifact). Updates `actions/upload-artifact` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-owned-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/ossf-scorecard-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ossf-scorecard-analysis.yml b/.github/workflows/ossf-scorecard-analysis.yml index f71a547..de2c3d6 100644 --- a/.github/workflows/ossf-scorecard-analysis.yml +++ b/.github/workflows/ossf-scorecard-analysis.yml @@ -47,7 +47,7 @@ jobs: # uploads of run results in SARIF format to the repository Actions tab. # https://docs.github.com/en/actions/advanced-guides/storing-workflow-data-as-artifacts - name: "Upload artifact" - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: SARIF file path: results.sarif From 1e994d4e813a013b11737771ca779ea96f66de07 Mon Sep 17 00:00:00 2001 From: Steve Downey Date: Mon, 13 Apr 2026 09:33:42 +0100 Subject: [PATCH 3/6] repoint beman_submodule --- infra/.beman_submodule | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infra/.beman_submodule b/infra/.beman_submodule index 77d57db..0f96618 100644 --- a/infra/.beman_submodule +++ b/infra/.beman_submodule @@ -1,4 +1,4 @@ [beman_submodule] -remote=https://github.com/bemanproject/infra.git -commit_hash=63cb577f6484f13ce3349de49ad5ce27e20bf1da +remote=https://github.com/steve-downey/infra.git +commit_hash=300e5942b44132f5abaf62e62b4471a0e408579d allow_untracked_files=True From 8c6390e8149c5a5f50637eb075dcbba2c2d7e560 Mon Sep 17 00:00:00 2001 From: Steve Downey Date: Fri, 27 Mar 2026 14:36:34 +0000 Subject: [PATCH 4/6] Implement proposed fix for LWG4497 Type nullopt_t does not have a default constructor or an initializer-list constructor, and is not an aggregate. nullopt_t models copyable and three_way_comparable. --- include/beman/optional/optional.hpp | 7 +++++++ .../beman/optional/optional_range_support.test.cpp | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/beman/optional/optional.hpp b/include/beman/optional/optional.hpp index 08c023f..1fb6fb3 100644 --- a/include/beman/optional/optional.hpp +++ b/include/beman/optional/optional.hpp @@ -122,6 +122,13 @@ struct nullopt_t { * @details constexpr for nullopt_t to be literal. */ explicit constexpr nullopt_t(Tag) noexcept {} + + private: + friend constexpr bool operator==(nullopt_t, nullopt_t) noexcept { return true; } + + friend constexpr std::strong_ordering operator<=>(nullopt_t, nullopt_t) noexcept { + return std::strong_ordering::equivalent; + } }; /// Tag to disengage optional objects. diff --git a/tests/beman/optional/optional_range_support.test.cpp b/tests/beman/optional/optional_range_support.test.cpp index 67be087..cbe21f3 100644 --- a/tests/beman/optional/optional_range_support.test.cpp +++ b/tests/beman/optional/optional_range_support.test.cpp @@ -436,3 +436,17 @@ TEST(RangeSupportTest, PythagoreanTriples) { EXPECT_TRUE(constify(lambda())); EXPECT_TRUE(lambda()); } + +TEST(RangeSupportTest, NullOpt) { + beman::optional::nullopt_t t1{beman::optional::nullopt_t::Tag::tag}; + beman::optional::nullopt_t t2{beman::optional::nullopt_t::Tag::tag}; + EXPECT_EQ(t1, t2); + EXPECT_LE(t1, t2); + EXPECT_LE(t2, t1); + EXPECT_EQ(t1, beman::optional::nullopt); +} + +TEST(RangeSupportTest, FindNullopt) { + std::vector> v; + std::ranges::find(v, beman::optional::nullopt); +} From fa46209439742dfa46d3d59805fca5c139af8915 Mon Sep 17 00:00:00 2001 From: Steve Downey Date: Mon, 13 Apr 2026 14:32:15 +0100 Subject: [PATCH 5/6] ranges::find is nodiscard Capture and test the result. --- tests/beman/optional/optional_range_support.test.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/beman/optional/optional_range_support.test.cpp b/tests/beman/optional/optional_range_support.test.cpp index cbe21f3..de20945 100644 --- a/tests/beman/optional/optional_range_support.test.cpp +++ b/tests/beman/optional/optional_range_support.test.cpp @@ -448,5 +448,9 @@ TEST(RangeSupportTest, NullOpt) { TEST(RangeSupportTest, FindNullopt) { std::vector> v; - std::ranges::find(v, beman::optional::nullopt); + + auto i = std::ranges::find(v, beman::optional::nullopt); + + EXPECT_EQ(i, std::ranges::end(v)); + } From 33a8e71ddeac41cf61584e270bf3c87b1a3140ce Mon Sep 17 00:00:00 2001 From: Steve Downey Date: Mon, 13 Apr 2026 14:34:40 +0100 Subject: [PATCH 6/6] Update tests/beman/optional/optional_range_support.test.cpp Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- tests/beman/optional/optional_range_support.test.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/beman/optional/optional_range_support.test.cpp b/tests/beman/optional/optional_range_support.test.cpp index de20945..96c687d 100644 --- a/tests/beman/optional/optional_range_support.test.cpp +++ b/tests/beman/optional/optional_range_support.test.cpp @@ -452,5 +452,4 @@ TEST(RangeSupportTest, FindNullopt) { auto i = std::ranges::find(v, beman::optional::nullopt); EXPECT_EQ(i, std::ranges::end(v)); - }