=============================================================================
devpi-server: server for private package indexes and PyPI caching
PyPI cache
You can point pip or easy_install
to the root/pypi/+simple/
index, serving as a transparent cache for pypi-hosted packages.
User specific indexes
Each user (which can represent a person, project or team) can have
multiple indexes and upload packages and docs via standard twine
or
setup.py
invocations. Users and indexes can be manipulated through
devpi-client
_ and a RESTful HTTP API.
Index inheritance
Each index can be configured to merge in other indexes so that it serves
both its uploads and all releases from other index(es). For example, an
index using root/pypi
as a parent is a good place to test out a
release candidate before you push it to PyPI.
Good defaults and easy deployment
Get started easily and create a permanent devpi-server deployment
including pre-configured templates for nginx
and process managers.
Separate tool for Packaging/Testing activities
The complementary devpi-client
_ tool
helps to manage users, indexes, logins and typical setup.py-based upload and
installation workflows.
See https://doc.devpi.net on how to get started and further documentation.
.. _devpi-client: https://pypi.org/project/devpi-client/
Support
If you find a bug, use the issue tracker at Github
_.
For general questions use GitHub Discussions
_ or the devpi-dev@python.org mailing list
_.
For support contracts and paid help contact mail at pyfidelity.com
.
.. _issue tracker at Github: https://github.com/devpi/devpi/issues/
.. _devpi-dev@python.org mailing list: https://mail.python.org/mailman3/lists/devpi-dev.python.org/
.. _GitHub Discussions: https://github.com/devpi/devpi/discussions
=========
Changelog
.. towncrier release notes start
6.14.0 (2024-10-16)
Features
-
Allow pushing of versions which only have documentation and no releases.
-
Allow pushing of release files only with no documentation. Requires devpi-client 7.2.0.
-
Allow pushing of documentation only with no release files. Requires devpi-client 7.2.0.
Bug Fixes
- No longer automatically "register" a project when pushing releases to PyPI. The reply changed from HTTP status 410 to 400 breaking the upload. With devpi-client 7.2.0 there is a
--register-project
option if it is still required for some other package registry.
6.13.0 (2024-09-19)
Deprecations and Removals
- Remove/Deprecate "master" related terminology in favor of "primary".
Usage related changes are the switch to
--primary-url
instead of --master-url
and --role=primary
instead of --role=master
.
Using the old terms will now output warnings.
The +status
API has additional fields and the role
field content will change with 7.0.0.
Features
Bug Fixes
-
Don't report on lagging event processing while replicating.
-
Report primary serial correctly with streaming replication.
-
Don't store file data in memory when fetching a release while pushing from a mirror.
-
Only warn about replica not being in sync instead of fatal status while still replicating.
6.12.1 (2024-07-24)
Bug Fixes
-
Support Python 3.13 by depending on legacy-cgi.
-
Preserve query string when proxying requests from replica to primary. This fixes force removal on non-volatile indexes and probably other bugs.
-
Fix #1044: Correctly update cache expiry time when mirrored server returns 304 Not Modified.
6.12.0 (2024-06-25)
Features
-
Added devpiserver_on_toxresult_store
hook to allow blocking or skipping a toxresult upload on more specific conditions as acl_toxresult_upload
would allow.
-
Added devpiserver_on_toxresult_upload_forbidden
hook to allow returning a custom message and result (403 or 200).
Bug Fixes
- Return json data if toxresult upload is forbidden.
6.11.0 (2024-04-20)
Features
Bug Fixes