Metadata-Version: 2.4
Name: devpi-server
Version: 6.15.0
Summary: devpi-server: reliable private and pypi.org caching server
Home-page: https://devpi.net
Maintainer: Florian Schulze
Maintainer-email: mail@pyfidelity.com
License: MIT
Project-URL: Bug Tracker, https://github.com/devpi/devpi/issues
Project-URL: Changelog, https://github.com/devpi/devpi/blob/main/server/CHANGELOG
Project-URL: Documentation, https://doc.devpi.net
Project-URL: Funding, https://github.com/sponsors/devpi
Project-URL: Source Code, https://github.com/devpi/devpi
Keywords: pypi realtime cache server
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.7
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: py>=1.4.23
Requires-Dist: httpx
Requires-Dist: argon2-cffi
Requires-Dist: attrs>=22.2.0
Requires-Dist: defusedxml
Requires-Dist: devpi_common<5,>3.6.0
Requires-Dist: itsdangerous>=0.24
Requires-Dist: legacy-cgi; python_version >= "3.13"
Requires-Dist: platformdirs
Requires-Dist: pyramid>=2
Requires-Dist: waitress>=1.0.1
Requires-Dist: repoze.lru>=0.6
Requires-Dist: passlib[argon2]
Requires-Dist: pluggy<2.0,>=0.6.0
Requires-Dist: ruamel.yaml
Requires-Dist: strictyaml
Requires-Dist: lazy
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

=============================================================================
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.15.0 (2025-05-18)
===================

Features
--------

- Add ``--connection-limit`` option to devpi-server passed on to waitress.



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
--------

- Enable logging command line options for all commands.

- Added support uv pip as an installer.



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.


