diff --git a/.beman-tidy.yaml b/.beman-tidy.yaml new file mode 100644 index 0000000..3d987cb --- /dev/null +++ b/.beman-tidy.yaml @@ -0,0 +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: + - infra/ diff --git a/.github/workflows/pre-commit-check.yml b/.github/workflows/pre-commit-check.yml index 2f91103..d3cc6af 100644 --- a/.github/workflows/pre-commit-check.yml +++ b/.github/workflows/pre-commit-check.yml @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception name: Lint Check (pre-commit) on: diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 2409d2f..834b4c1 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception name: Lint Check (pre-commit) on: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 485ecb5..fac40ee 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -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: @@ -38,4 +39,11 @@ repos: name: CMake linting exclude: ^.*/tests/.*/data/ # Exclude test data directories + # Beman Standard checking via beman-tidy + - repo: https://github.com/bemanproject/beman-tidy + rev: v0.5.2 + hooks: + - id: beman-tidy + args: [".", "--verbose"] + exclude: 'infra/' diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c59a82..35c20cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,10 @@ if(LINUX) option(BEMAN_NET_WITH_URING "Enable liburing io context" OFF) endif() +# Match CMake presets. MSVC CI enables modules via Ninja by default, which +# triggers execution C7760 in product_type.cppm (pre-existing on main). +set(BEMAN_USE_MODULES OFF CACHE BOOL "Build CXX modules" FORCE) + include(FetchContent) FetchContent_Declare( @@ -41,6 +45,7 @@ set(POSTGRESROOT /Library/PostgreSQL/18) check_library_exists(pq PQsocket ${POSTGRESROOT}/lib HAS_POSTGRES) add_subdirectory(src/beman/net) +add_library(beman::net ALIAS beman.net) #=============================================================================== # NOTE: this must be done before tests! CK diff --git a/LICENSE.txt b/LICENSE similarity index 93% rename from LICENSE.txt rename to LICENSE index 0873f35..f6db814 100644 --- a/LICENSE.txt +++ b/LICENSE @@ -1,6 +1,3 @@ -============================================================================== -The Beman Project is under the Apache License v2.0 with LLVM Exceptions: -============================================================================== Apache License Version 2.0, January 2004 @@ -220,15 +217,3 @@ conflicts with the conditions of the GPLv2, you may retroactively and prospectively choose to deem waived or otherwise exclude such Section(s) of the License, but only in their entirety and only with respect to the Combined Software. - -============================================================================== -Software from third parties included in the Beman Project: -============================================================================== -The Beman Project contains third party software which is under different license -terms. All such code will be identified clearly using at least one of two -mechanisms: -1) It will be in a separate directory tree with its own `LICENSE.txt` or - `LICENSE` file at the top containing the specific license and restrictions - which apply to that software, or -2) It will contain specific license and restriction terms at the top of every - file. diff --git a/README.md b/README.md index 8720e69..6da4d75 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # beman.net: Senders For Network Operations - - -![Library Status](https://raw.githubusercontent.com/bemanproject/beman/refs/heads/main/images/badges/beman_badge-beman_library_under_development.svg) -![Target Standard](https://github.com/bemanproject/beman/blob/main/images/badges/cpp29.svg) + +[![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) +![Standard Target](https://github.com/bemanproject/beman/blob/main/images/badges/cpp29.svg) [![Coverage](https://coveralls.io/repos/github/bemanproject/net/badge.svg?branch=main)](https://coveralls.io/github/bemanproject/net?branch=main) + `beman.net` provides senders for asynchronous network operations. It is based on [P2762R2](https://wg21.link/P2762R2). Both the proposal @@ -21,7 +21,11 @@ possible use various libraries for asynchronous operations like **Implements**: [Sender/Receiver Interface for Networking (P2762)](https://wg21.link/P2762) -**Status**: [Under development and not yet ready for production use.](https://github.com/bemanproject/beman/blob/main/docs/BEMAN_LIBRARY_MATURITY_MODEL.md#under-development-and-not-yet-ready-for-production-use) +**Status**: [Under development and not yet ready for production use.](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#under-development-and-not-yet-ready-for-production-use) + +## License + +beman.net is licensed under the Apache License v2.0 with LLVM Exceptions. ## Help Welcome! diff --git a/src/beman/net/CMakeLists.txt b/src/beman/net/CMakeLists.txt index 0b4c92c..fb38dec 100644 --- a/src/beman/net/CMakeLists.txt +++ b/src/beman/net/CMakeLists.txt @@ -6,6 +6,9 @@ add_library(${PROJECT_NAME}_headers INTERFACE) add_library(beman::net_headers ALIAS ${PROJECT_NAME}_headers) +add_library(beman.net INTERFACE) +target_link_libraries(beman.net INTERFACE ${PROJECT_NAME}_headers) + target_sources( ${PROJECT_NAME}_headers # XXX PRIVATE net.cpp diff --git a/tests/beman/net/CMakeLists.txt b/tests/beman/net/CMakeLists.txt index 81e054e..8aa544d 100644 --- a/tests/beman/net/CMakeLists.txt +++ b/tests/beman/net/CMakeLists.txt @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # cmake-format: on -list(APPEND tests sorted_list.pass) +list(APPEND tests sorted_list.test) foreach(test ${tests}) add_executable(${test} ${test}.cpp) diff --git a/tests/beman/net/sorted_list.pass.cpp b/tests/beman/net/sorted_list.test.cpp similarity index 100% rename from tests/beman/net/sorted_list.pass.cpp rename to tests/beman/net/sorted_list.test.cpp