Manual tests to run before releasing. Cover both platforms and both install modes.
Run from the repository root.
rm -rf /tmp/mp-test./install.sh --prefix /tmp/mp-test --python 3.10 \
--uv-env TEST_UV --python-env TEST_PYTHONExpect:
- uv downloaded (or skipped if already current)
- venv created using system Python if a matching version exists, otherwise uv-managed
distro.tomlcontainsisolated = falseenv.shcontainsexport PATH=...(system python found → shadow warning; no system python → silently added)
grep -A7 '^\[install\]' /tmp/mp-test/distro.toml
cat /tmp/mp-test/env.shrm -rf /tmp/mp-test
./install.sh --prefix /tmp/mp-test --python 3.10 \
--uv-env TEST_UV --python-env TEST_PYTHON --isolatedExpect:
- uv downloads a managed Python regardless of what's on the system
distro.tomlcontainsisolated = trueenv.shalways containsexport PATH=...with note--isolated: always adding bin/ to PATHvenv/bin/pythonis a uv-managed build (not/usr/bin/python*)
grep -A7 '^\[install\]' /tmp/mp-test/distro.toml
cat /tmp/mp-test/env.sh
/tmp/mp-test/venv/bin/python --version./install.sh --prefix /tmp/mp-test --python 3.10 \
--uv-env TEST_UV --python-env TEST_PYTHON --isolatedExpect:
✓ uv X.Y.Z(skipped, already current)✓ venv already exists(skipped)- env files regenerated cleanly
./install.sh --prefix /tmp/mp-test --min-python 3.10 \
--uv-env TEST_UV --python-env TEST_PYTHONExpect: exits with ERROR: --python is required
Run from the directory containing install.ps1 (extracted release ZIP or repo root).
Remove-Item -Recurse -Force C:\Users\Quickemu\temp\mp-test -ErrorAction SilentlyContinue.\install.ps1 -Prefix "C:\Users\Quickemu\temp\mp-test" -Python "3.10" `
-UvEnv "TEST_UV" -PythonEnv "TEST_PYTHON"
Get-Content C:\Users\Quickemu\temp\mp-test\distro.toml
Get-Content C:\Users\Quickemu\temp\mp-test\env.ps1Expect: isolated = false in distro.toml; PATH added only if no system python/uv found.
Remove-Item -Recurse -Force C:\Users\Quickemu\temp\mp-test
.\install.ps1 -Prefix "C:\Users\Quickemu\temp\mp-test" -Python "3.10" `
-UvEnv "TEST_UV" -PythonEnv "TEST_PYTHON" -Isolated
Get-Content C:\Users\Quickemu\temp\mp-test\distro.toml
Get-Content C:\Users\Quickemu\temp\mp-test\env.ps1
& "C:\Users\Quickemu\temp\mp-test\venv\Scripts\python.exe" --versionExpect: isolated = true; PATH always added; python.exe is uv-managed.
.\install.ps1 -Prefix "C:\Users\Quickemu\temp\mp-test" -Python "3.10" `
-UvEnv "TEST_UV" -PythonEnv "TEST_PYTHON" -IsolatedExpect: uv and venv skipped; env files regenerated.
.\install.ps1 -Prefix "C:\Users\Quickemu\temp\mp-test" -MinPython "3.10" `
-UvEnv "TEST_UV" -PythonEnv "TEST_PYTHON"Expect: PowerShell parameter binding error — -MinPython is not a recognised parameter.
To test the actual published artifact rather than the working tree:
# Linux / macOS
gh release download vX.Y.Z --repo redmatter/managed-python \
--pattern "managed-python-vX.Y.Z.zip" --dir /tmp
unzip /tmp/managed-python-vX.Y.Z.zip -d /tmp/managed-python-vX.Y.Z
cd /tmp/managed-python-vX.Y.Z
# then run tests above# Windows
gh release download vX.Y.Z --repo redmatter/managed-python `
--pattern "managed-python-vX.Y.Z.zip" `
--dir C:\Users\Quickemu\temp
Expand-Archive C:\Users\Quickemu\temp\managed-python-vX.Y.Z.zip `
-DestinationPath C:\Users\Quickemu\temp\managed-python-vX.Y.Z -Force
cd C:\Users\Quickemu\temp\managed-python-vX.Y.Z
# then run tests above