Upgrade Guide#
This guide describes the breaking changes between major versions.
From main to 2.x#
Test matrix#
You can now define the combinations of Plone versions and Python versions to be tested.
plone.meta provides a default combination (the same as used by Plone itself), but it can be overridden in .meta.toml:
[tox]
test_matrix = {"6.2" = ["3.14", "3.11"], "6.1" = ["3.13", "3.12", "3.11", "3.10"]}
This generates the necessary tox environments and the GitHub Actions that run on each pull request.
Tip
plone.meta tries to be a bit more environmentally friendly.
On GitHub, only the first and last Python versions are added for testing.
Constraints#
The constraints_file option in .meta.toml’s [tox] table was renamed to constraints_files, and the type of its value was changed from a string to a dictionary.
This option continues to be optional.
The dictionary keys must be Plone versions, and each key’s value must be the constraints file for that Plone version.
[tox]
# OLD
constraints_file = "https://example.org/my-custom-constraints.txt"
# NEW
constraints_files = {"6.2" = "https://example.org/constraints.6.2.txt", "6.1" = "https://example.org/constraints.6.1.txt"}
GitHub Actions#
The py_versions option in .meta.toml’s [github] table is deprecated.
Use the new test_matrix option from the [tox] table instead, as plone.meta can now run multiple Python versions from within tox itself.
GitHub variables#
The GitHub variables TEST_OS_VERSIONS and TEST_PYTHON_VERSIONS are deprecated and no longer used.
GitLab images#
The custom_image option in .meta.toml’s [gitlab] table was renamed to custom_images, and the type of its value was changed from a string to a dictionary.
This option continues to be optional.
The dictionary keys must be Python versions, and the values a Docker image for that Python version.
[gitlab]
# OLD
custom_image = "python:3.11-bullseye"
# NEW
custom_images = {"3.14" = "python:3.14-trixie", "3.13" = "python:3.13-trixie"}