This lists the most important changes for each release.
- Support for Python 3.12
- Compatibility with junit-xml >= 2.0.
- Python 3.6 to 3.8 are no longer supported. They likely still works but we will no longer run CI against it.
- Compatibility with junit-xml < 1.9. Junit-xml 1.9 was released more than three years ago.
- Support using VCS URLs in requirements files.
- Building wheels for packages like
zope-event
that normalise the project name using dots instead of underscores is no longer broken.
- Python 3.10 and 3.11 are now supported.
- Improved performance of checking for already built packages.
- Dropped support for running tests via setup.py test. The mechanism is considered deprecated by upstream and removing it allows us to drop a dependency.
- Python 3.6 is no longer supported. It likely still works but we will no longer run CI against it.
- Provide compatibility with pip 21.3 and above which drops the --build-directory option. Pip has been using a temporary directory for builds since version 1.2 so manual handling of this directory should not be necessary anymore.
- Adhere to case-insensivity when comparing package names. This will lead to blacklisting 'cython' vs. 'Cython' being the same thing.
- Remove dependency on the internal
wheel
API. This blocked the use ofwheel
versions >= 0.32.
- Python 2 is no longer supported.
- Python 3.5 is no longer supported.
- Correctly specify the dependency to Wheel to avoid the latest, incompatible versions.
- Python 3.3 and Python 3.4 are no longer supported.
- Properly handle non-ASCII characters in the output of failed package builds. Previous versions used to crash in this case if a JUnit XML output file was requested.
- The command line parameter
--batch
can be used to disable any prompts.
- The way credentials are passed has been changed in an incompatible way.
The positional arguments for user and password no longer exist.
Instead, use one of the following:
- Pass the credentials via
--user
and--password
command line arguments. - Pass the credentials via the environment variables
DEVPI_USER
andDEVPI_PASSWORD
. - Answer the interactive prompt for user and password. This is only possible if
--batch
is not used.
- Pass the credentials via
- Improved performance if a blacklist is used.
- The command line parameter
--run-id
allows to specify a run identifier that will be added to each entry in the generated JUnit XML.
- Changelog is now in the format suggested by Keep-a-CHANGELOG.
- Capture build errors for better output in case of build failures. Thanks Travis Mehlinger.
- Support for client certificates. Thanks Hans Lawrenz.
- Compatibility with pip >= 8.0 by relying on pip's default download cache mechanism instead of explicitly requiring a download cache. This effectively disables caching for people still using pip < 6.0. Thanks Christian Stefanescu.
- Support for dry-running the wheel build without changing the devpi server state.
- Python 3.5 is now officially supported.
- Python 3.2 is no longer supported.
- Use devpi-plumber instead of a custom devpi wrapper.
- Check the blacklist first when deciding whether to build a package.
- Only consider a package to exist if it is a wheel and it is compatible with the current system. Thanks Michael Still and David Szotten
- The source distribution now properly contains a README.md. Thanks Mikhail Lukyanchenko.
- Support for special-case handling of pure python wheels
- Optional support for reporting skipped packages in a JUnit-compatible XML
- Python 3 support
- Fixed crash if a built wheel could cannot be found (because pip<=1.5.2 skipped it).
- Support for package blacklisting to never build certain wheels.
- build as many packages as possible. Do not stop if one fails.
- Build a list of packages and upload them to a Devpi index