Skip to content

Commit c916830

Browse files
committed
merging main branch
2 parents 4a15828 + 8cb5b5d commit c916830

File tree

5,996 files changed

+82029
-455825
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

5,996 files changed

+82029
-455825
lines changed

.github/workflows/bibtex.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
run: python ${{ github.workspace }}/tools/build_config/bibtexUpdate.py --bibtex-input ${{ github.workspace }}/docs/sumo.bib --bibtex-output ${{ github.workspace }}/docs/sumo.bib --cited-works "b1914c912dea62703856d89fe3724675a6139b71" "0e62ded610aeb17cc65f9f7159477e48248a98a2" --min-citations 100 --exclude-media "SUMO Conference Proceedings" "International Conference on Simulation of Urban Mobility" "arXiv.org"
3030

3131
- name: Pull request
32-
uses: peter-evans/create-pull-request@v7
32+
uses: peter-evans/create-pull-request@v8
3333
with:
3434
token: ${{ secrets.GITHUB_TOKEN }}
3535
commit-message: 'Update SUMO bibtex file #13811'
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: cff-validation
2+
3+
on:
4+
push:
5+
paths:
6+
- 'CITATION.cff'
7+
workflow_dispatch:
8+
schedule:
9+
- cron: '5 1 * * *'
10+
11+
jobs:
12+
validate:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Cloning SUMO
17+
uses: actions/checkout@v6
18+
19+
- name: Validate CITATION.cff
20+
uses: dieghernan/cff-validator@v4

.github/workflows/cibuildwheel.yml

Lines changed: 88 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,65 @@ on:
44
push:
55
paths:
66
- '.github/workflows/cibuildwheel.yml'
7-
- 'build_config/*pyproject.toml'
8-
# push: # run on push events
9-
# paths-ignore: # but ignore everything in the docs subfolder
10-
# - 'docs/**'
11-
# - 'src/gui*/**'
12-
# - 'src/netedit/**'
13-
# - 'tests/netedit/**'
14-
# branches:
15-
# - '**'
16-
# tags:
17-
# - '*'
18-
# pull_request: # run on pull requests
19-
# paths-ignore: # but ignore everything in the docs subfolder
20-
# - 'docs/**'
7+
- 'build_config/pyproject/*.toml'
218
workflow_dispatch:
9+
inputs:
10+
os:
11+
type: string
12+
description: "comma separated list of OS"
13+
required: false
14+
workflow_call:
15+
inputs:
16+
os:
17+
type: string
18+
required: false
2219
schedule:
2320
- cron: '25 1 * * *'
2421

2522
jobs:
23+
generate-matrix:
24+
uses: ./.github/workflows/generate-matrix.yml
25+
with:
26+
os: ${{ inputs.os }}
27+
28+
###################
29+
# building pure python wheels
30+
###################
31+
pure-python-wheels:
32+
runs-on: ubuntu-latest
33+
steps:
34+
- name: Cloning SUMO
35+
uses: actions/checkout@v6
36+
with:
37+
fetch-depth: 0
38+
filter: tree:0
39+
# to work around actions/checkout#1467
40+
ref: ${{ github.ref }}
41+
42+
- name: Building sumolib and traci wheels
43+
run: |
44+
python -m pip install build
45+
python tools/build_config/version.py --pep440 build_config/pyproject/sumolib.toml pyproject.toml
46+
python -m build
47+
python tools/build_config/version.py --pep440 build_config/pyproject/traci.toml pyproject.toml
48+
python -m build
49+
50+
- uses: actions/upload-artifact@v6
51+
with:
52+
name: cibw-pure-wheels
53+
path: ./dist/*
54+
55+
###################
56+
# building wheels with cibuildwheel
57+
###################
2658
build-wheels:
27-
name: Build wheels on ${{ matrix.os }}
28-
runs-on: ${{ matrix.os }}
59+
needs: [generate-matrix]
2960
strategy:
3061
fail-fast: false
31-
matrix:
32-
os: [macos-14]
62+
matrix: ${{ fromJSON(needs.generate-matrix.outputs.build_matrix) }}
63+
runs-on: ${{ matrix.os }}
64+
env:
65+
SUMO_LIBRARIES: D:\a\sumo\sumo\SUMOLibraries
3366

3467
steps:
3568
- name: Cloning SUMO
@@ -40,129 +73,78 @@ jobs:
4073
# to work around actions/checkout#1467
4174
ref: ${{ github.ref }}
4275

76+
- name: Cloning SUMO Libraries
77+
if: matrix.os == 'windows-latest'
78+
uses: actions/checkout@v6
79+
with:
80+
repository: DLR-TS/SUMOLibraries
81+
path: SUMOLibraries
82+
83+
- name: "Set up MSVC Developer Command Prompt"
84+
if: matrix.os == 'windows-latest'
85+
uses: compnerd/gha-setup-vsdevenv@v6
86+
4387
- name: ccache
4488
uses: hendrikmuhs/[email protected]
89+
with:
90+
key: ${{ matrix.os }}-${{ matrix.manylinux }}
91+
variant: ${{ matrix.os == 'windows-latest' && 'sccache' || 'ccache' }}
4592

46-
- name: Preparing macos environment
47-
if: matrix.os == 'macos-14'
48-
run: brew update && brew install --cask xquartz && brew install xerces-c fox proj gdal gl2ps googletest fmt swig eigen
93+
- name: Set up Python
94+
uses: actions/setup-python@v6
95+
with:
96+
python-version: '3.12'
4997

5098
- name: Preparing wheel eclipse-sumo
51-
run: python3 tools/build_config/version.py --pep440 build_config/eclipse-sumo-pyproject.toml pyproject.toml
99+
run: python tools/build_config/version.py --pep440 build_config/pyproject/eclipse-sumo.toml pyproject.toml
52100

53101
- name: Building wheel eclipse-sumo
54102
uses: pypa/[email protected]
55103
env:
56-
CIBW_BUILD: cp312-*
104+
CIBW_ENVIRONMENT_LINUX: "CCACHE_DIR=/host/home/runner/work/sumo/sumo/.ccache"
105+
CIBW_ENVIRONMENT_WINDOWS: "CMAKE_GENERATOR=Ninja"
106+
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
107+
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
57108
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
58109
MACOSX_DEPLOYMENT_TARGET: '14.0'
59110

60111
- name: Preparing wheel sumo-data
61-
run: python3 tools/build_config/version.py --pep440 build_config/sumo-data-pyproject.toml pyproject.toml
112+
run: python tools/build_config/version.py --pep440 build_config/pyproject/sumo-data.toml pyproject.toml
62113

63114
- name: Building wheel sumo-data
64115
uses: pypa/[email protected]
65116
env:
66-
CIBW_BUILD: cp312-*
117+
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
118+
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
67119
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
68120
CIBW_REPAIR_WHEEL_COMMAND: "" # disable repair, no relocatable binaries inside
69121
MACOSX_DEPLOYMENT_TARGET: '14.0'
70122

71123
- name: Preparing wheel libsumo
72-
run: python3 tools/build_config/version.py --pep440 build_config/libsumo-pyproject.toml pyproject.toml
124+
run: python tools/build_config/version.py --pep440 build_config/pyproject/libsumo.toml pyproject.toml
73125

74126
- name: Building wheel libsumo
75127
uses: pypa/[email protected]
76128
env:
77-
CIBW_BUILD: cp3*
129+
CIBW_ENVIRONMENT_LINUX: "CCACHE_DIR=/host/home/runner/work/sumo/sumo/.ccache"
130+
CIBW_ENVIRONMENT_WINDOWS: "CMAKE_GENERATOR=Ninja"
131+
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
132+
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
78133
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
79134
# CIBW_REPAIR_WHEEL_COMMAND_MACOS: "" # disable repair process to inspect the wheel
80135
# CIBW_BUILD_VERBOSITY: 2
81136
MACOSX_DEPLOYMENT_TARGET: '14.0'
82137

83-
- uses: actions/upload-artifact@v5
138+
- uses: actions/upload-artifact@v6
84139
with:
85-
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
140+
name: cibw-wheels-${{ matrix.os }}-${{ matrix.manylinux }}
86141
path: ./wheelhouse/*.whl
87142

88143
###################
89144
# testing wheels
90145
###################
91146
test-wheels:
92-
needs: [build-wheels]
93-
strategy:
94-
fail-fast: false
95-
matrix:
96-
os: [macos-14, macos-15]
97-
python_version: [3.9, '3.10', 3.11, 3.12, 3.13, 3.14]
98-
runs-on: ${{ matrix.os }}
99-
100-
steps:
101-
- name: Cloning SUMO
102-
uses: actions/checkout@v6
103-
with:
104-
fetch-depth: 0
105-
filter: tree:0
106-
# to work around actions/checkout#1467
107-
ref: ${{ github.ref }}
108-
109-
- name: Downloading Wheels artifact
110-
uses: actions/download-artifact@v6
111-
with:
112-
path: python-wheels
113-
merge-multiple: true
114-
115-
- name: Configuring Python
116-
uses: actions/setup-python@v6
117-
with:
118-
python-version: ${{ matrix.python_version }}
119-
120-
- name: Installing dependencies
121-
run: brew update && brew install proj
122-
123-
- name: Preparing Python environment
124-
run: |
125-
python3 -m pip install --upgrade pip
126-
python3 -m pip install wheel # need to do this separately because the texttest install wants it
127-
python3 -m pip install texttest
128-
python3 -m pip install -f python-wheels eclipse_sumo
129-
python3 -c "import sumo; print('SUMO_HOME=' + sumo.SUMO_HOME)" >> $GITHUB_ENV
130-
131-
- name: Running "sumo in the wheel" tests
132-
run: |
133-
if [[ "${{ matrix.python_version }}" != "3.12" ]]; then python3 -m pip install -r tools/requirements.txt; fi
134-
tests/runTests.sh -b ci -v ci.fast -a activitygen,duarouter,jtrrouter,marouter,od2trips,polyconvert
135-
136-
- name: Running meta tests and cleaning up
137-
run: |
138-
tests/runTests.sh -b ci -v ci -ts meta
139-
python3 -m pip uninstall -y eclipse-sumo
140-
141-
- name: Building helper wheels
142-
run: |
143-
cd tools
144-
python3 -m pip install build
145-
python3 build_config/version.py build_config/setup-sumolib.py ./setup.py
146-
python3 -m build --wheel
147-
python3 build_config/version.py build_config/setup-traci.py ./setup.py
148-
python3 -m build --wheel
149-
150-
- name: Running libsumo tests
151-
run: |
152-
python3 -m pip install --no-index -f tools/dist sumolib traci
153-
python3 -m pip install --no-index -f python-wheels libsumo
154-
cd tests
155-
texttest -b ci -v ci -a complex.libsumo
156-
157-
- name: Compressing test results
158-
if: failure()
159-
run: |
160-
zip -r texttesttmp.zip ~/.texttest/tmp
161-
162-
- name: Uploading test results
163-
if: failure()
164-
uses: actions/upload-artifact@v5
165-
with:
166-
name: texttesttmp-${{ matrix.python_version }}-${{ matrix.os }}
167-
path: texttesttmp.zip
168-
if-no-files-found: warn
147+
needs: [generate-matrix, pure-python-wheels, build-wheels]
148+
uses: ./.github/workflows/test-wheels.yml
149+
with:
150+
matrix: ${{ fromJSON(needs.generate-matrix.outputs.test_matrix) }}

.github/workflows/documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050

5151
steps:
5252
- name: Use lychee cache
53-
uses: actions/cache@v4
53+
uses: actions/cache@v5
5454
with:
5555
path: .lycheecache
5656
key: cache-lychee-${{ github.sha }}

.github/workflows/draft-pdf.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
paper-path: docs/JOSS/paper.md
2323

2424
- name: Upload
25-
uses: actions/upload-artifact@v5
25+
uses: actions/upload-artifact@v6
2626
with:
2727
name: paper
2828
# This is the output path where Pandoc will write the compiled
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Generate build and test matrix
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
os:
7+
type: string
8+
required: false
9+
outputs:
10+
build_matrix:
11+
value: ${{ jobs.generate-matrix.outputs.build_matrix }}
12+
test_matrix:
13+
value: ${{ jobs.generate-matrix.outputs.test_matrix }}
14+
15+
jobs:
16+
generate-matrix:
17+
runs-on: ubuntu-latest
18+
outputs:
19+
build_matrix: ${{ steps.gen.outputs.build_matrix }}
20+
test_matrix: ${{ steps.gen.outputs.test_matrix }}
21+
steps:
22+
- id: gen
23+
env:
24+
INPUT_OS: ${{ inputs.os }}
25+
shell: python
26+
run: |
27+
import json, os
28+
29+
osl = (os.environ.get('INPUT_OS') or 'macos-14,macos-15,ubuntu-latest,ubuntu-24.04-arm,windows-latest').split(",")
30+
manylinux = ["default", "manylinux2014", "manylinux_2_28"]
31+
python_versions = ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
32+
33+
include_build = []
34+
include_test = []
35+
for osys in osl:
36+
for ml in manylinux:
37+
if (ml == "default") == osys.startswith("ubuntu"):
38+
continue
39+
if osys != "macos-15" or "macos-14" not in osl:
40+
include_build.append({"os": osys, "manylinux": ml})
41+
for py in python_versions:
42+
include_test.append({"os": osys, "manylinux": ml, "python_version": py})
43+
44+
with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
45+
print(f"build_matrix={json.dumps({'include': include_build})}", file=f)
46+
print(f"test_matrix={json.dumps({'include': include_test})}", file=f)

.github/workflows/i18n.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
run: python ${{ github.workspace }}/tools/build_config/i18n.py
2727

2828
- name: Pull request
29-
uses: peter-evans/create-pull-request@v7
29+
uses: peter-evans/create-pull-request@v8
3030
with:
3131
token: ${{ secrets.GITHUB_TOKEN }}
3232
commit-message: 'Update translatable strings ref #11859'

.github/workflows/jupedsim-windows.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
cmake --install jupedsim-build-${{ matrix.build_config }} --config ${{ matrix.build_config }}
7676
7777
- name: Uploading artifacts
78-
uses: actions/upload-artifact@v5
78+
uses: actions/upload-artifact@v6
7979
with:
8080
name: jupedsim-${{ matrix.jps_version }}-${{ matrix.build_config }}
8181
path: jupedsim-install-${{ matrix.build_config }}
@@ -99,7 +99,7 @@ jobs:
9999

100100
- name: Uploading test results
101101
if: failure()
102-
uses: actions/upload-artifact@v5
102+
uses: actions/upload-artifact@v6
103103
with:
104104
name: texttesttmp-${{ matrix.jps_version }}-${{ matrix.build_config }}
105105
path: D:/texttest/tt.zip

0 commit comments

Comments
 (0)