Skip to main content

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

Project description

devpi-server: consistent pypi.python.org cache, github-style internal 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.

github-style indexes

Each user can have multiple indexes and upload packages and docs via standard setup.py invocations. Users, indexes (and soon projects and releases) are manipulaed 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

2.5.0 (2015-11-19)

  • fix a regression of 2.3.0 which would cause many write-transactions for mirrored simple-page entries that didn’t change. Previous to the fix, accesses to mirrored simple pages will result in a new write-transaction every 30 minutes if the page is accessed which is likely on a somewhat busy site. If you running with replicas it is recommended to do an an export/import cycle to remove all the unneccessary writes that were produced since devpi-server-2.3.0. They delay the setup of new replicas considerably.

  • add info about pypi_whitelist on simple page when root/pypi is blocked for a project.

  • replica simple-page serving will not unneccessarily wait for new simple-page entries to arrive at the replication side if the master does not return any changes in the initial simple-page request. Previously a replica would wait for the replication-thread to catch up even if no links changed.

  • fix setup.py to work on py34 and with LANG=”C” environments. Thanks Jason R. Coombs.

  • fix issue284: allow users who are listed in acl_upload to delete packages

2.4.0 (2015-11-11)

  • NOTE: devpi-server-2.4 is compatible to data from devpi-server-2.3 but not the other way round. Once you run devpi-server-2.4 you can not go back. It’s always a good idea to make a backup before trying a new version :)

  • NOTE: if you use --logger-cfg with .yaml files you will need to install pyyaml yourself as devpi-server-2.4 dropped it as a direct dependency as it does not install for win32/python3.5 and is not needed for devpi-server operations except for logging configuration. Specifying a *.json file always works.

  • add timeout to replica requests

  • fix issue275: improve error message when a serverdir exists but has no version

  • improve testing mechanics and name normalization related to storing doczips

  • refine keyfs to provide lazy deep readonly-views for dict/set/list/tuple types by default. This introduces safety because users (including plugins) of keyfs-values can only write/modify a value by explicitly getting it with readonly=False (thereby deep copying it) and setting it with the transaction. It also allows to avoid unnecessary copy-operations when just reading values.

  • fix issue283: pypi cache didn’t work for replicas.

  • performance improvements for simple pages with lots of releases. this also changed the db layout of the caching from pypi.python.org mirrors but will seamlessly work on older data, see NOTE at top.

  • add “–profile-requests=NUM” option which turns on per-request profiling and will print out after NUM requests are executed and then restart profiling.

  • fix tests for pypy. We officially support pypy now.

2.3.1 (2015-09-14)

  • fix issue272: require devpi-common >= 2.0.6

  • recognize newly registered PyPI projects, now that we don’t watch the PyPI changelog anymore

2.3.0 (2015-09-10)

  • switched to semantic versioning. Only major revisions will ever require an export/import cycle.

  • fix issue260: Log identical upload message on level “info”

  • Log upload trigger message on level “warn”

  • The PyPI changelog isn’t watched for changes anymore. Instead we cache release data for 30 minutes, this can be adjusted with the --mirror-cache-expiry option.

  • fix issue251: Require and validate the “X-DEVPI-SERIAL” from master in replica thread

  • fix issue258: fix FileReplicationError representation for proper logging

  • fix issue256: if a project removes all releases from pypi or the project is deleted on pypi, we get a 404 back. In that case we now return an empty list of releases instead of returning an UpstreamError.

  • Change nginx template to serve HEAD in addition to GET requests of files directly instead of proxying to devpi-server

  • make keyfs cache size configurable via “–keyfs-cache-size” option and increase the default size to improve performance for installations with many writes

2.2.2 (2015-07-09)

  • make replica thread more robust by catching more exceptions

  • Remove duplicates in plugin version info

  • track timestamps for event processing and replication and expose in /+status

  • implement devpiweb_get_status_info hook for devpi-web >= 2.4.0 status messages

  • UPGRADE NOTE: if devpi-web is installed, you have to request application/json for /+status, or you might get a html page.

  • address issue246: refuse uploading release files if they do not contain the version that was transferred with the metadata of the upload request.

  • fix issue248: prevent change of index type after creation

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-2.5.0.tar.gz (131.2 kB view details)

Uploaded Source

Built Distribution

devpi_server-2.5.0-py2.py3-none-any.whl (142.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for devpi-server-2.5.0.tar.gz
Algorithm Hash digest
SHA256 156ecdf54e37f7f18b74a899405c1fe6fabbd089f1dfd61ea2783ae005eacc31
MD5 80deb10d73a0bd8d9b27267a82765c80
BLAKE2b-256 a8859fa5ba930126e29097c0f3e57a870cd9d64b1b716c63e2013f563c5d862c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for devpi_server-2.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 da6e588c8322ac69e2aae59a60b344e3c755ae5784e096fc7a455a024312827c
MD5 fba77f89f59989952928347697afd222
BLAKE2b-256 c65e92cf827d33bcf243c29e7a226fa961b0679ef79ee4119d495969b69c849c

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