Skip to main content

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

Project description

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.

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.

Changelog

6.8.0 (2022-12-05)

Features

  • Fix #929: Cache normalized project names per transaction on mirror index instances.

Bug Fixes

  • Fix #914: add locking to list_projects_perstage of mirror indexes to prevent multiple slow concurrent updates of the full project name list.

  • Catch exceptions in async_httpget analog to httpget.

  • Add locking to mirror name cache to prevent race condition on updates.

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 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.

Project details


Release history Release notifications | RSS feed

This version

6.8.0

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

Uploaded Source

Built Distribution

devpi_server-6.8.0-py3-none-any.whl (265.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: devpi-server-6.8.0.tar.gz
  • Upload date:
  • Size: 255.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: devpi-server/6.8.0.dev4 (py3.8.11; linux)

File hashes

Hashes for devpi-server-6.8.0.tar.gz
Algorithm Hash digest
SHA256 74ba6fdef07bec9dd6ea4869c0df96c5940dd16ab6df8141ddb3206427c975cb
MD5 c18bdff7f2174ec2afc84573932a8367
BLAKE2b-256 41faaa3e4d4d3725baf9d83d7d8cb1f34db68584867eee8f7e40115bb3c85e85

See more details on using hashes here.

File details

Details for the file devpi_server-6.8.0-py3-none-any.whl.

File metadata

  • Download URL: devpi_server-6.8.0-py3-none-any.whl
  • Upload date:
  • Size: 265.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: devpi-server/6.8.0.dev4 (py3.8.11; linux)

File hashes

Hashes for devpi_server-6.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5a6f1b1393210c23651909623f5261445fbaf000d949a0b043b7f5e0f027ce3
MD5 1e507967f256d1a485657f1c9b6c465f
BLAKE2b-256 ff5829cc1d0833a463d0911d2e53a4956ec0aaa38d38b906c55cf821d0cfa0b8

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