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

3.0.0 (2016-02-12)

  • dropped support for python2.6

  • block most ascii symbols for user and index names except -.@_. unicode characters are fine.

  • add --no-root-pypi option which prevents the creation of the root/pypi mirror instance on first startup.

  • added optional title and description options to users and indexes.

  • new indexes have no bases by default anymore. If you want to be able to install pypi packages, then you have to explicitly add root/pypi to the bases option of your index.

  • added optional custom_data option to users.

  • generalized mirroring to allow adding mirror indexes other than only PyPI

  • renamed pypi_whitelist to mirror_whitelist

  • speed up simple-page serving for private indexes. A private index with 200 release files should now be some 5 times faster.

  • internally use normalized project names everywhere, simplifying code and slightly speeding up some operations.

  • change {name} in route_urls to {project} to disambiguate. This is potentially incompatible for plugins which have registered on existing route_urls.

  • use “project” variable naming consistently in APIs

  • drop calling of devpi_pypi_initial hook in favor of the new “devpi_mirror_initialnames(stage, projectnames)” hook which is called when a mirror is initialized.

  • introduce new “devpiserver_stage_created(stage)” hook which is called for each index which is created.

  • simplify and unify internal mirroring code some more with “normal” stage handling.

  • don’t persist the list of mirrored project names anymore but rely on a per-process RAM cache and the fact that neither the UI nor pip/easy_install typically need the projectnames list, anyway.

  • introduce new “devpiserver_storage_backend” hook which allows plugins to provide custom storage backends. When there is more than one backend available, the “–storage” option becomes required for startup.

  • introduce new “–requests-only” option to start devpi-server in “worker” mode. It can be used both for master and replica sites. It starts devpi-server without event processing and replication threads and thus depends on respective “main” instances (those not using “–request-only”) to perform event and hook processing. Each worker instance needs to share the filesystem with a main instance. Worker instances can not serve the “/+status” URL which must always be routed to the main instance.

2.6.1 (unreleased)

  • add more info when importing data. Thanks Marc Abramowitz for the PR.

2.6.0 (2016-01-29)

  • fix issue262: new experimental option –offline-mode will prevent devpi-server from even trying to perform network requests and it also strip all non-local release files from the simple index. Thanks Daniel Panteleit for the PR.

  • fix issue304: mark devpi-server versions older than 2.2.x as incompatible and requiring an import/export cycle.

  • fix issue296: try to fetch files from master again when requested, if there were checksum errors during replication.

  • if a user can’t be found during authentication (with setup.py upload for example), then the http return code is now 401 instead of 404.

  • fix issue293: push from root/pypi to another index is now supported

  • fix issue265: ignore HTTP(S) proxies when checking if the server is

    already running.

  • Add content_type route predicate for use by plugins.

2.5.3 (2015-11-23)

  • fix a bug that resulted from accessing a non-existing project on root/pypi where upstream does not contain the X-PYPI-LAST-SERIAL header usually. Thanks Matthias Bach.

2.5.2 (2015-11-20)

  • recognize “pex” for redirections of user/index/NAME to user/index/+simple/NAME just like we do with pip/setuptools.

  • fix py2 incompatibility introduced with 2.5.1 where we used a unicode header and pyramid only likes str-headers.

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

Uploaded Source

Built Distribution

devpi_server-3.0.0-py2.py3-none-any.whl (158.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for devpi-server-3.0.0.tar.gz
Algorithm Hash digest
SHA256 7e50e4251ac4c61697d47e1e4ee741e6090bbaf675e7a2e722b7839875d0a4dc
MD5 c50cf609f5d59e949232c07dcea440f7
BLAKE2b-256 91d211b7eb40c748bcc9b4f2736d1ecfe91f7343e148d00a94bd82491df51a92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for devpi_server-3.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 947da8fd1a6930dc1ee08c7447a99b8c30a1ba758d5e7b430b59f850966be07f
MD5 13dce9851f33f0a3540aba83c38037e4
BLAKE2b-256 b898343cfd2e02f36d1e94f13a1e73eebaab73958ca537404f701609312e519d

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