Skip to content

Apply the latest Beman Standard#15

Merged
camio merged 17 commits intobemanproject:mainfrom
neatudarius:update-to-latest-beman-standard
Sep 10, 2024
Merged

Apply the latest Beman Standard#15
camio merged 17 commits intobemanproject:mainfrom
neatudarius:update-to-latest-beman-standard

Conversation

@neatudarius
Copy link
Copy Markdown
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
Comment thread .github/CODEOWNERS Outdated
@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
Comment thread include/Beman/Example/example.hpp Outdated
@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
Comment thread .github/CODEOWNERS Outdated
Comment thread .github/CODEOWNERS Outdated
Copy link
Copy Markdown
Member

@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.

Comment thread CMakeLists.txt Outdated
Comment thread CMakeLists.txt Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread src/Beman/Example/tests/CMakeLists.txt Outdated
Comment thread src/Beman/Example/tests/identity.t.cpp Outdated
Comment thread examples/identity_usage.cpp Outdated
Comment thread examples/identity_usage.cpp Outdated
Comment thread src/Beman/Example/tests/CMakeLists.txt Outdated
@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
Copy Markdown
Member

@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
Copy Markdown
Member

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
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
Copy Markdown
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