Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
222 commits
Select commit Hold shift + click to select a range
e862ead
Enhance Dependabot configuration for updates
steve-downey Jan 25, 2026
ed813f3
Breathing (#1)
steve-downey Jan 25, 2026
ef0099f
Add synopsis for components
steve-downey Jan 25, 2026
f82d58b
Add synopsis for components (#2)
steve-downey Jan 25, 2026
fa022cf
Update readme
steve-downey Jan 25, 2026
662bbed
Bump clang-format from 18.1.8 to 21.1.8
dependabot[bot] Jan 25, 2026
abfe58e
Bump the github-owned-actions group with 2 updates
dependabot[bot] Jan 25, 2026
4bcfec7
Update readme (#5)
steve-downey Jan 25, 2026
8dcab60
Bump clang-format from 18.1.8 to 21.1.8 (#3)
steve-downey Jan 25, 2026
e47aa84
Bump the github-owned-actions group with 2 updates (#4)
steve-downey Jan 25, 2026
7d6806e
Bump step-security/harden-runner in the github-actions group
dependabot[bot] Feb 1, 2026
938dff9
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 1, 2026
0d2e1ef
Auto-update pre-commit hooks
steve-downey Feb 1, 2026
75d3e2c
Auto-update pre-commit hooks (#8)
steve-downey Feb 1, 2026
c95c4e1
Bump github/codeql-action from 4.31.11 to 4.32.0 in the github-owned-…
steve-downey Feb 1, 2026
aa92100
Bump step-security/harden-runner from 2.14.0 to 2.14.1 in the github-…
steve-downey Feb 1, 2026
e0f3f96
Bump the github-actions group with 8 updates
dependabot[bot] Feb 8, 2026
af97ca3
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 8, 2026
0ee8e4f
Potential fix for code scanning alert no. 31: Workflow does not conta…
steve-downey Feb 8, 2026
9bad994
Bump the github-actions group with 8 updates (#9)
steve-downey Feb 8, 2026
8cb5c67
Bump github/codeql-action from 4.32.0 to 4.32.2 in the github-owned-a…
steve-downey Feb 8, 2026
b652b64
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 15, 2026
7bf121d
Auto-update pre-commit hooks
steve-downey Feb 15, 2026
031d9b8
Auto-update pre-commit hooks (#12)
steve-downey Feb 15, 2026
a0808eb
Bump github/codeql-action from 4.32.2 to 4.32.3 in the github-owned-a…
steve-downey Feb 15, 2026
25dbcf0
Update CODEOWNERS to remove @camio
camio Feb 16, 2026
c12e4be
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 22, 2026
8bea7a6
Bump clang-format from 21.1.8 to 22.1.0
dependabot[bot] Feb 25, 2026
505f450
Bump github/codeql-action from 4.32.3 to 4.32.4 in the github-owned-a…
steve-downey Feb 28, 2026
a7e976a
Bump clang-format from 21.1.8 to 22.1.0 (#14)
steve-downey Feb 28, 2026
ca2f39b
Bump Clang CI matrix: promote 22 to primary, add 21 to secondary
ednolan Mar 15, 2026
84c8394
Bump the github-owned-actions group across 1 directory with 2 updates
dependabot[bot] Mar 15, 2026
64e61ee
Bump step-security/harden-runner in the github-actions group
dependabot[bot] Mar 15, 2026
21c68ca
Auto-update pre-commit hooks
steve-downey Mar 15, 2026
6d055cc
Bump cmake from 4.2.1 to 4.3.0
dependabot[bot] Mar 24, 2026
7fa4ab4
Bump cmake from 4.2.1 to 4.3.0 (#22)
steve-downey Mar 24, 2026
12b2fe2
Auto-update pre-commit hooks (#15)
steve-downey Mar 24, 2026
ede0c1b
Bump step-security/harden-runner from 2.14.2 to 2.15.0 in the github-…
steve-downey Mar 24, 2026
4c5b043
Bump the github-owned-actions group across 1 directory with 2 updates…
steve-downey Mar 24, 2026
b442567
Bump clang-format from 22.1.0 to 22.1.1
dependabot[bot] Mar 24, 2026
e3c543f
Bump clang-format from 22.1.0 to 22.1.1 (#20)
steve-downey Mar 24, 2026
5f91c23
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Mar 29, 2026
7e38f06
Auto-update pre-commit hooks
steve-downey Mar 29, 2026
d00ecc2
Bump cmake from 4.3.0 to 4.3.1
dependabot[bot] Mar 30, 2026
cfa2e56
Bump the github-actions group across 1 directory with 8 updates
dependabot[bot] Apr 5, 2026
6969bae
Bump clang-format from 22.1.1 to 22.1.3
dependabot[bot] Apr 8, 2026
0a46c41
Bump github/codeql-action from 4.32.6 to 4.35.1 in the github-owned-a…
steve-downey Apr 11, 2026
6e593ac
Auto-update pre-commit hooks (#26)
steve-downey Apr 11, 2026
e513bdf
Bump cmake from 4.3.0 to 4.3.1 (#27)
steve-downey Apr 11, 2026
8ba0f0e
Bump the github-actions group across 1 directory with 8 updates (#28)
steve-downey Apr 11, 2026
d659a8f
Merge branch 'main' into dependabot/pip/clang-format-22.1.3
steve-downey Apr 11, 2026
7bbdb0c
Bump clang-format from 22.1.1 to 22.1.3 (#29)
steve-downey Apr 11, 2026
f36df26
Remove install test
steve-downey Apr 11, 2026
92c6b9e
Remove install test (#31)
steve-downey Apr 11, 2026
3ca3abd
Bump step-security/harden-runner in the github-actions group
dependabot[bot] Apr 12, 2026
bb721bc
Bump actions/upload-artifact in the github-owned-actions group
dependabot[bot] Apr 12, 2026
f11d4b7
Auto-update pre-commit hooks
steve-downey Apr 12, 2026
c635430
Bump step-security/harden-runner from 2.16.1 to 2.17.0 in the github-…
steve-downey Apr 12, 2026
0de4763
Auto-update pre-commit hooks (#34)
steve-downey Apr 12, 2026
4b879fa
Bump actions/upload-artifact from 7.0.0 to 7.0.1 in the github-owned-…
steve-downey Apr 12, 2026
5b4c333
Update gcovr requirement from >=7.2 to >=8.6
dependabot[bot] Apr 13, 2026
9316916
Update gcovr requirement from >=7.2 to >=8.6 (#35)
steve-downey Apr 13, 2026
7a6b811
Update pre-commit requirement from >=3.7.1 to >=4.5.1
dependabot[bot] Apr 13, 2026
6b63620
Update pre-commit requirement from >=3.7.1 to >=4.5.1 (#36)
steve-downey Apr 13, 2026
780a311
Bump the github-actions group with 7 updates
dependabot[bot] Apr 19, 2026
4925b1e
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Apr 19, 2026
cd8c995
Bump the github-actions group with 7 updates (#37)
steve-downey Apr 19, 2026
a1000b8
Bump github/codeql-action from 4.35.1 to 4.35.2 in the github-owned-a…
steve-downey Apr 19, 2026
da7786e
Bump cmake from 4.3.1 to 4.3.2
dependabot[bot] Apr 24, 2026
7e1900c
Bump cmake from 4.3.1 to 4.3.2 (#40)
steve-downey Apr 25, 2026
b3085d4
Bump clang-format from 22.1.3 to 22.1.4
dependabot[bot] Apr 25, 2026
27c6803
Bump clang-format from 22.1.3 to 22.1.4 (#39)
steve-downey Apr 25, 2026
55ecca7
Bump the github-actions group with 7 updates
dependabot[bot] Apr 26, 2026
1b19b2d
Bump the github-actions group with 7 updates (#41)
steve-downey Apr 27, 2026
8478d58
Bump the github-actions group with 7 updates
dependabot[bot] May 3, 2026
84eda05
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] May 3, 2026
b310bcc
Bump the github-actions group with 7 updates (#42)
steve-downey May 3, 2026
8e9e5a0
Bump github/codeql-action from 4.35.2 to 4.35.3 in the github-owned-a…
steve-downey May 3, 2026
7ea3211
chore: remove @neatudarius from CODEOWNERS
neatudarius May 4, 2026
adc8ea0
Remove @neatudarius from CODEOWNERS (#44)
neatudarius May 4, 2026
5abf90e
Bump clang-format from 22.1.4 to 22.1.5
dependabot[bot] May 6, 2026
b288987
Bump the github-actions group with 6 updates
dependabot[bot] May 10, 2026
ead547d
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] May 10, 2026
ccebbca
Bump clang-format from 22.1.4 to 22.1.5 (#45)
steve-downey May 13, 2026
a4acf75
Bump the github-actions group with 6 updates (#46)
steve-downey May 13, 2026
451e0f8
Bump github/codeql-action from 4.35.3 to 4.35.4 in the github-owned-a…
steve-downey May 13, 2026
6a6e95f
Bootstrap Copier template
steve-downey May 30, 2026
66da81f
Remove identity and add expected
steve-downey Jan 21, 2026
90c7557
Fix Tests
steve-downey Jan 21, 2026
fbbab53
Add more build infrastructure and formal tests
steve-downey Jan 25, 2026
356a276
Reformat with `make lint`
steve-downey Jan 25, 2026
ae57caf
Fix Warning caught with Werror in CI
steve-downey Jan 25, 2026
eb4fe3f
Add more github workflows
steve-downey Jan 25, 2026
303d8ff
Enhance Dependabot configuration for updates
steve-downey Jan 25, 2026
0ac1d79
Breathing (#1)
steve-downey Jan 25, 2026
a7cecf1
Add synopsis for components
steve-downey Jan 25, 2026
7017568
Add synopsis for components (#2)
steve-downey Jan 25, 2026
0d3c1d0
Update readme
steve-downey Jan 25, 2026
98bb9b7
Bump clang-format from 18.1.8 to 21.1.8
dependabot[bot] Jan 25, 2026
2a22fe7
Update readme (#5)
steve-downey Jan 25, 2026
f974d0c
Bump the github-owned-actions group with 2 updates
dependabot[bot] Jan 25, 2026
c3e88aa
Bump clang-format from 18.1.8 to 21.1.8 (#3)
steve-downey Jan 25, 2026
d089496
Bump the github-owned-actions group with 2 updates (#4)
steve-downey Jan 25, 2026
7898d16
Auto-update pre-commit hooks
steve-downey Feb 1, 2026
6dd2494
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 1, 2026
ef75315
Auto-update pre-commit hooks (#8)
steve-downey Feb 1, 2026
fec2d0d
Bump step-security/harden-runner in the github-actions group
dependabot[bot] Feb 1, 2026
a68f5ae
Bump github/codeql-action from 4.31.11 to 4.32.0 in the github-owned-…
steve-downey Feb 1, 2026
b6a1c96
Bump step-security/harden-runner from 2.14.0 to 2.14.1 in the github-…
steve-downey Feb 1, 2026
916b752
Bump the github-actions group with 8 updates
dependabot[bot] Feb 8, 2026
ac060c2
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 8, 2026
3f37e88
Bump the github-actions group with 8 updates (#9)
steve-downey Feb 8, 2026
8ac470c
Bump github/codeql-action from 4.32.0 to 4.32.2 in the github-owned-a…
steve-downey Feb 8, 2026
835abe1
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 15, 2026
b1bc01a
Bump github/codeql-action from 4.32.2 to 4.32.3 in the github-owned-a…
steve-downey Feb 15, 2026
dde5fd4
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Feb 22, 2026
87c60c5
Update CODEOWNERS to remove @camio
camio Feb 16, 2026
ab0cb31
Bump clang-format from 21.1.8 to 22.1.0
dependabot[bot] Feb 25, 2026
f55a8be
Bump github/codeql-action from 4.32.3 to 4.32.4 in the github-owned-a…
steve-downey Feb 28, 2026
4f5d9cf
Bump cmake from 4.2.1 to 4.3.0
dependabot[bot] Mar 24, 2026
ab8ec51
Bump clang-format from 21.1.8 to 22.1.0 (#14)
steve-downey Feb 28, 2026
e51f288
Bump step-security/harden-runner in the github-actions group
dependabot[bot] Mar 15, 2026
7e04e39
Bump cmake from 4.2.1 to 4.3.0 (#22)
steve-downey Mar 24, 2026
4086096
Bump the github-owned-actions group across 1 directory with 2 updates
dependabot[bot] Mar 15, 2026
b4a5bc4
Bump step-security/harden-runner from 2.14.2 to 2.15.0 in the github-…
steve-downey Mar 24, 2026
c262c23
Bump clang-format from 22.1.0 to 22.1.1
dependabot[bot] Mar 24, 2026
1b3fe99
Bump the github-owned-actions group across 1 directory with 2 updates…
steve-downey Mar 24, 2026
f11f265
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Mar 29, 2026
7b4b7ff
Bump clang-format from 22.1.0 to 22.1.1 (#20)
steve-downey Mar 24, 2026
7f1a9ad
Bump cmake from 4.3.0 to 4.3.1
dependabot[bot] Mar 30, 2026
4067a70
Bump github/codeql-action from 4.32.6 to 4.35.1 in the github-owned-a…
steve-downey Apr 11, 2026
f27400b
Bump the github-actions group across 1 directory with 8 updates
dependabot[bot] Apr 5, 2026
23af266
Bump cmake from 4.3.0 to 4.3.1 (#27)
steve-downey Apr 11, 2026
8fd16f1
Bump clang-format from 22.1.1 to 22.1.3
dependabot[bot] Apr 8, 2026
dbdeade
Bump the github-actions group across 1 directory with 8 updates (#28)
steve-downey Apr 11, 2026
50e363a
Merge branch 'main' into dependabot/pip/clang-format-22.1.3
steve-downey Apr 11, 2026
39ceca6
Bump clang-format from 22.1.1 to 22.1.3 (#29)
steve-downey Apr 11, 2026
793a2ef
Bump step-security/harden-runner in the github-actions group
dependabot[bot] Apr 12, 2026
b965b6e
Bump actions/upload-artifact in the github-owned-actions group
dependabot[bot] Apr 12, 2026
77d4aa8
Bump step-security/harden-runner from 2.16.1 to 2.17.0 in the github-…
steve-downey Apr 12, 2026
5f831c8
Update gcovr requirement from >=7.2 to >=8.6
dependabot[bot] Apr 13, 2026
170a035
Bump actions/upload-artifact from 7.0.0 to 7.0.1 in the github-owned-…
steve-downey Apr 12, 2026
cb6ac65
Update pre-commit requirement from >=3.7.1 to >=4.5.1
dependabot[bot] Apr 13, 2026
c51b746
Update gcovr requirement from >=7.2 to >=8.6 (#35)
steve-downey Apr 13, 2026
194302b
Update pre-commit requirement from >=3.7.1 to >=4.5.1 (#36)
steve-downey Apr 13, 2026
fd573d7
Bump the github-actions group with 7 updates
dependabot[bot] Apr 19, 2026
7e00184
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] Apr 19, 2026
866c417
Bump the github-actions group with 7 updates (#37)
steve-downey Apr 19, 2026
a6296b4
Bump github/codeql-action from 4.35.1 to 4.35.2 in the github-owned-a…
steve-downey Apr 19, 2026
e715b10
Bump cmake from 4.3.1 to 4.3.2
dependabot[bot] Apr 24, 2026
59681e7
Bump clang-format from 22.1.3 to 22.1.4
dependabot[bot] Apr 25, 2026
336ca3a
Bump cmake from 4.3.1 to 4.3.2 (#40)
steve-downey Apr 25, 2026
687fdd5
Bump clang-format from 22.1.3 to 22.1.4 (#39)
steve-downey Apr 25, 2026
54f0396
Bump the github-actions group with 7 updates
dependabot[bot] Apr 26, 2026
a8ad0a3
Bump the github-actions group with 7 updates (#41)
steve-downey Apr 27, 2026
c166944
Bump the github-actions group with 7 updates
dependabot[bot] May 3, 2026
7c3dd4f
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] May 3, 2026
f45f2b5
Bump the github-actions group with 7 updates (#42)
steve-downey May 3, 2026
97fa4a2
chore: remove @neatudarius from CODEOWNERS
neatudarius May 4, 2026
1b75eb5
Bump github/codeql-action from 4.35.2 to 4.35.3 in the github-owned-a…
steve-downey May 3, 2026
4b1c3f9
Bump clang-format from 22.1.4 to 22.1.5
dependabot[bot] May 6, 2026
0f62368
Remove @neatudarius from CODEOWNERS (#44)
neatudarius May 4, 2026
9c1f0a8
Bump github/codeql-action in the github-owned-actions group
dependabot[bot] May 10, 2026
af75977
Bump clang-format from 22.1.4 to 22.1.5 (#45)
steve-downey May 13, 2026
59990aa
Bump github/codeql-action from 4.35.3 to 4.35.4 in the github-owned-a…
steve-downey May 13, 2026
735734b
Merge main into copier-migration to resolve PR conflicts
steve-downey May 30, 2026
643ed6f
Fix CI failures and CodeQL security alerts
steve-downey May 30, 2026
bb6f7ca
Merge pull request #1 from steve-downey/copier-migration
steve-downey May 30, 2026
0a49070
docs: add implementation plan for expected<> over references
steve-downey May 31, 2026
9337b34
feat: implement unexpected<E> class template (Step 1)
steve-downey May 31, 2026
3da94d1
docs: update handoff-next and checklist after Step 1
steve-downey May 31, 2026
21aec69
Standard on Expected
steve-downey May 31, 2026
80eb035
step2: implement bad_expected_access<E> and bad_expected_access<void>
steve-downey May 31, 2026
555d58a
docs: update plan after Step 2, raise build baseline to GCC-16/C++26
steve-downey May 31, 2026
972ad28
Switch test framework from GTest to Catch2
steve-downey May 31, 2026
d43cb8f
Add .claude/ to .gitignore
steve-downey May 31, 2026
71fcaea
feat: merge step1 unexpected<E> implementation, port tests to Catch2
steve-downey May 31, 2026
6b6c8ce
feat: merge step2 bad_expected_access<E> implementation, port tests t…
steve-downey May 31, 2026
ac0be75
feat: implement expected<T,E> primary template (Step 3)
steve-downey May 31, 2026
5115652
Merge step3-expected-primary: implement expected<T,E> primary template
steve-downey May 31, 2026
f3d7532
docs: update plan after Step 3, mark checklist complete
steve-downey May 31, 2026
12cebeb
test: backfill missing tests for steps 1-3, add negative compile tests
steve-downey May 31, 2026
96b08ef
feat: implement expected<void, E> partial specialization (Step 4)
steve-downey May 31, 2026
8e5899b
Merge step4-expected-void: implement expected<void, E> specialization
steve-downey May 31, 2026
b971755
docs: update plan after Step 4, mark checklist complete
steve-downey May 31, 2026
93eee11
feat: implement monadic operations for expected<T, E> (Step 5)
steve-downey May 31, 2026
950719c
Merge step5-expected-primary-monadic: monadic ops for expected<T, E>
steve-downey May 31, 2026
9567b80
docs: update plan after Step 5, mark checklist complete
steve-downey May 31, 2026
6dfa2a8
Step 6: monadic operations for expected<void, E>
steve-downey May 31, 2026
7bd1331
Merge step6-expected-void-monadic into expected-over-references
steve-downey May 31, 2026
fd72034
docs: update plan after Step 6, mark checklist complete
steve-downey May 31, 2026
39122c6
docs: conformance audit of beman::expected vs C++26 std::expected
steve-downey May 31, 2026
7cbe89f
docs: conformance remediation plan (fixes F1-F5)
steve-downey May 31, 2026
a7f17fc
fix: Fix 1 — constructor, assignment, and equality constraint bugs
steve-downey May 31, 2026
4c4e45f
Merge fix1-constraints: constraint fixes for expected<T, E>
steve-downey May 31, 2026
357d570
docs: mark Fix 1 complete; write handoff-next for Fix 2/3
steve-downey May 31, 2026
2e11cd0
docs: correct spec error in fix1-constraints.md (constraint 18.3 sign)
steve-downey May 31, 2026
f21f1e2
fix: Fix 2 — trivial special member functions for expected<T,E> and e…
steve-downey May 31, 2026
75aa805
Merge fix2-trivial-smfs: trivial SMFs for expected<T,E> and expected<…
steve-downey May 31, 2026
40e3fbe
docs: update plan after Fix 2, mark checklist complete
steve-downey May 31, 2026
783cf93
feat: Fix 3 — requires clauses on monadic operations
steve-downey May 31, 2026
e3ab827
Merge fix3-monadic-constraints: requires clauses on monadic operations
steve-downey May 31, 2026
aedc3d0
docs: update plan after Fix 3, mark checklist complete
steve-downey May 31, 2026
fb3ba23
feat: Fix 4 — static_assert Mandates on observers and monadic operations
steve-downey May 31, 2026
926589e
Merge fix4-mandates: static_assert Mandates on observers and monadic …
steve-downey May 31, 2026
0b2b1a8
docs: update plan after Fix 4, mark checklist complete
steve-downey May 31, 2026
0f035d2
feat: Fix 5 — hardened preconditions, unexpected swap constraint, min…
steve-downey Jun 1, 2026
af83824
Merge fix5-preconditions-and-minor: hardened preconditions, swap cons…
steve-downey Jun 1, 2026
b2e1ba0
docs: update plan after Fix 5, all conformance fixes complete
steve-downey Jun 1, 2026
7d56a62
docs: mark all conformance audit gaps as resolved (Fixes 1-5)
steve-downey Jun 1, 2026
173633f
Merge expected-over-references: conformant std::expected implementation
steve-downey Jun 1, 2026
a3dd6f4
optional references paper front matter as markdown
steve-downey Jun 1, 2026
e582903
Merge upstream/main: dependabot bumps and security hardening
steve-downey Jun 1, 2026
ed269fe
fix: beman-tidy config and clang-format alignment
steve-downey Jun 1, 2026
03df91c
fix: portability across compilers and standard libraries
steve-downey Jun 1, 2026
316ffbf
fix: MSVC C2244 and multiple-definition linker error
steve-downey Jun 1, 2026
d5c99c5
fix: MSVC __builtin_trap, modules include conflict, drop C++17
steve-downey Jun 1, 2026
357a803
style: clang-format preprocessor blocks, disable beman-tidy
steve-downey Jun 1, 2026
fa702ec
fix: replace Unicode em-dashes in test names for MSVC/Windows
steve-downey Jun 1, 2026
47c5372
fix: use C++23 for MSVC presets to avoid std::unexpected conflict
steve-downey Jun 2, 2026
abd2158
Merge pull request #2 from steve-downey/merge-upstream
steve-downey Jun 2, 2026
995fa5a
add Doxygen
steve-downey Jun 2, 2026
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
8 changes: 8 additions & 0 deletions .beman-tidy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 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: []
ignored_paths: []
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentPPDirectives: BeforeHash
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
Expand Down
14 changes: 14 additions & 0 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Standard answers and internal state managed by Copier
_commit: 2.0.0-322-gc3c230c
_src_path: https://github.com/steve-downey/exemplar.git
description: Expected Over References
maintainer: steve-downey
minimum_cpp_build_version: '20'
paper: PnnnnRr
project_name: expected
unit_test_library: catch2
# Hidden variables manually tracked because 'when: false' omits them from _copier_answers
generating_exemplar: false
owner: "bemanproject"
ci_tests_cron: "15 12 * * 2"
pre_commit_update_cron: "50 7 * * 4"
1 change: 1 addition & 0 deletions .exemplar_version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ec861600898941a5114f352f1efcba57d825b6d0
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
infra/** linguist-vendored
cookiecutter/** linguist-vendored
template/** linguist-vendored
copier/** linguist-vendored
*.bib -linguist-detectable
*.tex -linguist-detectable
papers/* linguist-documentation
90 changes: 76 additions & 14 deletions .github/workflows/ci_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
pull_request:
workflow_dispatch:
schedule:
- cron: '30 15 * * *'
- cron: '15 12 * * 2'

concurrency:
group: ${{format('{0}:{1}', github.repository, github.ref)}}
cancel-in-progress: true

jobs:
beman-submodule-check:
Expand All @@ -36,35 +40,60 @@
matrix_config: >
{
"gcc": [
{ "versions": ["15"],
{ "versions": ["16"],
"tests": [
{ "cxxversions": ["c++26"],
"tests": [
{ "stdlibs": ["libstdc++"],
"tests": [
"Debug.Default", "Release.Default", "Release.TSan",
"Release.MaxSan", "Debug.Werror",
"Debug.Coverage"
"Debug.Coverage", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
]
}
]
},
{ "cxxversions": ["c++23"],
"tests": [
{ "stdlibs": ["libstdc++"],
"tests": [
"Release.Default", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
]
}
]
},
{ "cxxversions": ["c++20"],
"tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
},
{ "versions": ["15"],
"tests": [
{ "cxxversions": ["c++26", "c++23"],
"tests": [
{ "stdlibs": ["libstdc++"],
"tests": [
"Release.Default", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
]
}
]
},
{ "cxxversions": ["c++23", "c++20", "c++17"],
{ "cxxversions": ["c++20"],
"tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
},
{ "versions": ["14", "13"],
"tests": [
{ "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
{ "cxxversions": ["c++26", "c++23", "c++20"],
"tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
},
{
"versions": ["12", "11"],
"tests": [
{ "cxxversions": ["c++23", "c++20", "c++17"],
{ "cxxversions": ["c++23", "c++20"],
"tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
Expand All @@ -78,12 +107,22 @@
{ "stdlibs": ["libstdc++", "libc++"],
"tests": [
"Debug.Default", "Release.Default", "Release.TSan",
"Release.MaxSan", "Debug.Werror"
"Release.MaxSan", "Debug.Werror",
"Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
]
}
]
},
{ "cxxversions": ["c++23", "c++20", "c++17"],
{ "cxxversions": ["c++23"],
"tests": [
{ "stdlibs": ["libstdc++", "libc++"],
"tests": [
"Release.Default", "Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
]
}
]
},
{ "cxxversions": ["c++20"],
"tests": [
{"stdlibs": ["libstdc++", "libc++"], "tests": ["Release.Default"]}
]
Expand All @@ -92,19 +131,29 @@
},
{ "versions": ["21", "20", "19"],
"tests": [
{ "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
{ "cxxversions": ["c++26", "c++23", "c++20"],
"tests": [
{"stdlibs": ["libstdc++", "libc++"], "tests": ["Release.Default"]}
]
}
]
},
{ "versions": ["18", "17"],
{ "versions": ["18"],
"tests": [
{ "cxxversions": ["c++26", "c++23", "c++20"],
"tests": [{"stdlibs": ["libc++"], "tests": ["Release.Default"]}]
},
{ "cxxversions": ["c++23", "c++20"],
"tests": [{"stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
},
{ "versions": ["17"],
"tests": [
{ "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
{ "cxxversions": ["c++26", "c++23", "c++20"],
"tests": [{"stdlibs": ["libc++"], "tests": ["Release.Default"]}]
},
{ "cxxversions": ["c++20", "c++17"],
{ "cxxversions": ["c++20"],
"tests": [{"stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
Expand All @@ -113,7 +162,7 @@
"appleclang": [
{ "versions": ["latest"],
"tests": [
{ "cxxversions": ["c++26", "c++23", "c++20", "c++17"],
{ "cxxversions": ["c++26", "c++23", "c++20"],
"tests": [{ "stdlibs": ["libc++"], "tests": ["Release.Default"]}]
}
]
Expand All @@ -125,7 +174,10 @@
{ "cxxversions": ["c++23"],
"tests": [
{ "stdlibs": ["stl"],
"tests": ["Debug.Default", "Release.Default", "Release.MaxSan"]
"tests": [
"Debug.Default", "Release.Default", "Release.MaxSan",
"Debug.-DBEMAN_EXPECTED_USE_MODULES=On"
]
}
]
}
Expand All @@ -134,7 +186,17 @@
]
}

vcpkg-ci:
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-ci.yml@1.7.2
with:
port_name: beman-expected
feature_combinations: |
[
{"features": {}},
{"features": {"modules": true}}
]

create-issue-when-fault:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}
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.2
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name: Weekly pre-commit autoupdate
on:
workflow_dispatch:
schedule:
- cron: "0 16 * * 0"
- cron: "50 7 * * 4"

jobs:
auto-update-pre-commit:
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/vcpkg-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

name: vcpkg registry release
on:
release:
types: [published]
jobs:
vcpkg-release:
permissions: {}
uses: bemanproject/infra-workflows/.github/workflows/reusable-beman-vcpkg-release.yml@1.7.2
with:
port_name: beman-expected
secrets:
VCPKG_REGISTRY_TOKEN: ${{ secrets.VCPKG_REGISTRY_TOKEN }}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,15 @@

# ignore vscode settings
.vscode

# ignore vim swap files
.swp

# ignore merge/patch backup files
.orig
/.build/
/.install/
/.update-submodules
/uv.lock
.build
/.claude/
1 change: 1 addition & 0 deletions .markdownlint.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.35.0/doc/md033.md
# Disable inline html linter is needed for <details> <summary>
MD033: false
Expand Down
15 changes: 11 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
Expand All @@ -13,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.3
rev: v22.1.4
hooks:
- id: clang-format
types_or: [c++, c]

# CMake linting and formatting
- repo: https://github.com/BlankSpruce/gersemi
rev: 0.26.1
- repo: https://github.com/BlankSpruce/gersemi-pre-commit
rev: 0.27.2
hooks:
- id: gersemi
name: CMake linting
Expand All @@ -42,4 +43,10 @@ repos:
additional_dependencies:
- tomli

exclude: 'cookiecutter/|infra/'
# # Beman Standard checking via beman-tidy
# - repo: https://github.com/bemanproject/beman-tidy
# rev: v0.3.1
# hooks:
# - id: beman-tidy

exclude: 'template/|copier/|infra/|port/'
72 changes: 59 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# CMakeLists.txt -*-cmake-*-
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

cmake_minimum_required(VERSION 3.28...4.2)
cmake_minimum_required(VERSION 3.30...4.3)

include(infra/cmake/enable-experimental-import-std.cmake)

project(
beman.expected # CMake Project Name, which is also the name of the top-level
# targets (e.g., library, executable, etc.).
beman.expected
DESCRIPTION "Expected Over References"
LANGUAGES CXX
VERSION 0.1.0
Expand All @@ -25,25 +26,70 @@ option(
${PROJECT_IS_TOP_LEVEL}
)

# for find of beman-install-library
include(infra/cmake/beman-install-library-config.cmake)
option(BEMAN_EXPECTED_USE_MODULES "Provide beman.expected as a C++ module" OFF)

add_library(beman.expected INTERFACE)
add_library(beman::expected ALIAS beman.expected)
if(BEMAN_EXPECTED_USE_MODULES)
set(CMAKE_CXX_SCAN_FOR_MODULES ON)
endif()

target_sources(
beman.expected
PUBLIC FILE_SET HEADERS BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include"
configure_file(
"${PROJECT_SOURCE_DIR}/include/beman/expected/config_generated.hpp.in"
"${PROJECT_BINARY_DIR}/include/beman/expected/config_generated.hpp"
@ONLY
)

set_target_properties(beman.expected PROPERTIES VERIFY_INTERFACE_HEADER_SETS ON)
# for find of beman_install_library and configure_build_telemetry
include(infra/cmake/beman-install-library.cmake)
include(infra/cmake/BuildTelemetryConfig.cmake)

if(BEMAN_EXPECTED_USE_MODULES)
add_library(beman.expected STATIC)
else()
add_library(beman.expected INTERFACE)
endif()
add_library(beman::expected ALIAS beman.expected)

if(BEMAN_EXPECTED_USE_MODULES)
target_sources(
beman.expected
PUBLIC
FILE_SET CXX_MODULES
FILE_SET HEADERS
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_BINARY_DIR}/include"
)
set_target_properties(beman.expected PROPERTIES CXX_MODULE_STD ON)
target_compile_features(beman.expected PUBLIC cxx_std_23)
else()
target_sources(
beman.expected
PUBLIC
FILE_SET HEADERS
BASE_DIRS
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${CMAKE_CURRENT_BINARY_DIR}/include"
)
set_target_properties(
beman.expected
PROPERTIES VERIFY_INTERFACE_HEADER_SETS ${PROJECT_IS_TOP_LEVEL}
)
endif()

add_subdirectory(include/beman/expected)

beman_install_library(beman.expected)
beman_install_library(beman.expected TARGETS beman.expected)
configure_build_telemetry()

if(BEMAN_EXPECTED_BUILD_TESTS)
find_package(GTest CONFIG REQUIRED)
find_package(Catch2 CONFIG REQUIRED)
# When Catch2 is fetched via FetchContent, its extras dir needs to be on the module path.
# FetchContent_GetProperties reads global state set during fetch, so works from any scope.
include(FetchContent)
FetchContent_GetProperties(catch2)
if(catch2_POPULATED AND catch2_SOURCE_DIR)
list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)
endif()
endif()

if(BEMAN_EXPECTED_BUILD_TESTS)
Expand Down
Loading
Loading