Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #1063

devpi-1.1: improved pypi cache, data migration, wheels, ...

Path csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <holger@merlinux.eu>
X-Original-To python-announce-list@python.org
Delivered-To python-announce-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'tutorial': 0.03; 'importing': 0.05; 'subsequent': 0.05; 'detect': 0.07; 'incompatible': 0.07; 'pypi': 0.07; 'reject': 0.07; 'skip:` 10': 0.07; 'users,': 0.07; 'versions.': 0.07; 'arguments': 0.09; 'exist,': 0.09; 'expired': 0.09; 'explicitely': 0.09; 'http': 0.09; 'indexes': 0.09; 'inherited': 0.09; 'protocols.': 0.09; 'release.': 0.09; 'used.': 0.09; 'api': 0.11; 'bug': 0.12; 'archive': 0.14; 'changes': 0.15; 'contents:': 0.16; 'detected': 0.16; 'dump': 0.16; 'exhaustive': 0.16; 'in-place': 0.16; 'index.': 0.16; 'invocations': 0.16; 'invokes': 0.16; 'layout,': 0.16; 'naming': 0.16; 'non-ascii': 0.16; 'received:eu': 0.16; 'redirects': 0.16; 'release:': 0.16; 'semantics': 0.16; 'subject:pypi': 0.16; 'to:addr:python-announce-list': 0.16; 'index': 0.16; 'fix': 0.17; 'variable': 0.18; 'options.': 0.19; 'properly': 0.19; 'replacing': 0.19; 'version.': 0.19; 'starts': 0.20; 'command': 0.22; 'import': 0.22; 'install': 0.23; 'header :User-Agent:1': 0.23; '(by': 0.24; 'exists': 0.24; 'headers': 0.24; 'holger': 0.24; 'merge': 0.24; 'header': 0.24; 'initial': 0.24; 'versions': 0.24; 'environment': 0.24; 'login': 0.25; 'options': 0.25; 'push': 0.26; 'recognized': 0.26; 'skip:" 20': 0.27; "doesn't": 0.30; 'characters': 0.30; 'newer': 0.30; 'returned': 0.30; 'code': 0.31; 'serve': 0.31; '(maybe': 0.31; '1.4': 0.31; 'index,': 0.31; 'info.': 0.31; 'mirror': 0.31; 'prints': 0.31; 'releases,': 0.31; 'file': 0.32; 'compatible': 0.32; 'option': 0.32; 'beginning': 0.33; 'older': 0.33; 'skip:d 20': 0.34; 'could': 0.34; 'connection': 0.35; 'possible.': 0.35; 'computing': 0.35; 'operations': 0.35; 'test': 0.35; 'but': 0.35; 'add': 0.35; 'there': 0.35; 'version': 0.36; 'executing': 0.36; 'fun,': 0.36; 'subject:data': 0.36; 'useful': 0.36; 'charset:us- ascii': 0.36; 'possible': 0.36; 'operating': 0.37; 'skip:- 20': 0.37; 'project': 0.37; 'implement': 0.38; 'remote': 0.38; 'server': 0.38; 'e.g.': 0.38; 'files': 0.38; 'skip:- 10': 0.38; 'rather': 0.38; 'little': 0.38; 'does': 0.39; 'obtain': 0.39; 'to:addr:python.org': 0.39; 'changed': 0.39; 'upgrading': 0.60; 'break': 0.61; 'new': 0.61; 'simple': 0.61; 'first': 0.61; 'content-disposition:inline': 0.62; 'address': 0.63; 'to:addr :distutils-sig': 0.63; 'show': 0.63; 'name': 0.63; 'such': 0.63; 'skip:n 10': 0.64; 'pick': 0.64; 'more': 0.64; 'to:2**2': 0.65; 'within': 0.65; 'here': 0.66; 'reply': 0.66; 'between': 0.67; 'determine': 0.67; 'anything.': 0.68; 'improvements': 0.68; 'safe': 0.72; 'introduce': 0.78; 'potentially': 0.81; 'mirroring': 0.84; 'mirrors': 0.84; 'relate': 0.84; 'upstream': 0.84; 'wheel': 0.84; 'url:latest': 0.91; 'tied': 0.93; 'state.': 0.95
Date Wed, 25 Sep 2013 13:14:44 +0000
From holger krekel <holger@merlinux.eu>
To disutils-sig <distutils-sig@python.org>, python announce <python-announce-list@python.org>, devpi-dev <devpi-dev@googlegroups.com>
Subject devpi-1.1: improved pypi cache, data migration, wheels, ...
MIME-Version 1.0
Content-Type text/plain; charset=us-ascii
Content-Disposition inline
User-Agent Mutt/1.5.20 (2009-06-14)
X-Mailman-Approved-At Wed, 25 Sep 2013 17:13:09 +0200
X-BeenThere python-announce-list@python.org
X-Mailman-Version 2.1.15
Precedence list
Reply-To python-list@python.org
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-announce-list/>
List-Post <mailto:python-announce-list@python.org>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=subscribe>
Approved python-announce-list@python.org
Newsgroups comp.lang.python.announce
Message-ID <mailman.321.1380121991.18130.python-announce-list@python.org> (permalink)
Lines 141
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1380121991 news.xs4all.nl 15969 [2001:888:2000:d::a6]:33829
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python.announce:1063

Show key headers only | View raw


The devpi-{server,client}-1.1 releases bring a lot of refinements
and improvements for serving standalone pypi mirrors or company/private
indexes which seemlessly merge in PyPI releases, mainly:

- improved speed and semantics of pypi cache.  devpi-server
  has been tested to correctly mirror all ~34000 projects
  on pypi.python.org now, and minimizes upstream interactions
  by fully exploiting the existing mirroring protocols.

- data migration: new --upgrade/import/export options.
  versioning of serverstate and API calls so that future
  changes can be detected by clients.

- better support for ".whl" files and many other little 
  improvements and bug fixes, see the changelog
  below for more info.

Note that devpi-1.1 will require to ``--upgrade`` your 1.0 
server state before you can serve with devpi-server-1.1 release.

Docs also were updated.  Here is a Quickstart tutorial 
for efficient pypi-mirroring on your laptop:: 
                                                                                
    http://doc.devpi.net/1.1/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/1.1/quickstart-releaseprocess.html
                                                                                
If you want to permanently install devpi-server and potentially
access it from many clients::
                                                                                
    http://doc.devpi.net/1.1/quickstart-server.html
                                                                                
More documentation and the beginning of an exhaustive user manual::
                                                                                
    http://doc.devpi.net/latest/

have fun,

holger


CHANGELOG 1.1
----------------------------

devpi-server:

- systematically test pypi/mirror code against all 34K pypi projects
  so that we know that all http/https installable archive links that pypi offers 
  are correctly recognized by devpi-server's root/pypi index.

- if no pypi mirror state is known, devpi-server now calls
  pypi to obtain names/serials.  It will fail to start
  if no such initial connection is possible.  Once a first mirror
  state is known, subsequent devpi-server starts will
  not perform this initial query.

- speed up and make more reliable all operations on private packages which
  have no pypi.python.org release: we can now determine if a project
  exists on pypi and under which name exactly without
  remote queries or redirects to pypi.python.org.

- fix issue45: register/upload package names are now properly 
  validated and redirects take place if e.g. a project was
  registered as "name-sub" and "+simple/name_sub" is queried.

- new --upgrade-state command to allow for easy and safe
  in-place upgrading of server state.  This is not guranteed
  to be possible for all future releases which might require
  using --export with an older version and --import with a newer
  version.

- new --export/--import options to dump and import server contents:
  users, indexes, docs, release files and (test) attachments.
  Note that root/pypi (PyPI-caching information) will not be exported/imported.
  (maybe in the future if there is demand). 

- fix issue49: both push and import/export now support docfiles.  Note,
  however, that docfiles relate to a project as a whole and are not tied
  to a particular version.  This property is inherited from the PyPI
  standard upload_docs action and cannot be changed without interfering
  or replacing the upload_docs protocol of setuptools/sphinx.

- fix issue51: return 200 code if release file is successfully uploaded 
  but jenkins could not be triggered (previously returned 500)

- reject simple/NAME if NAME contains non-ascii characters
  (PEP426 naming rules)

- devpi-server now returns a X-DEVPI-API-VERSION and
  X-DEVPI-SERVER-VERSION header.  For future incompatible changes 
  these versions allow clients to reject interactions.

- also add ".serverversion" file and write it if it does not
  exist, and make devpi-server use it to verify if
  operating on a compatible server data layout, otherwise bail out.

- address issue43: --gendeploy now uses pip without --pre and
  explicitely instructs pip to install the exact same version 
  of devpi-server with which --gendeploy is issued.

- fix issue46 -- for GET /root/pypi/ only show a link to the
  simple page instead of computing "latest in-stage packages"
  which is only useful for devpi's user indices.

- fix issue37: upload with expired login causes proper 401


devpi-client:

- detect "X-DEVPI-API-VERSION" header and check for compatibility.
  devpi-client currently supports version "1" and warns if
  no version is known (defaulting to "1").

- getjson now prints http reply headers if "-v|--verbose" was supplied.

- fix issue52: add "--no-vcs" option to force "devpi upload" to not
  vcs-export files before executing build/upload

- fix issue50: introduce "--toxargs" to "devpi test" invocations in
  order to add arbitrary arguments to tox.

- fix issue43: set PIP_PRE environment variable when executing
  "devpi install ..." so that the behaviour between 
  pip < 1.4 and >= 1.4 is normalized to always install 
  development versions.

- fix issue47: set PIP_USE_WHEEL with "devpi install ..." so that
  it will automatically pick up wheel files if pip>1.4 is used.

- fix issue42: allow to set empty bases for an index, so that it doesn't
  inherit anything.

- fix issue44: "use -l" doesn't break when a user has no index

- devpi test now invokes tox in-process (by importing tox) rather than
  a subprocess.

Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread


Thread

devpi-1.1: improved pypi cache, data migration, wheels, ...  holger krekel <holger@merlinux.eu> - 2013-09-25 13:14 +0000

csiph-web