Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .beman-tidy.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +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:
- include/beman/iterator_interface/detail/stl_interfaces/
2 changes: 1 addition & 1 deletion .exemplar_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0131279454a8b54a6038203a7b714e2e0a835039
ec861600898941a5114f352f1efcba57d825b6d0
14 changes: 9 additions & 5 deletions .github/workflows/ci_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@ on:
schedule:
- cron: '32 15 * * 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.0
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.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-preset-test.yml@1.7.3
with:
matrix_config: >
[
Expand All @@ -27,7 +31,7 @@ jobs:
]

build-and-test:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-build-and-test.yml@1.7.3
with:
matrix_config: >
{
Expand Down Expand Up @@ -119,7 +123,7 @@ jobs:
}

vcpkg-ci:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.3
with:
port_name: beman-iterator-interface
container_image: ghcr.io/bemanproject/infra-containers-gcc:14
Expand All @@ -132,4 +136,4 @@ jobs:
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.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-create-issue-when-fault.yml@1.7.3
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ permissions:

jobs:
pre-commit:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-pre-commit.yml@1.7.3
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:

jobs:
auto-update-pre-commit:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-update-pre-commit.yml@1.7.0
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 }}
2 changes: 1 addition & 1 deletion .github/workflows/vcpkg-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
types: [published]
jobs:
vcpkg-release:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.0
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.3
with:
port_name: beman-iterator-interface
secrets:
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -42,7 +42,7 @@ repos:

# Beman Standard checking via beman-tidy
- repo: https://github.com/bemanproject/beman-tidy
rev: v0.4.0
rev: v0.5.1
hooks:
- id: beman-tidy

Expand Down
6 changes: 5 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<!--
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-->

# Development

## Configure and Build the Project Using CMake Presets
Expand Down Expand Up @@ -65,7 +69,7 @@ the project's dependencies, including GoogleTest.

Example commands:

```
```shell
cmake \
-B build \
-S . \
Expand Down
18 changes: 8 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-->

<!-- markdownlint-disable -->
![Library Status](https://raw.githubusercontent.com/bemanproject/beman/refs/heads/main/images/badges/beman_badge-beman_library_under_development.svg) <img src="https://github.com/bemanproject/beman/blob/main/images/logos/beman_logo-beman_library_under_development.png" style="width:5%; height:auto;"> ![CI Tests](https://github.com/bemanproject/iterator_interface/actions/workflows/ci.yml/badge.svg) ![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://godbolt.org/z/Kcq9bbeWW)
<!-- markdownlint-enable -->
<!-- markdownlint-disable line-length -->
[![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)
<img src="https://github.com/bemanproject/beman/blob/main/images/logos/beman_logo-beman_library_under_development.png" style="width:5%; height:auto;">
[![CI Tests](https://github.com/bemanproject/iterator_interface/actions/workflows/ci.yml/badge.svg)](https://github.com/bemanproject/iterator_interface/actions/workflows/ci.yml)
![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://godbolt.org/z/Kcq9bbeWW)
<!-- markdownlint-restore -->

**Implements**: [`std::iterator_interface` (P2727R4)](https://wg21.link/P2727R4)

Expand Down Expand Up @@ -133,7 +137,7 @@ You can disable building tests by setting CMake option `BEMAN_ITERATOR_INTERFACE

| Compiler | Version | C++ Standards | Standard Library |
|----------|---------|---------------|-------------------|
| GCC | 14-13 | C++26-C++20 | libstdc++ |
| GCC | 15-13 | C++26-C++20 | libstdc++ |
| GCC | 12 | C++23, C++20 | libstdc++ |
| Clang | 22-19 | C++26-C++20 | libstdc++, libc++ |
| Clang | 18 | C++26-C++20 | libc++ |
Expand Down Expand Up @@ -234,9 +238,3 @@ include an appropriate `beman.iterator_interface` header from your source code.
```c++
#include <beman/iterator_interface/iterator_interface.hpp>
```

> [!NOTE]
>
> `beman.iterator_interface` headers are to be included with the `beman/iterator_interface/` prefix.
> Altering include search paths to spell the include target another way (e.g.
> `#include <iterator_interface.hpp>`) is unsupported.
2 changes: 1 addition & 1 deletion infra/.beman_submodule
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[beman_submodule]
remote=https://github.com/bemanproject/infra.git
commit_hash=1b14bad2cd2cf0e44d1aeb608557e0e35ce27eaa
commit_hash=d536fc285ae058cf8f5b736b5ff73d18a421b296
2 changes: 1 addition & 1 deletion infra/.github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @ednolan @neatudarius @rishyak @wusatosi @JeffGarland
* @ednolan @rishyak @wusatosi @JeffGarland
2 changes: 1 addition & 1 deletion infra/cmake/Config.cmake.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# cmake/Config.cmake.in -*-makefile-*-
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# cmake/Config.cmake.in -*-makefile-*-

include(CMakeFindDependencyMacro)

Expand Down
6 changes: 4 additions & 2 deletions infra/cmake/beman-install-library.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,9 @@ function(beman_install_library name)
endif()

if(NOT BEMAN_INSTALL_DESTINATION)
set(BEMAN_INSTALL_DESTINATION "${_config_install_dir}/modules")
set(BEMAN_INSTALL_DESTINATION
"${CMAKE_INSTALL_DATADIR}/${name}/modules"
)
endif()

string(REPLACE "beman." "" install_component_name "${name}")
Expand Down Expand Up @@ -210,7 +212,7 @@ function(beman_install_library name)
# NOTE: There's currently no convention for this location! CK
CXX_MODULES_BMI
DESTINATION
${_config_install_dir}/bmi-${CMAKE_CXX_COMPILER_ID}_$<CONFIG>
${CMAKE_INSTALL_DATADIR}/${name}/bmi-${CMAKE_CXX_COMPILER_ID}_$<CONFIG>
COMPONENT "${install_component_name}_Development"
)
else()
Expand Down
194 changes: 194 additions & 0 deletions infra/cmake/enable-experimental-import-std.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
if(CMAKE_VERSION VERSION_EQUAL "3.30.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.7")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.8")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.30.9")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.10")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.11")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.12")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.7")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"0e5b6991-d74f-4b3d-a41c-cf096e0b2508"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.8")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "3.31.9")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"a9e1cf81-9932-4810-974b-6eccaf14e457"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"a9e1cf81-9932-4810-974b-6eccaf14e457"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"a9e1cf81-9932-4810-974b-6eccaf14e457"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.0.7")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.1.6")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.2")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.3")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.4")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.2.5")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.3.0")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"451f2fe2-a8a2-47c3-bc32-94786d8fc91b"
)
elseif(CMAKE_VERSION VERSION_EQUAL "4.3.1")
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
"451f2fe2-a8a2-47c3-bc32-94786d8fc91b"
)
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()
2 changes: 1 addition & 1 deletion infra/cmake/telemetry.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#!/usr/bin/env bash

set -o nounset
set -o errexit
Expand Down
Loading