Metadata-Version: 2.1
Name: devpi-server
Version: 6.5.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
Platform: UNKNOWN
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.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.


6.4.0 (2022-01-24)
==================

Deprecations and Removals
-------------------------

- As announced with 6.0.0, support for Python 3.6 has been dropped, because it has reached its end of life.


Features
--------

- When an installer user agent is detected the full list of projects is returned unsorted and with less info to improve performance and reduce memory usage.


Bug Fixes
---------

- Use ``__slots__`` for some classes to reduce memory usage.

- Fix exceptions related to logging for some edge cases.


6.3.1 (2021-12-07)
==================

Bug Fixes
---------

- Fix #864: enable settings from ``~/.netrc`` and ``HTTP_PROXY``/``HTTPS_PROXY`` env vars for aiohttp.


6.3.0 (2021-11-19)
==================

Features
--------

- Use aiohttp (asyncio) for fetching release links from mirrors to return stale links immediately in case of a timeout, but update the database in the background for the next request.


Bug Fixes
---------

- fix #853: prevent duplicate mirror indexes in sro method when there are multiple inheritance chains to the same mirror

- fix #860: don't check for existing files and validate them during mirror links update, the operation is way to expensive and there is a low possibility for errors.

- Add missing `lazy` package dependency. Previously this was only a transitive dependency coming from the devpi-common package.


6.2.0 (2021-08-12)
==================

Bug Fixes
---------

- Optimized some database access patterns. A new index is added to the database on first startup. For large databases that can take a while.

- Improved performance of loads from database.

- Optimized memory and cache use for database access.

- Use frozenset for project name cache of mirror indexes. This mitigates memory fragmentation on some Linux distributions.



