reorganized build directory

This commit is contained in:
ykcheungab
2026-08-03 22:14:19 +08:00
parent 4acdce4456
commit 9a69f01278
43 changed files with 833 additions and 356 deletions
+23 -19
View File
@@ -40,35 +40,35 @@ docker run --rm hello-world
## Build manylinux wheels (3.10 / 3.11 / 3.12)
From the repository root. Prefer PowerShell, or from **cmd.exe**:
From the repository root:
```bat
powershell -ExecutionPolicy Bypass -File .\build\build_manylinux_docker.ps1
```bash
python build/run.py manylinux
```
PowerShell:
Or call the Docker helper directly:
```powershell
.\build\build_manylinux_docker.ps1
.\build\wheel\docker\run.ps1
```
Default builds **all three** ABIs. To build a subset:
```powershell
.\build\build_manylinux_docker.ps1 -PythonVersions 3.10,3.12
.\build\build_manylinux_docker.ps1 -PythonVersions 3.11
python build/run.py manylinux -PythonVersions 3.10,3.12
python build/run.py manylinux -PythonVersions 3.11
```
What this does:
1. Builds `orisys-manylinux` from [`build/Dockerfile.manylinux`](../build/Dockerfile.manylinux)
1. Builds `orisys-manylinux` from [`build/wheel/docker/Dockerfile.manylinux`](../build/wheel/docker/Dockerfile.manylinux)
(`quay.io/pypa/manylinux_2_28_x86_64` with Nuitka/auditwheel in cp310/cp311/cp312).
2. Runs [`build/manylinux_entrypoint.sh`](../build/manylinux_entrypoint.sh), which loops:
2. Runs [`build/wheel/docker/entrypoint.sh`](../build/wheel/docker/entrypoint.sh), which loops:
```bash
/opt/python/cp310-cp310/bin/python build/build_nuitka.py --target pypi-linux
/opt/python/cp311-cp311/bin/python build/build_nuitka.py --target pypi-linux
/opt/python/cp312-cp312/bin/python build/build_nuitka.py --target pypi-linux
/opt/python/cp310-cp310/bin/python build/wheel/build.py --target pypi-linux
/opt/python/cp311-cp311/bin/python build/wheel/build.py --target pypi-linux
/opt/python/cp312-cp312/bin/python build/wheel/build.py --target pypi-linux
```
3. For each ABI: Nuitka compile → wheel → `auditwheel repair` → isolated smoke test.
@@ -82,13 +82,13 @@ Expect roughly **3×** the wall time of a single-ABI build.
Rebuild without refreshing the image:
```powershell
.\build\build_manylinux_docker.ps1 -SkipImageBuild
python build/run.py manylinux -SkipImageBuild
```
Equivalent manual `docker` invocation:
```powershell
docker build -f build/Dockerfile.manylinux -t orisys-manylinux .
docker build -f build/wheel/docker/Dockerfile.manylinux -t orisys-manylinux .
docker run --rm `
-e ORISYS_BUILD_TARGET=pypi-linux `
-e ORISYS_PYTHON_TAGS=cp310-cp310,cp311-cp311,cp312-cp312 `
@@ -106,7 +106,7 @@ docker run --rm `
Optional re-verify on a Linux machine:
```bash
python build/verify.py dist/repaired/orisys-*-cp310-cp310-manylinux_*.whl
python build/run.py verify dist/repaired/orisys-*-cp310-cp310-manylinux_*.whl
```
## Promote: TestPyPI then PyPI
@@ -157,11 +157,15 @@ are not stored on developer machines.
| Command | Purpose |
|---------|---------|
| `python build/build_nuitka.py` | Internal SDK wheel on the current host (Windows `.pyd` or Linux `.so`) |
| `python build/build_nuitka.py --target pypi-linux` | Linux-only; requires manylinux + CPython 3.10–3.12 |
| `.\build\build_nuitka_win.bat` | Windows wheels for py310/py311/py312 conda envs |
| `.\build\build_manylinux_docker.ps1` | Linux manylinux wheels for 3.10/3.11/3.12 via Docker |
| `python build/run.py wheel` | Preferred wheel builder launcher |
| `python build/wheel/build.py` | Direct wheel builder (current host) |
| `python build/run.py wheel --target pypi-linux` | Linux-only; requires manylinux + CPython 3.10–3.12 |
| `python build/run.py wheel-win` | Windows wheels for py310/py311/py312 conda envs |
| `python build/run.py manylinux` | manylinux Docker runner |
| `python build/run.py gui finger` | ORY-FINGER standalone GUI |
| `python -m build` | Pure-Python / sdist path from `pyproject.toml` (no Nuitka) |
See also [`build/README.md`](../build/README.md) for the target-oriented layout.
Windows binary wheels and Linux manylinux wheels must be built on their respective
platforms. Never rename a platform tag to bypass PyPI validation.