Skip to content

Commit c1c9467

Browse files
authored
Merge branch 'main' into upgrade-cling-version-ci
2 parents 1055a9c + 60a2d9c commit c1c9467

File tree

12 files changed

+434
-337
lines changed

12 files changed

+434
-337
lines changed

.github/pull_request_template.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Description
2+
3+
Please include a summary of changes, motivation and context for this PR.
4+
5+
Fixes # (issue)
6+
7+
## Type of change
8+
9+
Please tick all options which are relevant.
10+
11+
- [ ] Bug fix
12+
- [ ] New feature
13+
- [ ] Requires documentation updates
14+
15+
## Testing
16+
17+
Please describe the test(s) that you added and ran to verify your changes.
18+
19+
## Checklist
20+
21+
- [ ] I have read the contribution guide recently

.github/workflows/ci.yml

Lines changed: 83 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -86,40 +86,40 @@ jobs:
8686
cppyy: Off
8787
llvm_enable_projects: "clang"
8888
llvm_targets_to_build: "host;NVPTX"
89-
- name: osx14-arm-clang-clang-repl-19
90-
os: macos-14
89+
- name: osx15-arm-clang-clang-repl-19
90+
os: macos-15
9191
compiler: clang
9292
clang-runtime: '19'
9393
cling: Off
9494
cppyy: On
9595
llvm_enable_projects: "clang;lld"
9696
llvm_targets_to_build: "WebAssembly;host;NVPTX"
97-
- name: osx14-arm-clang-clang-repl-18
98-
os: macos-14
97+
- name: osx15-arm-clang-clang-repl-18
98+
os: macos-15
9999
compiler: clang
100100
clang-runtime: '18'
101101
cling: Off
102102
cppyy: On
103103
llvm_enable_projects: "clang"
104104
llvm_targets_to_build: "host;NVPTX"
105-
- name: osx14-arm-clang-clang-repl-17
106-
os: macos-14
105+
- name: osx15-arm-clang-clang-repl-17
106+
os: macos-15
107107
compiler: clang
108108
clang-runtime: '17'
109109
cling: Off
110110
cppyy: On
111111
llvm_enable_projects: "clang"
112112
llvm_targets_to_build: "host;NVPTX"
113-
- name: osx14-arm-clang-clang-repl-16
114-
os: macos-14
113+
- name: osx15-arm-clang-clang-repl-16
114+
os: macos-15
115115
compiler: clang
116116
clang-runtime: '16'
117117
cling: Off
118118
cppyy: On
119119
llvm_enable_projects: "clang"
120120
llvm_targets_to_build: "host;NVPTX"
121-
- name: osx14-arm-clang-clang16-cling
122-
os: macos-14
121+
- name: osx15-arm-clang-clang13-cling
122+
os: macos-15
123123
compiler: clang
124124
clang-runtime: '16'
125125
cling: On
@@ -291,13 +291,31 @@ jobs:
291291
echo "CC=gcc-${vers}" >> $GITHUB_ENV
292292
echo "CXX=g++-${vers}" >> $GITHUB_ENV
293293
else
294-
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
295-
#Use clang-15 and clang++-15 compiler that is installed on runner, instead of one
296-
#provided by MacOS (could brew install clang-16/17 to use consistent version
297-
#of clang)
298-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
299-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
294+
export ARCHITECHURE=$(uname -m)
295+
if [[ "$ARCHITECHURE" == "arm64" ]]; then
296+
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
297+
if [[ "${cling_on}" == "ON" ]]; then
298+
brew install llvm@15
299+
brew remove llvm@18
300+
brew cleanup
301+
#FIXME: Do not believe setting all these environment variables are necessary
302+
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
303+
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
304+
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
305+
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
306+
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
307+
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
308+
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
309+
else
310+
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
311+
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
312+
fi
313+
else
314+
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
315+
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
316+
fi
300317
fi
318+
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
301319
env:
302320
compiler: ${{ matrix.compiler }}
303321

@@ -345,10 +363,11 @@ jobs:
345363
if: ${{ runner.os == 'macOS' && steps.cache.outputs.cache-hit != 'true' }}
346364
run: |
347365
brew update
348-
brew remove [email protected]
349366
export ARCHITECHURE=$(uname -m)
350367
if [[ "$ARCHITECHURE" != "x86_64" ]]; then
351368
brew remove unxip
369+
else
370+
brew remove [email protected]
352371
fi
353372
# workaround for https://github.com/actions/setup-python/issues/577
354373
for pkg in $(brew list | grep '^python@'); do
@@ -603,32 +622,32 @@ jobs:
603622
# clang-runtime: '17'
604623
# cling: Off
605624
# cppyy: On
606-
- name: osx14-arm-clang-clang-repl-19-cppyy
607-
os: macos-14
625+
- name: osx15-arm-clang-clang-repl-19-cppyy
626+
os: macos-15
608627
compiler: clang
609628
clang-runtime: '19'
610629
cling: Off
611630
cppyy: On
612-
- name: osx14-arm-clang-clang-repl-18-cppyy
613-
os: macos-14
631+
- name: osx15-arm-clang-clang-repl-18-cppyy
632+
os: macos-15
614633
compiler: clang
615634
clang-runtime: '18'
616635
cling: Off
617636
cppyy: On
618-
- name: osx14-arm-clang-clang-repl-17-cppyy
619-
os: macos-14
637+
- name: osx15-arm-clang-clang-repl-17-cppyy
638+
os: macos-15
620639
compiler: clang
621640
clang-runtime: '17'
622641
cling: Off
623642
cppyy: On
624-
- name: osx14-arm-clang-clang-repl-16
625-
os: macos-14
643+
- name: osx15-arm-clang-clang-repl-16
644+
os: macos-15
626645
compiler: clang
627646
clang-runtime: '16'
628647
cling: Off
629648
cppyy: Off
630-
- name: osx14-arm-clang-clang16-cling
631-
os: macos-14
649+
- name: osx15-arm-clang-clang13-cling-cppyy
650+
os: macos-15
632651
compiler: clang
633652
clang-runtime: '16'
634653
cling: On
@@ -779,11 +798,29 @@ jobs:
779798
echo "CXX=g++-${vers}" >> $GITHUB_ENV
780799
else
781800
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
782-
#Use clang-15 and clang++-15 compiler that is installed on runner, instead of one
783-
#provided by MacOS (could brew install clang-16/17 to use consistent version
784-
#of clang)
785-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
786-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
801+
export ARCHITECHURE=$(uname -m)
802+
if [[ "$ARCHITECHURE" == "arm64" ]]; then
803+
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
804+
if [[ "${cling_on}" == "ON" ]]; then
805+
brew install llvm@15
806+
brew remove llvm@18
807+
brew cleanup
808+
#FIXME: Do not believe setting all these environment variables are necessary
809+
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
810+
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
811+
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
812+
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
813+
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
814+
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
815+
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
816+
else
817+
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
818+
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
819+
fi
820+
else
821+
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
822+
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
823+
fi
787824
fi
788825
env:
789826
compiler: ${{ matrix.compiler }}
@@ -831,9 +868,9 @@ jobs:
831868
if: runner.os == 'macOS'
832869
run: |
833870
brew update --force
834-
brew remove [email protected]
835871
export ARCHITECHURE=$(uname -m)
836872
if [[ "$ARCHITECHURE" == "x86_64" ]]; then
873+
brew remove [email protected]
837874
brew remove swiftlint
838875
else
839876
brew remove unxip
@@ -916,6 +953,7 @@ jobs:
916953
docs_on=$(echo "${{ matrix.documentation }}" | tr '[:lower:]' '[:upper:]')
917954
if [[ "${docs_on}" == "ON" ]]; then
918955
cmake --build . --target doxygen-cppinterop --parallel ${{ env.ncpus }}
956+
cmake --build . --target sphinx-cppinterop --parallel ${{ env.ncpus }}
919957
else
920958
cmake --build . --target check-cppinterop --parallel ${{ env.ncpus }}
921959
if [[ ("${os}" == "ubuntu"*) ]]; then
@@ -1165,18 +1203,21 @@ jobs:
11651203
clang-runtime: '19'
11661204
cling: Off
11671205
micromamba_shell_init: bash
1168-
- name: osx14-arm-clang-clang-repl-19-emscripten_wasm
1169-
os: macos-14
1206+
emsdk_ver: "3.1.45"
1207+
- name: osx15-arm-clang-clang-repl-19-emscripten_wasm
1208+
os: macos-15
11701209
compiler: clang
11711210
clang-runtime: '19'
11721211
cling: Off
11731212
micromamba_shell_init: bash
1213+
emsdk_ver: "3.1.45"
11741214
- name: osx13-x86-clang-clang-repl-19-emscripten_wasm
11751215
os: macos-13
11761216
compiler: clang
11771217
clang-runtime: '19'
11781218
cling: Off
11791219
micromamba_shell_init: bash
1220+
emsdk_ver: "3.1.45"
11801221

11811222
steps:
11821223
- uses: actions/checkout@v4
@@ -1232,7 +1273,9 @@ jobs:
12321273
- name: Setup emsdk
12331274
shell: bash -l {0}
12341275
run: |
1235-
emsdk install 3.1.45
1276+
git clone https://github.com/emscripten-core/emsdk.git
1277+
cd emsdk
1278+
./emsdk install ${{ matrix.emsdk_ver }}
12361279
12371280
- name: Restore Cache LLVM/Clang runtime build directory
12381281
uses: actions/cache/restore@v4
@@ -1247,11 +1290,10 @@ jobs:
12471290
if: ${{ runner.os != 'windows' }}
12481291
shell: bash -l {0}
12491292
run: |
1250-
emsdk activate 3.1.45
1251-
source $CONDA_EMSDK_DIR/emsdk_env.sh
1293+
./emsdk/emsdk activate ${{matrix.emsdk_ver}}
1294+
source ./emsdk/emsdk_env.sh
12521295
micromamba create -f environment-wasm.yml --platform=emscripten-wasm32
12531296
1254-
export EMPACK_PREFIX=$MAMBA_ROOT_PREFIX/envs/CppInterOp-wasm-build
12551297
export PREFIX=$MAMBA_ROOT_PREFIX/envs/CppInterOp-wasm
12561298
export CMAKE_PREFIX_PATH=$PREFIX
12571299
export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX
@@ -1317,14 +1359,13 @@ jobs:
13171359
- name: Build xeus-cpp
13181360
shell: bash -l {0}
13191361
run: |
1320-
emsdk activate 3.1.45
1321-
source $CONDA_EMSDK_DIR/emsdk_env.sh
1362+
./emsdk/emsdk activate ${{matrix.emsdk_ver}}
1363+
source ./emsdk/emsdk_env.sh
13221364
micromamba activate CppInterOp-wasm
13231365
git clone https://github.com/compiler-research/xeus-cpp.git
13241366
cd ./xeus-cpp
13251367
mkdir build
13261368
pushd build
1327-
export EMPACK_PREFIX=$MAMBA_ROOT_PREFIX/envs/CppInterOp-wasm-build
13281369
export CMAKE_PREFIX_PATH=${{ env.PREFIX }}
13291370
export CMAKE_SYSTEM_PREFIX_PATH=${{ env.PREFIX }}
13301371
emcmake cmake \
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
name: Markdown-Linter
3+
4+
on:
5+
pull_request:
6+
branches: [main]
7+
paths:
8+
- '**.md'
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
12+
cancel-in-progress: true
13+
14+
jobs:
15+
build:
16+
name: Linter
17+
runs-on: ubuntu-22.04
18+
19+
permissions:
20+
contents: read
21+
packages: read
22+
# To report GitHub Actions status checks
23+
statuses: write
24+
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v4
28+
with:
29+
# super-linter needs the full git history to get the
30+
# list of files that changed across commits
31+
fetch-depth: 0
32+
33+
- name: Super-linter
34+
uses: super-linter/[email protected]
35+
env:
36+
VALIDATE_ALL_CODEBASE: false
37+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38+
VALIDATE_MARKDOWN: true
39+
DEFAULT_BRANCH: ${{ github.base_ref }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Close inactive issues and PRs
2+
on:
3+
schedule:
4+
- cron: "30 1 * * *"
5+
6+
jobs:
7+
close-issues:
8+
runs-on: ubuntu-22.04
9+
permissions:
10+
issues: write
11+
pull-requests: write
12+
steps:
13+
- uses: actions/stale@v9
14+
with:
15+
days-before-issue-stale: 90
16+
days-before-issue-close: 14
17+
stale-issue-label: "stale"
18+
stale-issue-message: "This issue is stale because it has been open for 90 days with no activity."
19+
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
20+
exempt-issue-labels: 'to-fix'
21+
days-before-pr-stale: 90
22+
days-before-pr-close: 14
23+
stale-pr-label: "stale"
24+
stale-pr-message: "This PR is stale because it has been open for 90 days with no activity."
25+
close-pr-message: "This PR was closed because it has been inactive for 14 days since being marked as stale."
26+
exempt-pr-labels: 'awaiting-approval,work-in-progress'
27+
repo-token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)