|
4 | 4 |
|
5 | 5 | Use semantic version tags: `vX.Y.Z`. |
6 | 6 |
|
7 | | -## Build and Validate |
| 7 | +## Local Validation |
8 | 8 |
|
9 | 9 | 1. Clean old artifacts. |
10 | 10 | - `rm -rf dist/` |
11 | | -2. Build distributions. |
12 | | - - `uv build` |
13 | | -3. Validate metadata and artifacts. |
14 | | - - `uvx --from twine twine check dist/*` |
15 | | -4. Smoke test wheel in a clean environment. |
| 11 | +2. Build and validate the source distribution. |
| 12 | + - `uv build --sdist --no-sources` |
| 13 | +3. Validate sdist metadata. |
| 14 | + - `uvx --from twine twine check dist/*.tar.gz` |
| 15 | +4. Smoke test the sdist install path. |
| 16 | + - `uv run --isolated --no-project --with dist/*.tar.gz tests/smoke_test.py` |
| 17 | +5. Optionally validate a local single-interpreter wheel. |
| 18 | + - `uv build --wheel --python 3.12 --no-sources` |
| 19 | +6. Smoke test wheel in a clean environment. |
16 | 20 | - Install wheel from `dist/` |
17 | 21 | - Import `rapidobj` |
18 | 22 | - Parse a small `.obj` file and assert `result.ok` |
19 | 23 |
|
| 24 | +## GitHub CI |
| 25 | + |
| 26 | +1. Pull requests run: |
| 27 | + - `pyright` |
| 28 | + - `sdist` build and smoke test |
| 29 | + - Linux and Windows wheel builds for CPython `3.12`, `3.13`, and `3.14` |
| 30 | +2. Version tags (`vX.Y.Z`) run the release workflow: |
| 31 | + - build the `sdist` |
| 32 | + - build Linux and Windows wheel artifacts |
| 33 | + - run metadata checks and smoke tests |
| 34 | + - upload artifacts to GitHub Actions |
| 35 | + |
20 | 36 | ## GitHub Source Release |
21 | 37 |
|
22 | 38 | 1. Push commit to `main`. |
23 | 39 | 2. Create and push tag. |
24 | 40 | - `git tag vX.Y.Z` |
25 | 41 | - `git push origin vX.Y.Z` |
26 | | -3. Create GitHub release from the tag and include changelog notes. |
| 42 | +3. Wait for the release workflow to finish and download the generated artifacts if needed. |
| 43 | +4. Create GitHub release from the tag and include changelog notes. |
27 | 44 |
|
28 | 45 | ## PyPI Publish |
29 | 46 |
|
30 | | -1. Upload validated artifacts: |
| 47 | +1. Upload validated artifacts from the GitHub release workflow: |
31 | 48 | - `uvx --from twine twine upload dist/*` |
32 | 49 | 2. Verify package page metadata and install command. |
0 commit comments