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

holger krekel holger at merlinux.eu
Tue Jul 15 15:12:19 CEST 2014


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::
                                                                                
    http://doc.devpi.net/2.0/                                                

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





More information about the Python-announce-list mailing list