Metadata-Version: 2.1
Name: devpi-server
Version: 6.7.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: 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
Requires-Python: >=3.7
License-File: LICENSE
License-File: AUTHORS

=============================================================================
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.7.0 (2022-09-28)
==================


Features
--------

- Add nginx example to ``devpi-gen-config`` with caching of simple pages for installers like pip.

- Automatically check for ``+files`` when using ``--replica-file-search-path``.

- Set headers to prevent caching for simple links with stale results.


Bug Fixes
---------

- Fix #840: Correct url scheme in config if nginx is behind another proxy.


6.6.1 (2022-09-12)
==================


Bug Fixes
---------

- Fix slowdown introduced in 6.6.0 when simple links for mirrors are requested more than once in the same thread.

- Removed preservation of original server uuid during import. Imported state is different from the original server. Replicas could not detect the change and get into an inconsistent state.

- Prevent cache trashing when updating simple links on mirrors for projects with huge number of releases.

- Preserve toxresult filenames during import to keep them being accessible on the same URLs after the fix for #686 in 5.2.0.


6.6.0 (2022-08-16)
==================


Features
--------

- Fix #592: return dict from ``list_projects_perstage`` of mirrors where the values contain the un-normalized project name. This allows support in devpi-web 4.1.0 to index them correctly.

- Check name in project list instead of fetching project page for mirrors. This improves response times and avoids leaking typos of private package names upstream.

- Use ETag header if provided by mirror to reduce bandwidth usage and latency.

- Prevent concurrent updates of simple links on mirrors with a short lived lock.

- Support `PEP-691 <https://peps.python.org/pep-0691/>`_ conformant fetching for mirrors, and requests with JSON result for installers. Proxy servers should add compression support for the ``application/vnd.pypi.simple.v1+json`` content type (``gzip_types`` for nginx).


Bug Fixes
---------

- Fix #743: support PEP427 escaped wheels with local version, where the + is replaced by _.

- Fix #895: store and return content of data-yanked.

- Fix #908: include basic auth from ``mirror_url`` when fetching packages.

- Fix #914: switch to write transaction as late as possible when streaming a file from a mirror.


6.5.1 (2022-04-25)
==================

Bug Fixes
---------

- Fix traceback when trying to delete already deleted release or toxresult.

- Preserve index config settings of plugins during import instead of aborting, even if the plugin isn't installed during import.


6.5.0 (2022-03-18)
==================

Features
--------

- Added ``--no-checksum`` option to ``devpi-fsck`` to skip checksum validation and only check for file existence.

- Split keyfs cache into a small changelog cache and a relpath cache, this lowers overall memory usage and prevents cache trashing.

- Lower memory usage by avoiding to read release files into memory and instead use existing file objects.

- Switch to ``platformdirs`` from ``appdirs``.

- Add streaming replica protocol, which is faster and uses less memory, especially when rebuilding a replica.

- Better logging and handling if a thread unexpectedly dies.


Bug Fixes
---------

- Fix #871: authentication info in ``mirror_url`` wasn't passed on to release links anymore.

- Open database connection after file was downloaded during replication to avoid conflicts and locking.

- Avoid hashing data twice when writing to storage.

- Close HTTP responses and sessions when done to free resources as early as possible instead of waiting for garbage collection.

