openodd-py 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openodd_py-0.2.2/.gitattributes +4 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/.github/workflows/ci.yml +16 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/.github/workflows/release.yml +27 -4
- {openodd_py-0.2.1 → openodd_py-0.2.2}/Cargo.lock +1 -1
- {openodd_py-0.2.1 → openodd_py-0.2.2}/Cargo.toml +1 -1
- {openodd_py-0.2.1 → openodd_py-0.2.2}/PKG-INFO +2 -2
- {openodd_py-0.2.1 → openodd_py-0.2.2}/README.md +1 -1
- {openodd_py-0.2.1 → openodd_py-0.2.2}/.github/workflows/release-label.yml +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/.gitignore +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/LICENSE +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/NOTICE +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/docs/versioning.md +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/pyproject.toml +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/__init__.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/_core.pyi +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/backend.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/items.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/loader.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/model.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/odds/default/default.binding.yaml +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/odds/default/default.yaml +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/py.typed +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/report.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/sampler.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/sources.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/error.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/items.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/lib.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/loader.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/model.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/python.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/report.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/sampler.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/sources.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/transmission.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/units.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/value.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/src/yaml.rs +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/cases.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/compare.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/difftest_probes.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/report_run.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/run.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/test_api.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/test_differential.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/test_sampling.py +0 -0
- {openodd_py-0.2.1 → openodd_py-0.2.2}/tools/bump_version.py +0 -0
|
@@ -33,3 +33,19 @@ jobs:
|
|
|
33
33
|
- run: uv venv && uv pip install maturin pytest hypothesis pyyaml
|
|
34
34
|
- run: uv run --no-project maturin develop
|
|
35
35
|
- run: uv run --no-project pytest -q
|
|
36
|
+
|
|
37
|
+
# The Rust tests and the Python suite on Windows, once: abi3 means one interpreter
|
|
38
|
+
# covers the wheel, and the Linux matrix already spans the Python versions.
|
|
39
|
+
windows:
|
|
40
|
+
runs-on: windows-latest
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v4
|
|
43
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
44
|
+
- uses: Swatinem/rust-cache@v2
|
|
45
|
+
- uses: astral-sh/setup-uv@v6
|
|
46
|
+
with:
|
|
47
|
+
python-version: "3.12"
|
|
48
|
+
- run: cargo test
|
|
49
|
+
- run: uv venv && uv pip install maturin pytest hypothesis pyyaml
|
|
50
|
+
- run: uv run --no-project maturin develop
|
|
51
|
+
- run: uv run --no-project pytest -q
|
|
@@ -202,10 +202,29 @@ jobs:
|
|
|
202
202
|
- run: uv run --no-project maturin develop
|
|
203
203
|
- run: uv run --no-project pytest -q
|
|
204
204
|
|
|
205
|
+
# The same tests on Windows, which the Linux job cannot speak for.
|
|
206
|
+
verify-windows:
|
|
207
|
+
name: test the tagged commit (windows)
|
|
208
|
+
needs: [resolve]
|
|
209
|
+
if: ${{ !cancelled() && needs.resolve.result == 'success' && needs.resolve.outputs.proceed == 'true' }}
|
|
210
|
+
runs-on: windows-latest
|
|
211
|
+
steps:
|
|
212
|
+
- uses: actions/checkout@v4
|
|
213
|
+
with:
|
|
214
|
+
ref: ${{ needs.resolve.outputs.ref }}
|
|
215
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
216
|
+
- uses: astral-sh/setup-uv@v6
|
|
217
|
+
with:
|
|
218
|
+
python-version: "3.12"
|
|
219
|
+
- run: cargo test --locked
|
|
220
|
+
- run: uv venv && uv pip install maturin pytest hypothesis pyyaml
|
|
221
|
+
- run: uv run --no-project maturin develop
|
|
222
|
+
- run: uv run --no-project pytest -q
|
|
223
|
+
|
|
205
224
|
wheels:
|
|
206
225
|
name: wheel (${{ matrix.os }} ${{ matrix.target }})
|
|
207
|
-
needs: [resolve, verify]
|
|
208
|
-
if: ${{ !cancelled() && needs.verify.result == 'success' }}
|
|
226
|
+
needs: [resolve, verify, verify-windows]
|
|
227
|
+
if: ${{ !cancelled() && needs.verify.result == 'success' && needs.verify-windows.result == 'success' }}
|
|
209
228
|
runs-on: ${{ matrix.runner }}
|
|
210
229
|
strategy:
|
|
211
230
|
matrix:
|
|
@@ -215,12 +234,13 @@ jobs:
|
|
|
215
234
|
- { os: linux, runner: ubuntu-latest, target: x86_64 }
|
|
216
235
|
- { os: linux, runner: ubuntu-24.04-arm, target: aarch64 }
|
|
217
236
|
- { os: macos, runner: macos-latest, target: universal2-apple-darwin }
|
|
237
|
+
- { os: windows, runner: windows-latest, target: x64 }
|
|
218
238
|
steps:
|
|
219
239
|
- uses: actions/checkout@v4
|
|
220
240
|
with:
|
|
221
241
|
ref: ${{ needs.resolve.outputs.ref }}
|
|
222
242
|
# abi3-py310, so one wheel per platform serves every Python 3.10+.
|
|
223
|
-
# `manylinux` is ignored on macOS.
|
|
243
|
+
# `manylinux` is ignored on macOS and Windows.
|
|
224
244
|
- uses: PyO3/maturin-action@v1
|
|
225
245
|
with:
|
|
226
246
|
target: ${{ matrix.target }}
|
|
@@ -230,13 +250,16 @@ jobs:
|
|
|
230
250
|
# rebuild of the same sources.
|
|
231
251
|
- uses: astral-sh/setup-uv@v6
|
|
232
252
|
- name: test the wheel that is about to be published
|
|
253
|
+
shell: bash
|
|
233
254
|
run: |
|
|
234
255
|
uv venv --python 3.12 "$RUNNER_TEMP/fresh"
|
|
235
256
|
uv pip install --python "$RUNNER_TEMP/fresh" dist/*.whl pytest hypothesis pyyaml
|
|
257
|
+
PY="$RUNNER_TEMP/fresh/bin/python"
|
|
258
|
+
[ -x "$PY" ] || PY="$RUNNER_TEMP/fresh/Scripts/python"
|
|
236
259
|
# Run from a directory without python/openodd, so the installed wheel is
|
|
237
260
|
# what gets imported.
|
|
238
261
|
cp -r tests "$RUNNER_TEMP/tests"
|
|
239
|
-
cd "$RUNNER_TEMP" && "$
|
|
262
|
+
cd "$RUNNER_TEMP" && "$PY" -m pytest tests -q
|
|
240
263
|
- uses: actions/upload-artifact@v4
|
|
241
264
|
with:
|
|
242
265
|
name: wheel-${{ matrix.os }}-${{ matrix.target }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openodd-py
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
|
6
6
|
Classifier: Topic :: Scientific/Engineering
|
|
@@ -59,7 +59,7 @@ Releases are cut by labels, as in simple_lanelet2. Put exactly one of
|
|
|
59
59
|
`main`, the [release workflow](.github/workflows/release.yml) bumps the version in
|
|
60
60
|
`Cargo.toml` and `Cargo.lock` with `tools/bump_version.py`, commits
|
|
61
61
|
`chore(release): vX.Y.Z` and tags it, runs the tests again, builds the wheels (Linux
|
|
62
|
-
x86_64/aarch64, macOS universal2) and the sdist, tests each wheel, and attaches them to a
|
|
62
|
+
x86_64/aarch64, macOS universal2, Windows x64) and the sdist, tests each wheel, and attaches them to a
|
|
63
63
|
GitHub release with generated notes, and publishes them to PyPI with Trusted
|
|
64
64
|
Publishing. A PR without a label releases nothing. The
|
|
65
65
|
[release label check](.github/workflows/release-label.yml) runs on every PR: it creates any missing `release:*` label, fails if the PR carries more than one, and
|
|
@@ -44,7 +44,7 @@ Releases are cut by labels, as in simple_lanelet2. Put exactly one of
|
|
|
44
44
|
`main`, the [release workflow](.github/workflows/release.yml) bumps the version in
|
|
45
45
|
`Cargo.toml` and `Cargo.lock` with `tools/bump_version.py`, commits
|
|
46
46
|
`chore(release): vX.Y.Z` and tags it, runs the tests again, builds the wheels (Linux
|
|
47
|
-
x86_64/aarch64, macOS universal2) and the sdist, tests each wheel, and attaches them to a
|
|
47
|
+
x86_64/aarch64, macOS universal2, Windows x64) and the sdist, tests each wheel, and attaches them to a
|
|
48
48
|
GitHub release with generated notes, and publishes them to PyPI with Trusted
|
|
49
49
|
Publishing. A PR without a label releases nothing. The
|
|
50
50
|
[release label check](.github/workflows/release-label.yml) runs on every PR: it creates any missing `release:*` label, fails if the PR carries more than one, and
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|