devpi-2.0.0: web/search UI, replication, fixes

devpi-2.0.0: web, search, replication for PyPI indexes ==========================================================
The devpi system in version 2.0 brings tons of fixes and new features for the private github-style pypi caching server, most notably:
- a new web interface featuring search of metadata and documentation as well as easier navigation and showing of test results per release file.
- a new transactional storage system (based on sqlite) supporting real-time replication over http.
- a new (experimental) hook system for extending server-side functionality.
- ported to a solid web framework and wsgi-server: pyramid and waitress.
Upgrade note: devpi-server-2.0 requires to ``--export`` your 1.2 server state and then using ``--import`` with the new version before you can serve your private packages through devpi-server-2.0.0. Also, please checkout the web plugin if you want to have a web interface::
http://doc.devpi.net/2.0/web.html
Here is a Quickstart tutorial for efficient pypi-mirroring on your laptop::
http://doc.devpi.net/2.0/quickstart-pypimirror.html
And if you want to manage your releases or implement staging as an individual or within an organisation::
http://doc.devpi.net/2.0/quickstart-releaseprocess.html
If you want to host a devpi-server installation with nginx/supervisor and access it from clients from different hosts::
http://doc.devpi.net/2.0/quickstart-server.html
More documentation here::
many many thanks to Florian Schulze who implemented the new ``devpi-web`` package and helped with many other improvements.
have fun,
Holger Krekel, merlinux GmbH
2.0.0 --------------
devpi-server:
- major revamp of the internal core of devpi to support replication (both master and server code), a plugin architecture with the new devpi-web plugin providing a new web interface. Mostly done by Florian Schulze and Holger Krekel.
- moved all html views except for files and the simple index to new devpi-web package. Thanks to Florian Schulze for the PR.
- implement issue103: By default if you register a package in an index, no lookup on pypi is made for that package anymore. You have to add the package to the pypi_whitelist of the index to let pypi releases be mixed in. This is to prevent malicious uploads on pypi to overwrite private packages.
- change json api to get rid of the different meaning of URLs with and without a trailing slash. "/{user}/" is now the same as "/user" and always lists indices. "/{user}/{index}" and "/{user}/{index}/ now always lists the index config and the contained per-stage projects (not inherited ones).
- switch the wsgi app to use Pyramid and waitress for WSGI serving.
- don't refresh releaselinks from the mirroring thread but rather rely on the next access to do it.
- fix issue98: deleting a project config or a project version now accepts names which map to the canonical name of a project.
- fix issue82 and fix issue81: root/pypi now provides the same attributes as normal indexes and results in a 409 MethodNotAllowed http code when trying to change the config.
- fix issue91: make serverport available as well. Thanks David Bonner.
- fix issue100: support large file uploads. As we switched away from bottle to pyramid, the body-size limit is gone.
- fix issue99: make "devpi-server --start" etc work when devpi-server is not itself on PATH (by using sys.argv[0] for finding the binary)
- fix issue84: uploading of wheels where the registered package name has an underscore works despite a wheel's metadata carrying hyphens instead. At submit-file time we now lookup the registered name and use that instead of assuming the one coming with the wheel is the correct one.
- add refresh button on root/pypi project simple index pages which clears the internal cache to force a refetch from PyPI.
- implement issue75: We use the custom X-Devpi-Auth header for authentication now, instead of overwriting the Authentication header.
- added experimental support for using client certificates when running as a replica of a server running behind a proxy
devpi-client:
- Compatibility with devpi-server >= 2.0.0
- introduce "patchjson PATH JSONFILE" command which allows to send a request containing a json data structure to a specified path
- fix issue85: "devpi list -v" now shows package names with latest versions.
- implement issue75: We use the custom X-Devpi-Auth header for authentication now, instead of overwriting the Authentication header.
- added experimental support for basic authentication by parsing user and password from the url given to the "devpi use" command.
- issue74: added experimental support for client side certificates via "devpi use --client-cert"
devpi-web:
- initial release

Hi again,
a small follow up release of devpi-server is out to fix "setup.py" register/upload commands with basic auth.
best, holger
devpi-server-2.0.1 --------------------
- fix regression which prevented the basic authentication for the setuptools upload/register commands to fail. Thanks Florian Schulze.
- fix issue106: better error messages on upload failures. And better allow auto-registration when uploading release files.
participants (1)
-
holger krekel