Skip to content

Rename Python package from pysvzerod to svzerod - #249

Merged
chlookaburra merged 1 commit into
SimVascular:masterfrom
chlookaburra:pypi_edits
Oct 10, 2026
Merged

chlookaburra merged 1 commit into
SimVascular:masterfrom
chlookaburra:pypi_edits

Conversation

@chlookaburra

Copy link
Copy Markdown
Contributor

Summary

This renames the Python package so that the PyPI name and the import name are both svzerod:

pip install svzerod
import svzerod
svzerod.simulate("model.json")

pysvzerod was only ever published to TestPyPI, never to pypi.org. Renaming now means the first production release ships under the new name.

Breaking change

Code that uses import pysvzerod has to change to import svzerod. The API itself is unchanged; only the module name is different.

For existing source installs, run pip uninstall pysvzerod, reinstall, and use a fresh CMake build directory. The PYSVZEROD_VERSION CMake cache variable is now SVZEROD_VERSION.

Changes

  • Packaging: the project name and the svzerodsolver/svzerodcalibrator entry points in pyproject.toml, and the extension name in setup.py.
  • Extension module: applications/pysvzerod.cpp is renamed to applications/svzerod.cpp, with PYBIND11_MODULE(svzerod, m). The CMake target is renamed to svzerod, and PYSVZEROD_VERSION is now SVZEROD_VERSION.
  • Release automation:
    • .github/scripts/release_version.py: package index URLs, and the expected metadata name and file names
    • .github/workflows/pypi.yml: sdist glob, release title and path filter
    • .github/scripts/record_release.sh: release commit message
  • Imports: tests, svZeroDTuner and its examples, and svZeroDVisualization.
  • Docs and comments: README, docs/PYPI_RELEASE.md, the developer guide, the visualization page, comments in the workflows, and the profiling container paths.

Before the next release

Trusted publishers registered for pysvzerod don't carry over to the new name. A maintainer needs to add a pending publisher for svzerod on both TestPyPI and PyPI.

Testing

  • Built the sdist and a CPython 3.11 Linux wheel locally: svzerod-3.1.tar.gz and svzerod-3.1-cp311-cp311-linux_x86_64.whl. release_version.py verify-dist passes on both.
  • Installed the wheel in a clean venv. import svzerod works and svzerod.__version__ is "3.1".
  • Ran the wheel smoke tests from pypi.yml:
    • tests/test_solver.py and test_steady_flow_calibration: 40 passed, 2 xfailed. The xfails are the existing mismatched-period cases in EXPECTED_FAILURES.
    • svzerodsolver tests/cases/steadyFlow_R_R.json runs successfully.
  • Not run locally: the full test suite and the macOS, Windows and aarch64 wheels. This PR triggers the pypi.yml wheel builds on every platform, so CI covers those.

Code of Conduct & Contributing Guidelines

🤖 Generated with Claude Code

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@zasexton zasexton left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@chlookaburra
chlookaburra merged commit cbab87f into SimVascular:master Oct 10, 2026
21 checks passed
@chlookaburra
chlookaburra deleted the pypi_edits branch October 10, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants