Maintenance

This page documents what needs to be updated in various maintenance scenarios.

Python Version Added or Removed

When adding or removing a supported Python version, update the following:

File

What to update

.github/workflows/ci-lint.yaml

MIN_IOS_PY_VERSION

.github/workflows/ci-ifcopenshell-python-pypi.yml

pyver matrix

.github/workflows/ci-ifcopenshell-python.yml

pyver matrix

nix/build-all.py

PYTHON_VERSIONS list

src/bsdd/pyproject.toml

requires-python

src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst

add or remove the row in the ZIP packages table

src/ifcopenshell-python/Makefile

SUPPORTED_PYVERSIONS

src/ifcopenshell-python/pyproject.toml

requires-python

src/ifcopenshell-python/test/test_package.py

SUPPORTED_PY_VERSIONS tuple

win/build-all-win.py

PYTHON_VERSIONS list

Blender Version Updated

When a new Blender version is released and supported:

File

What to update

.github/workflows/ci-bonsai.yml

pyver matrix

.github/workflows/ci-bonsai-daily.yml

Blender download URL

Blender’s Bundled Python Version Updated

When Blender ships with a new Python version:

File

What to update

.github/workflows/ci-lint.yaml

MIN_BLENDER_PY_VERSION

.github/scripts/publish-bonsai-releases.py

CURRENT_PYTHON_VERSION

src/bonsai/Makefile

SUPPORTED_PYVERSIONS

src/bonsai/scripts/dev_environment.py

PYTHON_VERSION mapping (Blender version, bundled Python version)

Release

Notes:

  • Typically all packages are released at once using the same version schema

  • The README.md badges can serve as a visual reference for what versions have been released

  • Corrective Release (if needed after a standard release):

    • Create a new branch from the release tag (e.g., from the ifcopenshell-0.8.5 tag)

    • Update VERSION with the -post1 suffix (e.g., 0.8.5-post1, not .post1)

    • The hyphen is required for semantic versioning compliance; Blender will not process .post1 suffixes correctly

    • Follow the standard release process for the corrective version

  • Multiple Blender Python Versions:

    • Blender does not allow multiple builds for the same platform with different Python versions (e.g., cannot have both bonsai_py311-0.8.5-windows-x64.zip and bonsai_py313-0.8.5-windows-x64.zip)

    • Workaround: publish different Python versions as different extension versions (e.g., py313 as 0.8.5 and py311 as 0.8.5-post1)

    • Set the maximum Blender version on the Blender extensions platform UI to prevent conflicts (e.g., set max version 5.1.0 for 0.8.5-post1, which restricts it to versions below 5.1.0)

Things to update:

  • .github/workflows/ci-bcf-pypi.yml - release bcf-client to PyPI

  • .github/workflows/ci-bonsai.yml - release bonsai in GitHub releases

  • .github/workflows/ci-bsdd-pypi.yaml - release bsdd to PyPI

  • .github/workflows/ci-ifc4d-pypi.yaml - release ifc4d to PyPI

  • .github/workflows/ci-ifc5d-pypi.yaml - release ifc5d to PyPI

  • .github/workflows/ci-ifcclash-pypi.yaml - release ifcclash to PyPI

  • .github/workflows/ci-ifcconvert.yml - release ifcconvert binaries in GitHub releases

  • .github/workflows/ci-ifccsv-pypi.yaml - release ifccsv to PyPI

  • .github/workflows/ci-ifcdiff-pypi.yaml - release ifcdiff to PyPI

  • .github/workflows/ci-ifcedit-pypi.yaml - release ifcedit to PyPI

  • .github/workflows/ci-ifcfm-pypi.yaml - release ifcfm to PyPI

  • .github/workflows/ci-ifccityjson-pypi.yaml - release ifccityjson to PyPI

  • .github/workflows/ci-ifcmcp-pypi.yaml - release ifcopenshell-mcp to PyPI

  • .github/workflows/ci-ifcopenshell-python.yml - release ifcopenshell-python binaries in GitHub releases

  • .github/workflows/ci-ifcopenshell-python-pypi.yml - release ifcopenshell wheels to PyPI

  • .github/workflows/ci-ifcpatch-pypi.yaml - release ifcpatch to PyPI

  • .github/workflows/ci-ifcquery-pypi.yaml - release ifcquery to PyPI

  • .github/workflows/ci-ifcsverchok.yml - release ifcsverchok Blender add-on in GitHub releases

  • .github/workflows/ci-ifctester-pypi.yml - release ifctester to PyPI

  • .github/workflows/ci-pyodide-wasm-release.yml - release pyodide wasm wheel to wasm-wheels

  • .github/workflows/publish-bonsai-releases.yml - publish Bonsai Blender extension to Blender extensions platform

    • ❗ Requires BLENDER_EXTENSIONS_TOKEN secret to be set - ❗ not yet configured

  • Publishing documentation and websites (see website repository):

  • VERSION to the release version - UPDATE THIS LAST as all workflows above typically depend on it to set the version correctly