From 0e87e370589d45f42dca2b8878f0cd3ef28bbd33 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 04:46:29 +0000 Subject: [PATCH 1/7] add docker-compose links --- docker-compose.sh | 1 + docker-compose.yml | 1 + 2 files changed, 2 insertions(+) create mode 120000 docker-compose.sh create mode 120000 docker-compose.yml diff --git a/docker-compose.sh b/docker-compose.sh new file mode 120000 index 0000000..85f182f --- /dev/null +++ b/docker-compose.sh @@ -0,0 +1 @@ +.devcontainer/compose.pro.sh \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 120000 index 0000000..46c1f89 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1 @@ +.devcontainer/compose.bld.yml \ No newline at end of file From 06391b1423997ae590aaa68015b1ec6bd49ec87b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 04:46:29 +0000 Subject: [PATCH 2/7] add CMakePresets --- CMakePresets.json | 9 +++++++++ CMakePresetsBase.json | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 CMakePresets.json create mode 100644 CMakePresetsBase.json diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..28efa39 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,9 @@ +{ + "version": 8, + "include": [ + ".devcontainer/cmake/presets/xpLinuxNinja.json", + ".devcontainer/cmake/presets/xpDarwinNinja.json", + ".devcontainer/cmake/presets/xpMswVs2022.json", + ".devcontainer/cmake/presets/xpMswVs2026.json" + ] +} diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json new file mode 100644 index 0000000..085cdc3 --- /dev/null +++ b/CMakePresetsBase.json @@ -0,0 +1,16 @@ +{ + "version": 8, + "configurePresets": [ + { + "name": "config-base", + "hidden": true, + "binaryDir": "${sourceDir}/_bld-${presetName}" + } + ], + "buildPresets": [ + { + "name": "build-base", + "hidden": true + } + ] +} From e6f7ef5740711beee386e8d785ea93eb0b4490b7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 04:46:29 +0000 Subject: [PATCH 3/7] add GitHub Actions workflows --- .github/workflows/xpbuild.yml | 28 +++++++++++++++++++++ .github/workflows/xprelease.yml | 44 +++++++++++++++++++++++++++++++++ .github/workflows/xptag.yml | 16 ++++++++++++ .github/workflows/xpupdate.yml | 13 ++++++++++ 4 files changed, 101 insertions(+) create mode 100644 .github/workflows/xpbuild.yml create mode 100644 .github/workflows/xprelease.yml create mode 100644 .github/workflows/xptag.yml create mode 100644 .github/workflows/xpupdate.yml diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml new file mode 100644 index 0000000..b3a6f37 --- /dev/null +++ b/.github/workflows/xpbuild.yml @@ -0,0 +1,28 @@ +name: xpBuild +permissions: + contents: read + pull-requests: write +on: + push: + tags: ["xpv*"] + pull_request: + branches: ["xpro"] + workflow_dispatch: +jobs: + linux: + permissions: + contents: read + pull-requests: write + packages: write + uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.18 + secrets: + automation_token: ${{ secrets.GHCR_TOKEN }} + with: {} + macos: + uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.18 + secrets: inherit + with: {} + windows: + uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.18 + secrets: inherit + with: {} diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml new file mode 100644 index 0000000..8672671 --- /dev/null +++ b/.github/workflows/xprelease.yml @@ -0,0 +1,44 @@ +name: xpRelease +on: + workflow_dispatch: + inputs: + workflow_run_url: + description: 'URL of the workflow run containing artifacts to upload (e.g., https://github.com/owner/repo/actions/runs/123456789)' + required: true + type: string + workflow_run: + workflows: ["xpBuild"] + types: [completed] +jobs: + dispatch-at-tag: + if: >- + github.event_name == 'workflow_run' && + github.event.workflow_run.conclusion == 'success' && + startsWith(github.event.workflow_run.head_branch, 'xpv') + runs-on: ubuntu-latest + permissions: + actions: write + steps: + - + name: Dispatch xpRelease at tag + shell: bash + env: + GH_TOKEN: ${{ github.token }} + RUN_URL: ${{ github.event.workflow_run.html_url }} + TAG_REF: ${{ github.event.workflow_run.head_branch }} + run: | + set -euo pipefail + gh api -X POST "repos/${{ github.repository }}/actions/workflows/xprelease.yml/dispatches" \ + -f ref="$TAG_REF" \ + -f inputs[workflow_run_url]="$RUN_URL" + # Upload build artifacts as release assets + release-from-build: + if: github.event_name == 'workflow_dispatch' + uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.18 + with: + workflow_run_url: ${{ github.event.inputs.workflow_run_url }} + permissions: + contents: write + id-token: write + attestations: write + secrets: inherit diff --git a/.github/workflows/xptag.yml b/.github/workflows/xptag.yml new file mode 100644 index 0000000..d843502 --- /dev/null +++ b/.github/workflows/xptag.yml @@ -0,0 +1,16 @@ +name: xpTag +permissions: + contents: write + issues: write +on: + pull_request: + types: [closed] +jobs: + tag: + if: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'xpro' && contains(github.event.pull_request.labels.*.name, 'release:tag') }} + uses: externpro/externpro/.github/workflows/tag-release.yml@25.07.18 + with: + merge_sha: ${{ github.event.pull_request.merge_commit_sha }} + pr_number: ${{ github.event.pull_request.number }} + secrets: + automation_token: ${{ secrets.XPRO_TOKEN }} diff --git a/.github/workflows/xpupdate.yml b/.github/workflows/xpupdate.yml new file mode 100644 index 0000000..0a51a08 --- /dev/null +++ b/.github/workflows/xpupdate.yml @@ -0,0 +1,13 @@ +name: xpUpdate externpro +permissions: + contents: write + pull-requests: write + packages: write +on: + workflow_dispatch: +jobs: + update: + uses: externpro/externpro/.github/workflows/update-externpro.yml@main + secrets: + automation_token: ${{ secrets.XPRO_TOKEN }} + with: {} From 09e2dca7283ca316c99971ad2ef5c9ea5a2b4e72 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 04:46:29 +0000 Subject: [PATCH 4/7] add release-tag intent --- .github/release-tag.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .github/release-tag.json diff --git a/.github/release-tag.json b/.github/release-tag.json new file mode 100644 index 0000000..71438d1 --- /dev/null +++ b/.github/release-tag.json @@ -0,0 +1,4 @@ +{ + "message": "xpro version 0.0.1 tag", + "tag": "xpv0.0.1" +} From 9688ce3fa94b27369d0426f207c8667c40d057a9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 04:46:29 +0000 Subject: [PATCH 5/7] gitignore: add externpro ignores --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ec8e4d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# externpro +.env +_bld*/ +docker-compose.override.yml From d4f8dcb227cf0642c6fda9320790d820b3884052 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Fri, 10 Apr 2026 00:14:43 -0600 Subject: [PATCH 6/7] Create Threads library wrapper for externpro Adds a minimal CMakeLists.txt that provides a Threads library wrapper using xpExternPackage. This resolves CMake configuration errors where downstream projects like spdlog cannot find the Threads package. The wrapper: - Uses find_package(Threads REQUIRED BYPASS_PROVIDER) to avoid circular dependency - Provides proper SPDX-compliant LGPL-2.1-or-later licensing - Includes metadata linking to CMake FindThreads documentation - Enables spdlog and other projects to successfully build with threading support Fixes CMake error: "Could not find a package configuration file provided by Threads" --- CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..50c4740 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 4.3) +project(Threads) +string(JOIN "\n" EXT2 + "set(THREAD_PREFER_PTHREAD_FLAG ON)" + "find_package(Threads REQUIRED BYPASS_PROVIDER)" + "" + ) +xpExternPackage(BASE v0 XPDIFF "bin" + WEB "https://cmake.org/cmake/help/latest/module/FindThreads.html" + DESC "Finds and determines the thread library of the system for multithreading support" + LICENSE "[LGPL-2.1-or-later](https://spdx.org/licenses/LGPL-2.1-or-later.html 'GNU Lesser General Public License v2.1 or later')" + ) From 1aba539d6f35b03d226e66910d8542bb1a7f28d2 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Fri, 10 Apr 2026 00:16:08 -0600 Subject: [PATCH 7/7] release-tag: xpv1.0.0 --- .github/release-tag.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/release-tag.json b/.github/release-tag.json index 71438d1..544e7bc 100644 --- a/.github/release-tag.json +++ b/.github/release-tag.json @@ -1,4 +1,4 @@ { - "message": "xpro version 0.0.1 tag", - "tag": "xpv0.0.1" + "message": "xpro version 1.0.0 tag", + "tag": "xpv1.0.0" }