Metadata-Version: 2.4
Name: devpi-server
Version: 6.20.1
Summary: devpi-server: backend for hosting private package indexes and PyPI on-demand mirrors
Maintainer-email: Florian Schulze <mail@pyfidelity.com>
License-Expression: 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: Homepage, https://devpi.net
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: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
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
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: argon2-cffi
Requires-Dist: attrs>=22.2.0
Requires-Dist: defusedxml
Requires-Dist: devpi_common<5,>3.6.0
Requires-Dist: httpx<1
Requires-Dist: itsdangerous>=0.24
Requires-Dist: lazy
Requires-Dist: legacy-cgi; python_version >= "3.13"
Requires-Dist: passlib[argon2]
Requires-Dist: platformdirs
Requires-Dist: pluggy<2.0,>=0.6.0
Requires-Dist: py>=1.4.23
Requires-Dist: pyramid>=2
Requires-Dist: repoze.lru>=0.6
Requires-Dist: requests>=2.3.0
Requires-Dist: setuptools<=81
Requires-Dist: strenum; python_version < "3.11"
Requires-Dist: strictyaml
Requires-Dist: waitress>=1.0.1
Requires-Dist: ruamel.yaml
Dynamic: license-file

====================================================================================
devpi-server: backend for hosting private package indexes and PyPI on-demand mirrors
====================================================================================


PyPI on-demand package mirror
=============================

You can point ``uv``, ``pip`` or another Python package installer to the ``root/pypi/+simple/`` index,
serving as a transparent on-demand mirror for PyPI-hosted packages.


User specific indexes
=====================

Each user (which can represent a person, project or team) can have multiple indexes,
and can upload packages and documents to these indexes 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.


Sensible defaults for a low friction deployment
===============================================

Get started easily and deploy a devpi-server instance with 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 package 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.20.1 (2026-05-11)
===================

Bug Fixes
---------

- Pass through request headers when streaming .metadata from mirror. Refs #1018


6.20.0 (2026-04-30)
===================

Features
--------

- Add experimental bare bones core-metadata ([PEP 658](https://peps.python.org/pep-0658/), [PEP 714](https://peps.python.org/pep-0714/)) support with ``--enable-core-metadata`` command line option and ``mirror_provides_core_metadata`` mirror index option. Refs #1018

Bug Fixes
---------

- Update replica status when the replica is waiting for new serials using the streaming changelog endpoint.


6.19.3 (2026-04-13)
===================

Bug Fixes
---------

- Fix #1112: Parse simple JSON reply even with wrong content-type in reply if the body seems to contain JSON.

- Return stale project list for mirrors when the lock can't be acquired within the timeout.

- Fix importing of toxresults from devpi-server 6.5.0 to 6.9.0 where the wrong hash was stored.


6.19.2 (2026-03-17)
===================

Bug Fixes
---------

- Preserve log for documentation uploads in export.

- Any missing file on mirrors will be ignored during event processing as is already the case in other places.

- Use short timeout when project list is requested for ``has_project`` call on mirrors instead of the long one used for ``list_projects``. This prevents installers from timing out and retrying several times.

- Fix error handling for proxy requests from replica to primary.

Other Changes
-------------

- Removed limit of reported missing files for devpi-fsck.


6.19.1 (2026-02-09)
===================

Bug Fixes
---------

- Pin setuptools as pyramid still requires pkg_resources.

- Always allow replicas to access deleted releases to get the proper ``410 Gone`` instead of ``403 Forbidden`` when ``devpi-lockdown`` is in use.

