Releases: bemanproject/exemplar
v2.4.0
What's Changed
- Bump vcpkg registry baselines by @ednolan in #367
- Remove superfluous comments around project() statement by @ednolan in #369
- Add .swp and .orig to .gitignore by @ednolan in #370
- Bump infra/ beman-submodule to latest by @ednolan in #371
- Fix untemplated 'EXEMPLAR' in cookiecutter for portfile by @ednolan in #372
- Annotate code block as shell in CONTRIBUTING.md by @ednolan in #373
- Add GCC 16 to CI matrix by @ednolan in #376
- Add missing SPDX license identifiers to enforce file.license_id from the beman standard by @AndreiDurlea in #375
- Add beman-tidy config to exemplar by @AndreiDurlea in #368
- Bump workflows to 1.7.1 and bump infra beman-submodule by @ednolan in #378
- Disable static libraries in cookiecutter by @ednolan in #379
- Implement modules support by @ednolan in #380
- Bump version to 2.4.0 by @ednolan in #381
New Contributors
- @AndreiDurlea made their first contribution in #375
Full Changelog: v2.3.0...v2.4.0
v2.3.0
What's Changed
- Add missing include to identity_as_default_projection example by @ednolan in #247
- Add support for Clang 21 in CI by @ednolan in #246
- Fix links to GitHub runner documentation in README by @ednolan in #248
- Remove beman-submodule for .github/workflows by @ednolan in #249
- Update pre-commit workflow for post-beman-submodule reusable workflows by @ednolan in #250
- Tweaks to gitignore by @ednolan in #251
- Fix cron for pre-commit auto-update by @ednolan in #252
- Bump infra beman-submodule by @ednolan in #256
- Remove note about omitting CMAKE_PREFIX_PATH by @ednolan in #257
- Work around lack of support for relative paths in CMAKE_PREFIX_PATH by @ednolan in #258
- Bump infra beman-submodule and update gersemi by @ednolan in #259
- Pre-commit autoupdate refactor and infra-workflows version bump by @ednolan in #260
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #261
- Fix pre-commit check badge in README.md by @ednolan in #263
- Exclude infra directory by @wusatosi in #266
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #269
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #270
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #271
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #273
- #274 - small tweaks in cmake by @JeffGarland in #275
- Adjust CI to remove broken Clang 18/C++26/libstdc++ unit test by @ednolan in #278
- Add unit test for CMake installation by @ednolan in #277
- Move config file template from src/beman/exemplar to cmake/ by @ednolan in #279
- Fix required CMake version in README by @ednolan in #281
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #280
- Bump infra submodule to latest by @ednolan in #282
- Remove duplicative find_package call for beman-install-library by @ednolan in #283
- Convert exemplar into an INTERFACE library by @ednolan in #262
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #285
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #296
- Use packaged beman-submodule instead of vendoring it by @ednolan in #297
- Update CMake and Ninja versions when running MSVC/AppleClang builds by @ednolan in #298
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #300
- Set IndentPPDirectives: BeforeHash by @ClausKlein in #302
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #304
- Bump cmake_minimum_required version to 3.30..4.3 by @ednolan in #305
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #306
- Remove install-test from CI tests by @ednolan in #307
- VERIFY_INTERFACE_HEADER_SETS only if PROJECT_IS_TOP_LEVEL by @ClausKlein in #303
- Fix capitalization of GitHub Codespace in README by @ednolan in #310
- Remove redundant GoogleTest language in README by @ednolan in #312
- Use cookiecutter.cpp_build_version in README by @ednolan in #313
- Move README's Development section into CONTRIBUTING.md by @ednolan in #308
- Bump Clang CI matrix: promote 22 to primary, add 21 to secondary by @ednolan in #314
- Add table to Supported Platforms section in README by @ednolan in #315
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #316
- Update CI tests to run once a week instead of once a day by @ednolan in #317
- Randomize scheduled workflow crons for cookiecutter-generated projects by @ednolan in #318
- Changes to cookiecutter variables by @ednolan in #319
- Update infra for new beman_install_library function by @ednolan in #320
- Add exemplar.hpp catchall header by @ednolan in #321
- Cleanups to README.md and CONTRIBUTING.md by @ednolan in #323
- Remove devcontainer configuration by @ednolan in #327
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #329
- Bump infra-workflows version to 1.4.0 by @ednolan in #331
- Add support for catch2 by @ednolan in #332
- Remove outdated TODO by @ednolan in #333
- cookiecutter: Replace identity-specific material with TODOs by @ednolan in #334
- Remove outdated comments from CODEOWNERS file by @ednolan in #335
- Remove internal testing cruft by @ednolan in #336
- cookiecutter: Ask for maintainer's username and add it to CODEOWNERS by @ednolan in #337
- Bump infra-workflows version to 1.4.1 by @ednolan in #339
- Add explicit permissions to pre-commit-check workflow by @ednolan in #340
- Remove redundant GTest::gtest from test link libraries by @camio in #341
- Fix indentation in cookiecutter for pre-commit check by @ednolan in #342
- Bump infra-workflows to 1.5.0 by @ednolan in #343
- Add stamp.sh script for new libraries and README instructions by @ednolan in #344
- Remove godbolt_link parameter from cookiecutter template by @ednolan in #345
- Create .exemplar_version file in new libraries by @ednolan in #346
- cookiecutter: Use minimum_cpp_build_version for CMakePresets.json by @ednolan in #347
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #348
- Bump infra-workflows to 1.5.1 by @ednolan in #349
- Bump actions/checkout from v4 to v6 by @ednolan in #350
- Restore Compiler Explorer badge in exemplar but not cookiecutter by @ednolan in #352
- Update gersemi pre-commit hook to new repository by @ednolan in #353
- cookiecutter: Add TODO for library description by @ednolan in #354
- Bump infra-workflows version to 1.5.2 by @ednolan in #355
- Add support for build telemetry by @ednolan in #356
- Bump infra-workflows version to 1.5.3 by @ednolan in #357
- Restore a missing Clang 18 unit test by @ednolan in #360
- Integrate beman-tidy into beman.exemplar via pre-commit by @neatudarius in #359
- Auto-update pre-commit hooks by @beman-automated-pr-bot[bot] in #361
- Restore beman-tidy pre-commit check removed by pre-commit autoupdate by @ednolan in #362
- Fix cookiecutter CI check by @ednolan in #363
- Update infra and move INSTALL_GTEST parameter into lockfile.json by @ednolan in #364
- ci: raise gtest_discover_tests DISCOVERY_TIMEOUT to 60s by @ednolan in #365
- Add vcpkg port templates, manifest, and CI/release workflows by...
Generate CMake Exports by Default
About
This release fixes an oversight in which CMake config packages were opt-in instead of opt-out.
Release Maturity
This release has a status of "under development". It is not recommended for production use. See The Beman Project Maturity Model for more on what this maturity status implies.
What's Changed
- Default generation of CMake config packages to ON by @bretbrownjr in #245
Full Changelog: 2.2.0...2.2.1
2.2.0
About
- Moved to new
beman-submoduleworkflow for vendoring in dependencies frombeman.infra - Added a new cookiecutter-based project template.
- Updated conformance to the Beman Standard
- Validating conformance to the Beman Standard via
beman-tidy. - Simplified
CMakeLists.txtby using newbeman-install-libraryCMake module frombeman.infra. - Made various CI improvements.
Release Maturity
This release has a status of "under development". It is not recommended for production use. See The Beman Project Maturity Model for more on what this maturity status implies.
What's Changed
- Revert complications voided by #142 by @wusatosi in #160
- Refactor ci by @wusatosi in #159
- Use prebuilt devcontainer image by @wusatosi in #126
- Fix version file name by @nickelpro in #176
- Invoke AppleClang via system compiler shims by @nickelpro in #177
- Add infra to exemplar as a beman submodule by @ednolan in #162
- Fix IdentityTest compare_std_vs_beman in identity.test.cpp by @bolry in #180
- Add cookiecutter template by @ednolan in #179
- Remove debug setting from check_cookiecutter.sh script by @ednolan in #184
- Fix duplicative CI runs when updating a pull request by @ednolan in #183
- Don't check for appearances of the string "exemplar" in infra/ directory of cookiecutter output by @ednolan in #185
- markdownlint: Don't include code blocks in line length check by @ednolan in #187
- Bump infra beman-submodule to latest main by @ednolan in #186
- Add GitHub reusable workflow for beman-submodule CI check by @ednolan in #188
- Add GitHub reusable workflow for preset testing by @ednolan in #190
- CODEOWNERS: Add @ednolan, remove @bemanproject/core-reviewers by @ednolan in #195
- Disable Markdown linting by default by @ednolan in #194
- Add .gitattributes to help GitHub Linguist by @wermos in #193
- add standard target badge for 29 as default by @JeffGarland in #198
- Update devcontainer to use post-refactor package by @ednolan in #200
- Fix duplicative cookiecutter test CI runs by @ednolan in #202
- Run preset tests for GCC and Clang on infra-containers images by @ednolan in #203
- Fix name of preset test matrix job by @ednolan in #205
- Fix cmake argument passing in cmake-build-test by @ednolan in #206
- update gitignore for editor files by @JeffGarland in #208
- Bump infra to latest by @ednolan in #209
- CI Refactor by @ednolan in #211
- Add reusable workflow for create-issue-when-fault by @ednolan in #212
- Add reusable workflow for pre-commit by @ednolan in #213
- Fix path for reusable beman pre-commit workflow by @ednolan in #215
- Specify --output-on-failure when running ctest in CI by @ednolan in #214
- Bump infra beman-submodule to latest by @ednolan in #218
- Bump infra beman-submodule to latest by @ednolan in #219
- Add bemanproject/infra-workflows as beman-submodule by @ednolan in #216
- Run sanitizer checks in release mode by @ednolan in #220
- Add a coverage CI job by @ednolan in #221
- Update clang-format version in pre-commit configuration to latest by @ednolan in #222
- Remove docs/ by @ednolan in #223
- Update infra-workflows to latest by @ednolan in #224
- Update infra to latest by @ednolan in #225
- Reduce verbosity of pull request template by @ednolan in #226
- Simplify CI configuration by @ednolan in #228
- Remove Contributing section from README.md by @ednolan in #229
- Bump beman-submodules to latest by @ednolan in #230
- Bump beman-submodules to latest by @ednolan in #233
- Add workflow to autoupdate pre-commit by @wermos in #191
- Remove raw/endraw tags from update-pre-commit workflow by @ednolan in #234
- Move update-pre-commit workflow logic into reusable workflow file by @ednolan in #236
- Update README by @wermos in #232
- Apply RELEASE.GODBOLT_TRUNK_VERSION by @neatudarius in #235
- Update LICENSE for updated [LICENSE.APPROVED] standard by @ednolan in #238
- Apply README.LICENSE by @neatudarius in #239
- Apply latest Beman Standard: lowercase everywhere by @neatudarius in #240
- Propagate lowercase everything from the Beman Standard to the entire org by @neatudarius in #242
- Bump beman-submodules to latest main by @ednolan in #243
- Call beman_install_library by @bretbrownjr in #241
New Contributors
- @nickelpro made their first contribution in #176
- @wermos made their first contribution in #193
- @JeffGarland made their first contribution in #198
Full Changelog: 2.1.1...2.2.0
Presets to FetchContent
About
This change sets all CMake presets to use FetchContent explicitly. Note that this could be a breaking change for users that use presets in other circumstances. Please use explicit, step-by-step CMake workflows to build in situations where downloading dependencies over git protocols is inappropriate or unavailable.
Release Maturity
This release has a status of "under development". It is not recommended for production use. See The Beman Project Maturity Model for more on what this maturity status implies.
What's Changed
- Set CMAKE_PROJECT_TOP_LEVEL_INCLUDES in base preset by @steve-downey in #142
Full Changelog: 2.1.0...2.1.1
Development Workflow Improvements
About
- Several improvements to documentation
- Added templates for issues and pull requests
- CMake presets enable parallel builds by default
- Cleaned up style issues in CMakeLists.txt
Release Maturity
This release has a status of "under development". It is not recommended for production use. See The Beman Project Maturity Model for more on what this maturity status implies.
What's Changed
- Update documentation lines in CMakeLists.txt to accurately reflect … by @bolry in #138
- Update CODEOWNERS: append core-reviewers to CODEOWNERS by @neatudarius in #130
- Issue and PR templates by @wusatosi in #124
- Fix typo in PR template by @wusatosi in #144
- CMake workflows build in parallel by default by @ednolan in #145
- CMake: Add -fsanitize-undefined-trap-on-error to MaxSan configuration by @ednolan in #146
- Fix some minor typos in README.md by @ednolan in #147
- Add Windows subsection under local development section by @ednolan in #148
- Improve the Fetch gtest workflow docs by @steve-downey in #140
- Support the use of CTest launchers by @purpleKarrot in #109
- Remove changelog file by @neatudarius in #152
- Enable export compile command by @wusatosi in #151
- Unconditional test target by @bretbrownjr in #153
- Clean up install logic by @bretbrownjr in #154
New Contributors
- @ednolan made their first contribution in #145
- @steve-downey made their first contribution in #140
- @purpleKarrot made their first contribution in #109
Full Changelog: 2.0.0...2.1.0
Build System Improvements
About
This release adds improved support for more environments by adjusting its build system internals to better match best practices. This is an important step to prepare Beman Exemplar to be listed on popular package managers such as ConanCenter and vcpkg.
Users that are accustomed to Exemplar downloading and building its GoogleTest dependency from source might find new configure-time issues that look like a failure in a find_package call. Installing GoogleTest with your existing packaging system should resolve that issue. Otherwise, new support and documentation entitled "Build GoogleTest dependency from github.com" has been added to provide fairly simple support for opting back into downloading GoogleTest source code during the build process.
Alternatively, because Beman Exemplar uses CMake best practices, upstream CMake documentation is available. The "Using Dependencies Guide" provides options for forcing find_package calls to dispatch to FetchContent behavior. If this is interesting, note the OVERRIDE_FIND_PACKAGE feature of FetchContent_Declare and documentation for Dependency Providers.
Release Maturity
This release has a status of "under development". It is not recommended for production use. See The Beman Project Maturity Model for more on what this maturity status implies.
Changelog
- bump gtest by @camio in #128
- Add Basic CMake Config File Package Creation and Installation by @chayden83 in #121
- Rewrite README file by @wusatosi in #111
- Fix typo in Dockerfile by @wusatosi in #131
- Inject FetchContent logic by @bretbrownjr in #105
Full changelog: 1.0.0...2.0.0
New Contributors
- @chayden83 made their first contribution in #121
Initial Release
About
This release implements full support of std::identity as proposed in Standard Library Concepts (P0898R3).
The main goal of this release is to allow this repository to be used to iterate on the Beman Standard, its tooling, and its support for the broader C++ ecosystem. Meeting industry best practices for versioned source releases is required for those purposes. Specifically, versioned and tagged releases will be used to ensure support for popular packaging systems such as Conan and vcpkg.
Release Maturity
This release has a status of "under development". It is not recommended for production use. See The Beman Project Maturity Model for more on what this maturity status implies.
Changelog
- Created an initial project structure by @bretbrownjr in #2
- Fix install logic by @bretbrownjr in #3
- Add MIT license file by @JamesAdkison in #4
- 🎨 change from cxx/hxx to cpp/hpp by @dustingooding in #10
- Fix CMake module base filename by @bretbrownjr in #13
- Apply the latest Beman Standard by @neatudarius in #15
- Rename beman.example to beman.exemplar by @camio in #19
- Update README.md to reflect new beman.exemplar name by @camio in #20
- Use namespace aliases everywhere by @camio in #23
- Remove Rocky CI support since it is not used. by @camio in #25
- Update CI dependency versions by @wusatosi in #26
- Update CI triggers by @wusatosi in #28
- Implement Use CMake Header File Sets by @wusatosi in #30
- Disable installing gtest when
cmake --installby @wusatosi in #37 - Install debug build binaries to a separate folder by @ComicSansMS in #39
- Implement schedule fault notification by @wusatosi in #43
- Simplify CMakeLists.txt by @camio in #42
- Introduce basic linting infrastructure by @wusatosi in #34
- fix(readme): fix typos in readme by @linusboehm in #47
- feat: add automatic linting suggestion github workflow by @linusboehm in #46
- Fix review dog by @wusatosi in #50
- Minor CMake change for readability by @camio in #51
- Move Build & Test out of docker by @wusatosi in #48
- Create CMake preset by @wusatosi in #44
- Update project to comply with C++17 by @wusatosi in #55
- Apply [DIRECTORY.TESTS] and [FILE.TEST_NAMES] by @camio in #52
- Fix the examplar link to the beman standard by @dietmarkuehl in #62
- Run TSan and ASan on every C++ version by @wusatosi in #57
- Fix CI by @wusatosi in #71
- Proper permission fix for reviewdog by @wusatosi in #69
- Fix
BUILD_TESTING=offby @wusatosi in #72 - Apply Beman CMake standard by @wusatosi in #74
- Fix CI by @wusatosi in #75
- Re-enable all examples by @neatudarius in #56
- Apply updated [CMAKE.SKIP_TESTS] by @wusatosi in #78
- Remove
include(ctest)by @wusatosi in #77 - Codespace support for exemplar by @wusatosi in #63
- [exemplar repo] Update docs: org renamed to bemanproject by @neatudarius in #81
- Add @wusatosi to codeowner by @wusatosi in #83
- Remove BUILD_TESTING variable setting for GTest by @camio in #85
- Introduce MSVC CI support by @wusatosi in #80
- Compiler test by @wusatosi in #84
- Adds appleclang + msvc preset by @wusatosi in #82
- Define the
testbuild target more often by @bretbrownjr in #91 - Introduce CMake toolchain by @wusatosi in #76
- Remove block(), endblock() by @wusatosi in #100
- beman.exemplar: change library status to under development (exemplar is a template library) by @neatudarius in #89
- Use parallel build in CI by @wusatosi in #101
- Add appleclang testing to CI by @wusatosi in #99
- No fail fast on CI tests by @wusatosi in #103
- Support BUILD_SHARED_LIBS by @bretbrownjr in #104
- Fix codespace ASAN stall by @wusatosi in #106
- Add skeletons for dev-docs by @wusatosi in #120
- Missing scope in examples/CMakeLists.txt by @bolry in #125
- Add llvm presets by @wusatosi in #123
- Apply the Beman Standard rules related to the Beman Library Maturity Model by @neatudarius in #114
Full changelog: https://github.com/bemanproject/exemplar/commits/1.0.0
New Contributors
- @bretbrownjr made their first contribution in #2
- @JamesAdkison made their first contribution in #4
- @dustingooding made their first contribution in #10
- @neatudarius made their first contribution in #15
- @camio made their first contribution in #19
- @wusatosi made their first contribution in #26
- @ComicSansMS made their first contribution in #39
- @linusboehm made their first contribution in #47
- @dietmarkuehl made their first contribution in #62
- @bolry made their first contribution in #125