PyMeshGen now treats Python packaging as the primary release path:
- build
sdist+wheel - validate the distributions
- publish to PyPI
- keep Windows executable packaging as an optional secondary path
For most users, the intended installation target is:
pip install pymeshgenOptional extras:
pip install "pymeshgen[ml]"
pip install "pymeshgen[occ]"python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*Artifacts are written to dist/:
| File | Description |
|---|---|
dist/pymeshgen-<version>.tar.gz |
Source distribution |
dist/pymeshgen-<version>-py3-none-any.whl |
Wheel |
Versioning is sourced from the repository VERSION file. Update VERSION before creating a release tag.
This repository now includes:
.github/workflows/python-package.yml— builds and validates the Python package on push / pull request.github/workflows/publish-pypi.yml— publishes to TestPyPI or PyPI through GitHub Actions
In PyPI and TestPyPI, configure a Trusted Publisher for this repository:
- Owner:
cfd-dev - Repository:
PyMeshGen - Workflow:
publish-pypi.yml - Environment:
testpypifor TestPyPIpypifor PyPI
After that:
- Manual TestPyPI publish: run the
Publish Python packageworkflow withrepository = testpypi - Official PyPI publish: create a GitHub Release from a version tag such as
v1.0.1
- Update
VERSION - Commit changes
- Tag the release
git tag v1.0.1 git push origin master --tags
- Draft / publish the GitHub Release
- GitHub Actions publishes the wheel and sdist to PyPI
If you need to publish from a local machine instead of GitHub Actions:
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
python -m twine upload dist/*For TestPyPI:
python -m twine upload --repository testpypi dist/*If you use a local .pypirc, keep it out of the repository. .gitignore already excludes it.
pip install pymeshgen
pymeshgen --case ".\config\30p30n.json"pip install pymeshgen
pymeshgen-guiFor geometry import/export and neural/ML workflows, install optional dependencies separately:
pip install -r requirements-optional.txtGUI usage still depends on GUI/runtime dependencies such as PyQt5 and vtk. Geometry import/export additionally depends on pythonocc-core.
Windows executable packaging is still available, but it is no longer the primary distribution mechanism.
python packaging\windows\build_app.py
python packaging\windows\build_app.py --allTypical outputs:
| File | Location |
|---|---|
| Executable | dist/PyMeshGen.exe |
| Portable ZIP | releases/PyMeshGen-v*.zip |
| Windows installer | installer/PyMeshGen-Setup-*.exe |
This path depends on a fully prepared local Python environment plus PyInstaller, and is best treated as an optional desktop-delivery workflow rather than the main release channel.
The optional Windows packaging files now live under packaging/windows/:
packaging/windows/build_app.pypackaging/windows/build.batpackaging/windows/PyMeshGen.specpackaging/windows/PyMeshGen.iss
You can also invoke the optional Windows wrapper directly:
packaging\windows\build.bat