Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply the latest Beman Standard #15

Merged
merged 17 commits into from
Sep 10, 2024

Conversation

neatudarius
Copy link
Member

@neatudarius neatudarius commented Jul 25, 2024

Apply the Beman Standard to Beman.Example and more tweaks.

Issues:

Updates related to the Beman Standard:

  • Update licence
    • Apply LICENSE.APACHE_LLVM: Switch from MIT to Apache License v2.0 with LLVM Exceptions.
    • Apply LICENSE.CRITERIA: already applied
    • Apply LICENSE.APPROVED: already applied
  • Apply FILE.COPYRIGHT
  • Naming
    • Apply LIBRARY_NAMES:
    • Apply REPOSITORY_NAME: renamed to Example (docs + github)
    • Apply TOPLEVEL.CMAKE: already applied (root CMakeLists.txt, using Ctest)
    • Apply TOPLEVEL.LICENSE: renamed file to LICENCE.
    • Apply TOPLEVEL.README
  • README
    • Apply README.TITLE
    • Apply README.PURPOSE
    • Apply README.IMPLEMENTS
  • CMake
    • Apply CMAKE.DEFAULT
    • Apply CMAKE.SKIP_TESTS
    • Apply CMAKE.AVOID_PASSTHROUGHS
  • Tree
    • Apply DIRECTORY.INTERFACE_HEADERS:
      $ tree include 
      include
      └── Beman
          └── Example
              └── example.hpp
    • Apply DIRECTORY.IMPLEMENTATION_HEADERS: currently N/A
    • Apply DIRECTORY.SOURCES:
      $ tree src 
      src
      └── Beman
          └── Example
              ├── CMakeLists.txt
              ├── example.cpp
              └── tests
                  ├── CMakeLists.txt
                  └── example.t.cpp
      
      4 directories, 4 files

Updates related to docs and usage example:

  • Add API example: beman::example::identity equivalent of std::identity
  • Add basic unit test and framework integration with Gtest: src/Beman/Example/tests/example.t.cpp.
$ tree src/Beman/Example/tests 
src/Beman/Example/tests
├── CMakeLists.txt
└── example.t.cpp

1 directory, 2 files
  • Add usage example: examples/sample_usage.cpp.
$ tree examples 
examples
├── CMakeLists.txt
└── sample_usage.cpp

1 directory, 2 files
  • Docs
    • Add build instructions docs.
    • Document minimum compiler requirements
    • Add required tools/packags.
    • Add OS support.
    • Add deps support.
    • Add C++ standard support.

Updates related to CI/infrastructure/other missing bits:

  • Extend compiler / standard versions for build and run on CI: {gcc, clang} x {C++98, C++03, C++11, C++14, C++17, C++20, 'C++23, C++26}.
  • Add CI Tests badge in root README.md.
  • Add .gitignore
  • Add .github/CODEOWNERS

@neatudarius neatudarius changed the title Apply the latest Beman Standard [WIP] Apply the latest Beman Standard Jul 25, 2024
.github/CODEOWNERS Outdated Show resolved Hide resolved
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch 6 times, most recently from a877c2e to 81ddf5d Compare July 25, 2024 13:42
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch 14 times, most recently from 9b8c5c3 to 1d53fb4 Compare August 14, 2024 08:26
@neatudarius neatudarius changed the title [WIP] Apply the latest Beman Standard Apply the latest Beman Standard Aug 14, 2024
@neatudarius neatudarius marked this pull request as ready for review August 14, 2024 08:31
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch from 2fd7687 to 0df2d52 Compare August 21, 2024 13:05
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch from a78b5c4 to 9913686 Compare August 21, 2024 14:38
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch from 9913686 to 03cbf60 Compare August 21, 2024 14:41
.github/CODEOWNERS Outdated Show resolved Hide resolved
.github/CODEOWNERS Outdated Show resolved Hide resolved
Copy link
Contributor

@camio camio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to add suggestions for the file and directory names, but those should be updated as well.

CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
src/Beman/Example/tests/CMakeLists.txt Outdated Show resolved Hide resolved
src/Beman/Example/tests/identity.t.cpp Outdated Show resolved Hide resolved
examples/identity_usage.cpp Outdated Show resolved Hide resolved
examples/identity_usage.cpp Outdated Show resolved Hide resolved
src/Beman/Example/tests/CMakeLists.txt Outdated Show resolved Hide resolved
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch 10 times, most recently from ec6bbc3 to 831f771 Compare September 9, 2024 17:57
@neatudarius neatudarius force-pushed the update-to-latest-beman-standard branch from 831f771 to a0381d1 Compare September 9, 2024 18:03
Copy link
Contributor

@camio camio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aside from the TODOs, which can easily be converted into issues against this repository, and a minor issue, this looks good to merge to me.

if(BUILD_TESTING)
include(GoogleTest)

add_executable(beman.example.tests)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the target name be beman.example.tests.identity in case there are multiple test drivers?

@camio camio merged commit c18c28a into bemanproject:main Sep 10, 2024
13 checks passed
Comment on lines -33 to -37
- { id: ubuntu-gcc-static-cxx98, platform: ubuntu, cc: gcc, cpp: g++, cmake_args: "-DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_STANDARD_REQUIRED=on"}
- { id: ubuntu-gcc-static-cxx11, platform: ubuntu, cc: gcc, cpp: g++, cmake_args: "-DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=on"}
- { id: ubuntu-gcc-static-cxx14, platform: ubuntu, cc: gcc, cpp: g++, cmake_args: "-DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_STANDARD_REQUIRED=on"}
- { id: ubuntu-gcc-static-cxx17, platform: ubuntu, cc: gcc, cpp: g++, cmake_args: "-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=on"}
- { id: ubuntu-gcc-static-cxx20, platform: ubuntu, cc: gcc, cpp: g++, cmake_args: "-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=on"}
Copy link
Member

@wusatosi wusatosi Oct 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extend compiler / standard versions for build and run on CI: {gcc, clang} x {C++98, C++03, C++11, C++14, C++17, C++20, 'C++23, C++26}.

Is removing CI testing for C++98 <-> C++17 here intentional?
There's only C++20 <-> C++26 testing left.

@neatudarius

@wusatosi wusatosi mentioned this pull request Oct 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants