diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a254b35..006fe84 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -24,10 +24,10 @@ "mounts": [ // This mounts increase future building on devcontainer in case any reseting of container volumes // Mount caching of build folder - "source=dev-build-cache,target=${containerWorkspaceFolder}/build,type=volume", + "source=dev-build-cache,target=${containerWorkspaceFolder}/build,type=volume", // Mount caching of conan dependencies builds - "source=dev-conan-cache,target=~/.conan2,type=volume" - ], + "source=dev-conan-cache,target=~/.conan2,type=volume" + ], "customizations": { "vscode": { "extensions": [ diff --git a/.github/workflows/check-for-exceeding-odb-database-support-code-limit.yml b/.github/workflows/check-for-exceeding-odb-database-support-code-limit.yml new file mode 100644 index 0000000..cb5d73b --- /dev/null +++ b/.github/workflows/check-for-exceeding-odb-database-support-code-limit.yml @@ -0,0 +1,54 @@ +# In cases where a project’s source code is closed, the ODB library +# license affects the project’s license. If the limit of 10,000 lines +# of database support code is exceeded, it is no longer possible to use +# the FPL license; in that case, you must either purchase the CPL +# or make the project’s source code open source. + +# More details here: https://www.codesynthesis.com/products/odb/license.xhtml + +# This workflow will succeed if the ODB database support code +# (.ixx, .cxx, .hxx) has not reached the limit, and will fail otherwise. + +name: Check for exceeding the odb database support code limit + +on: + pull_request: + types: [opened, synchronize] + +env: + ODB_PACKAGE_INDEX_LINK: https://www.codesynthesis.com/download/odb/2.5.0/ubuntu/ubuntu22.04/x86_64 + +jobs: + verify-that-database-support-code-limit-has-not-been-exceeded: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout the repo + uses: actions/checkout@v4 + + - name: Download and install odb compiler + run: | + curl -fsSL -o odb.deb "${ODB_PACKAGE_INDEX_LINK}/odb_2.5.0-0~ubuntu22.04_amd64.deb" + sudo apt-get install -y ./odb.deb + odb --version | grep -q "No such file or directory" && exit 1 || exit 0 + + - name: Download and install libodb library + run: | + curl -fsSL -o libodb.deb "${ODB_PACKAGE_INDEX_LINK}/libodb_2.5.0-0~ubuntu22.04_amd64.deb" + sudo apt-get install -y ./libodb.deb + apt policy libodb | grep -q "Unable to locate package" && exit 1 || exit 0 + + - name: Download and install libodb-dev library + run: | + curl -fsSL -o libodb-dev.deb "${ODB_PACKAGE_INDEX_LINK}/libodb-dev_2.5.0-0~ubuntu22.04_amd64.deb" + sudo apt-get install -y ./libodb-dev.deb + apt policy libodb-dev | grep -q "Unable to locate package" && exit 1 || exit 0 + + - name: Check the limit + run: | + # If this is not enabled, bash will not be able to process '**' + shopt -s globstar nullglob + odb \ + --show-sloc --sloc-limit 10000 -d pgsql --std c++20 \ + ./src/core/**/*.h + diff --git a/.github/workflows/reusable-docker-build-and-push.yml b/.github/workflows/reusable-docker-build-and-push.yml index 851d641..43d6b1c 100644 --- a/.github/workflows/reusable-docker-build-and-push.yml +++ b/.github/workflows/reusable-docker-build-and-push.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v7 # this is needed to address this issue according to the comment https://github.com/devcontainers/ci/issues/271#issuecomment-2301764487 # otherwise our TourmalineCore org name cannot be used in docker image names, only tourmalinecore