devpi: PyPI server and packaging/testing/release tool¶
Please note that devpi-server 4.0.0 is a bug fix/compatibility release as it only changes project name normalization compared to 3.1.x. The internal use of the normalization requires an export/import cycle, which is the reason for the major version increase. There are no other big changes and so everyone who used devpi-server 3.x.y should be fine just using 4.0.0. It’s also fine to export from 2.6.x and import with 4.0.0.
See devpi-server-4.0: fixing the pip-8.1.2 problem / PEP503 compliance for details.
The MIT-licensed devpi system features a powerful PyPI-compatible server and a complimentary command line tool to drive packaging, testing and release activities with Python. Main features and usage scenarios:
- fast PyPI mirror: use a local self-updating pypi.python.org
caching mirror which works with
easy_install. After files are first requested can work off-line and will try to re-check with pypi every 30 minutes by default. Since version 3.0 you can generically mirror from pypi-compatible servers. See Quickstart: running a pypi mirror on your laptop.
- uploading, testing and staging with private indexes: upload Python archives and documentation to your own indexes. Trigger testing of your uploaded release files with tox and record them with each release file. When ready push your successfully tested release files and documentation to another index (staging) or to pypirc-configured external indexes such as https://pypi.python.org . See Quickstart: uploading, testing, pushing releases.
- index inheritance: Each index can inherit packages from another
index, including the pypi cache
root/pypi. This allows to have development indexes that also contain all releases from a production index. All privately uploaded packages will by default inhibit lookups from pypi, allowing to stay safe from an attacker who could otherwise upload malicious release files to the public PyPI index.
- web interface and search: By installing the Web interface and search plugin package you can navigate indexes and search through release metadata and documentation of your private indexes.
- replication: Keep one or more real-time replica to speed up access, keep a failover server and to distribute the devpi system across your organisation. There is json status information about master/replica sites for monitoring.
- importing/exporting: To upgrade to a newer version, devpi-server supports exporting server state from an old version and importing that from a new devpi-server version.
- Jenkins integration: You can set a per-index Jenkins trigger for automatically tox-testing any uploaded release file and query releases for their test results.
To learn more, checkout our quickstart and other docs.
Tutorials and Documentation¶
- Quickstart: running a pypi mirror on your laptop
- Quickstart: uploading, testing, pushing releases
- Installing devpi client and server
- initializing a basic server and index
- devpi install: installing a package
- devpi upload: uploading one or more packages
- devpi test: testing an uploaded package
- devpi push: staging a release to another index
- devpi push: releasing to an external index
- index inheritance re-configuration
- running devpi-server permanently
- Quickstart: permanent install on server/laptop
- devpi user manual
- devpi administration manual
- Developers’ guide to devpi