Skip to main content

devpi-server: reliable private and pypi.python.org caching server

Project description

devpi-server: pypi server for caching and private indexes

consistent robust pypi-cache

You can point pip or easy_install to the root/pypi/+simple/ index, serving as a self-updating transparent cache for pypi-hosted and external packages. Cache-invalidation uses the latest and greatest PyPI protocols. The cache index continues to serve when offline and will resume cache-updates once network is available.

user specific indexes

Each user (which can represent a person or a project, team) can have multiple indexes and upload packages and docs via standard setup.py invocations command. Users and indexes can be manipulated through 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 cron.

separate tool for Packaging/Testing activities

The complimentary devpi-client tool helps to manage users, indexes, logins and typical setup.py-based upload and installation workflows.

See http://doc.devpi.net for getting started and documentation.

Changelog

4.1.0 (2016-07-15)

  • Try opening read only transactions in SQLite read only mode for better concurrency/locking behaviour. This is officially supported with Python 3.4, but many systems allow it implicitly in older Python versions.

  • fix issue353: If an index inherits from a mirror with an empty cache and the mirror is returning errors, there would be an error returned by devpi. Now this situation is treated like the mirror has no releases and just the releases from the index are returned.

  • fix issue352: When there was an issue during commit or rollback, the thread local info got into an inconsistent state. This caused an AttributeError whenever that thread was used. Eventually this could exhaust all worker threads and make devpi unresponsive.

  • fix issue354: allow more general agent versions, such as ‘Python-urllib/3.5’ to appear before the installer user agent string so redirects for setuptools versions which had that work.

  • fix issue214: change the order in which indices are searched to fix the mirror whitelisting and also make sure that packages, if available, are always installed from internal indices instead of root/pypi.

4.0.0 (2016-05-12)

  • require devpi-common 3.0.0 which changes the normalization of project names.

  • allow import of exported data from devpi-server 3.1.2 with inconsistently normalized project names.

3.1.2 (2016-05-12)

  • fix issue336: the mirror_whitelist setting got lost on import.

  • allow export if a package with dotted name was uploaded while devpi-common 2.0.9 was installed. The resulting export will only be importable with devpi-server 4.x. It will fail to import in 3.x with a MissingRegistration error.

3.1.1 (2016-05-11)

  • fix import of releases for packages with dots in their name after PEP-503 fix in devpi-common 2.0.9.

3.1.0 (2016-04-22)

  • fix issue208: Uncached mirrored files (PyPI) are streamed to the client while downloading. This prevents timeouts in pip etc. The files are only cached if there were no errors and in case there is a checksum, the content matches. Downloads on replicas won’t wait until they are in sync, but pass on what they get from the master.

  • fix issue229: A replica talking to a master behind nginx decoded gzipped data, but left the Content-Encoding header unchanged. Now data is passed on unchanged. Thanks to Chad Wagner for the fix.

  • fix issue317: When there is no data in the directory specified via --serverdir during export, then the process aborts instead of creating and exporting an empty database.

  • fix issue210: When an external user authenticated by a plugin tries to create an index the required user object is now created automatically if the permissions allow it.

  • address issue267: We unconditionally clean up the transaction if there was an exception in rollback or commit. This prevents issues in logging and a possible server lockup if at some point all threads contain a failed transaction object.

  • fix issue321: All exceptions in the replica and event processing threads are caught now and can’t stop the threads anymore.

  • fix issue338: Handle trailing slash in project listing for mirror indexes.

  • Added checks on the index dependency tree built from bases during import.

  • Every project is now imported together with all it’s release files on it’s own serial. Before the release files each got their own serial. This reduces the number of serials generated, especially when there are many projects and releases. That in turn improves import, as well as replication and event handling times (in particular devpi-web indexing).

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devpi-server-4.1.0.tar.gz (156.6 kB view details)

Uploaded Source

Built Distribution

devpi_server-4.1.0-py2.py3-none-any.whl (169.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file devpi-server-4.1.0.tar.gz.

File metadata

File hashes

Hashes for devpi-server-4.1.0.tar.gz
Algorithm Hash digest
SHA256 aaa65b660e736583b427821f3dba7ef9c218c97ab9ced644342f97c45ad2b73d
MD5 463a701520888ec9879f03f365f7e74d
BLAKE2b-256 e083d33cd26c7b1bb4f7cdde539b6d03e5ca1b5065adbb51be0cc52758ce6c69

See more details on using hashes here.

File details

Details for the file devpi_server-4.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for devpi_server-4.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ba59b71db34299b0a543435d6c3fc40d31ebf0f003a3eddcb80da74f692c94bb
MD5 92bc9d1ab07475daae15fe48e1ad8822
BLAKE2b-256 6caaf162d9fad618f961c0a7806904d1c78b1ffa2168334a304c7bf2c5c90056

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page