devpi-github/fschulze-devpi-server7/: devpi-server-7.0.0b12 metadata and description

devpi-server: backend for hosting private package indexes and PyPI on-demand mirrors

Metadata
classifiers
  • Development Status :: 5 - Production/Stable
  • Environment :: Web Environment
  • Intended Audience :: Developers
  • Intended Audience :: System Administrators
  • Programming Language :: Python
  • Programming Language :: Python :: 3 :: Only
  • Programming Language :: Python :: 3.11
  • Programming Language :: Python :: 3.12
  • Programming Language :: Python :: 3.13
  • Programming Language :: Python :: 3.14
  • Programming Language :: Python :: Implementation :: PyPy
  • Topic :: Internet :: WWW/HTTP :: WSGI :: Application
  • Topic :: Internet :: WWW/HTTP
description_content_type text/x-rst
dynamic
  • license-file
keywords pypi,realtime,cache,server
license_expression MIT
license_file
  • LICENSE
maintainer_email Florian Schulze <[email protected]>
project_urls
  • Bug Tracker, https://github.com/devpi/devpi/issues
  • Changelog, https://github.com/devpi/devpi/blob/main/server/CHANGELOG
  • Documentation, https://doc.devpi.net
  • Funding, https://github.com/sponsors/devpi
  • Homepage, https://devpi.net
  • Source Code, https://github.com/devpi/devpi
requires_dist
  • argon2-cffi
  • attrs>=22.2.0
  • defusedxml
  • devpi_common<5,>3.6.0
  • httpdate
  • httpx<1
  • itsdangerous>=0.24
  • lazy
  • legacy-cgi; python_version >= "3.13"
  • passlib[argon2]
  • platformdirs
  • pluggy<2.0,>=0.6.0
  • pyramid>=2
  • repoze.lru>=0.6
  • setuptools<=81
  • sqlalchemy!=2.1.0b1,>=2
  • strictyaml
  • waitress>=1.0.1
  • ruamel.yaml
requires_python >=3.11
Files
File Tox results History
devpi_server-7.0.0b12-py3-none-any.whl
Size
359 KB
Type
Python Wheel
Python
3
sha256
e38a2d0d9ac288def7aa39073f8a90f2e0e12f6f731fb7acb143f86b414820b7
devpi_server-7.0.0b12.tar.gz
Size
340 KB
Type
Source
sha256
b85f29789b4778f9690a88b40e11f456e185edc8363461ab69bad951b6a0f38d

devpi-server: backend for hosting private package indexes and PyPI on-demand mirrors

PyPI on-demand package mirror

You can point uv, pip or another Python package installer to the root/pypi/+simple/ index, serving as a transparent on-demand mirror for PyPI-hosted packages.

User specific indexes

Each user (which can represent a person, project or team) can have multiple indexes, and can upload packages and documents to these indexes 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.

Sensible defaults for a low friction deployment

Get started easily and deploy a devpi-server instance with 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 package 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 [email protected] mailing list.

For support contracts and paid help, contact mail at pyfidelity.com.

Changelog

7.0.0b12 (2026-08-10)

Deprecations and Removals

  • Removed deprecated devpiserver_auth_user hook.

  • Remove --keyfs-cache-size option and replace it with large_cache_size and small_cache_size storage options.

  • Deprecated get_possible_indexconfig_keys, get_default_config_items and normalize_indexconfig_value methods on index customizer in favor of new get_indexconfig_fields.

  • Removed lots of previously deprecated things.

  • Removed experimental --enable-core-metadata command line option, the feature is now always enabled.

  • Removed hash_spec from JSON responses, use hashes instead.

  • Deprecated devpiserver_indexconfig_defaults hook in favor of new devpiserver_indexconfig_fields hook.

  • Removed mirror_whitelist and replaced it with project_inheritance_rules in index configuration and inheritance_rules in the newly added project configuration. The replacement for the former default with an empty mirror_whitelist is block type:remote if local_exists. The replacement for * is allow all. To allow a specific project to be merged with upstream releases the new project config needs the inheritance_rules option to be set to allow all. For now these rules are the only possibilities matching the old functionality of mirror_whitelist.

  • Require at least Python 3.11.

  • Replaced devpiserver_storage_backend with new devpiserver_describe_storage_backend.

  • Fix #930: remove remaining uses of unmaintained py library.

Features

  • Support core-metadata hashes for local indexes. Refs #1018

  • Parse and store PEP 658 metadata hashes if a remote provides them. Refs #1018

  • When opening a write transaction times out, print a stacktrace of the thread currently holding the lock.

  • Completely switch from requests to httpx.

  • Apply project/version filters on all inherited indexes instead of only the current index. This makes devpi-constrained work as a base.

  • The project REST API includes the project configuration and information about inheritance from base indexes when the v=2 query is added to the GET request. The inheritance information also includes warnings about inheritance cycles, missing bases and other problems.

  • The project REST API allows setting configuration via POST.

  • When changing the remote_url any stored remote info like ETAGs or serials is invalidated.

  • Return the possibly stale links returned by the primary when waiting for replicated data times out upon refreshing expired remote links.

  • Fix #1091: Support truststore as SSL/TLS context provider. The package needs to be installed separately, it is not a default dependency.

  • Support size and upload-time (refs #1061) fields from PEP 700 in JSON simple API version 1.1. If releases from remote indexes are included, the result API version is limited to the minimum supported version of all remotes.

Bug Fixes

  • When fetching simple links the time taken to acquire the project lock is now subtracted from the total timeout to prevent taking twice the time.

  • Move event handlers to new transaction when restarting read transaction as write transaction.

Other Changes

  • Long descriptions in version metadata are now stored in files instead of the database. This is mostly transparent. If the file doesn’t exist (yet) on a replica, the json API will return a dictionary with the file information instead of a string.

  • Renamed the stage index to local. This affects the type field of the HTTP API.

  • Renamed mirror_whitelist_inheritance to trust_inheritance_rules_from and the values intersection to none, and union to type:not remote to make the intention more obvious.

  • Since 6.9.2 only unique values where added when using += via PATCH to all list or tuple types. Now this only applies to ACLList and the new UniqueList and UniqueTuple classes, regular list and tuple allow adding duplicate values again. This restores compatibility with devpi-pr.

  • Renamed devpiserver_get_mirror_auth hook to devpiserver_get_remote_auth.

  • Renamed the mirror index to remote. This affects the type field of the HTTP API and the “mirror_*” index options.

  • Renamed devpiserver_mirror_initialnames hook to devpiserver_remote_initialnames.

  • Renamed --mirror-cache-expiry/mirror_cache_expiry option to --remote-refresh-delay/remote_refresh_delay.

  • By default the password of the root user is not set and you have to either use devpi-passwd after initialization, or one of the --root-passwd or --root-passwd-hash options with devpi-init.

  • Replaced the default storage backend with a new one using SQLAlchemy and optimized database schema for size and performance.

6.20.3 (2026-06-30)

Bug Fixes

  • Fix fetching files from re-created mirrors (for example after import or delete and create) without fetching simple project page first. This happens when uv uses a package URL directly from a lock file.

  • Search for METADATA file if the generated name with normalized project and version doesn’t match. This fixes serving core metadata for older wheels.

6.20.2 (2026-06-11)

Bug Fixes

  • Fix logic error which allowed unauthorized fetching of replication data.

6.20.1 (2026-05-11)

Bug Fixes

  • Pass through request headers when streaming .metadata from mirror. Refs #1018

6.20.0 (2026-04-30)

Features

Bug Fixes

  • Update replica status when the replica is waiting for new serials using the streaming changelog endpoint.