[Distutils] devpi 1.2 releases: many improvements + py33 support
holger krekel
holger at merlinux.eu
Wed Oct 30 11:21:58 CET 2013
The devpi-{server,client}-1.2 releases bring a lot of refinements
and improvements for serving and interacting with your own pypi indexes:
- devpi-server serves release files from URLs containing a MD5 hash
allowing safe serving of those files through nginx
- devpi-server's USER/INDEX urls can now be used directly with
pip/easy_install without the previously required (and still valid)
``+simple/`` suffix.
- ``devpi use --set-cfg`` reads and writes pip/easy_install
configuration files, making those installers pick up the in-use
index seemlessly. You can even do ``devpi use --always-set-cfg`` to
always set those config files when issuing a "devpi use" afterwards.
- ``devpi upload`` got many improvements:
- versioned files (git and hg) will be exported to a clean directory prior to the build step
- distutils/setup.py is now only used for building a package
- documentation upload is tied to a version now
- you can directly upload distribution files, including wheel files
- both devpi-server and devpi-client are python3.3 compatible now and
depend on a new devpi-common package which consolidates various
pypi-interaction aspects to avoid code duplication. Also,
global http proxy settings are honoured.
If you have an existing devpi-server-1.1 installation serving
your own packages you can install devpi-server>=1.2 and
migrate the data with::
devpi-server --upgrade-state [--serverdir your_server_dir]
This upgrades your server state in-place. Please make sure you
backup your serverdir ahead of doing the upgrade (default location
is ~/.devpi/server).
WARNING: ``devpi-server --gendeploy`` is deprecated and will be removed
probably in favor of just generating example config files for
nginx/supervisor/cron. Also ``devpi install`` is deprecated now
in favor of using pip/easy_install directly (see also the --set-cfg
and --always-set-cfg options).
For more information please refer to the extensive documentation at:
http://doc.devpi.net/
or check the CHANGELOG below.
have fun,
holger krekel
1.2
----------------------------
devpi-server:
- serve links to files on simple pages and index root as relative
paths so that it works more nicely with proxy-pass server setups.
fixes issue56.
- make devpi-server and devpi-common python3.3 compatible, addresses
issue57
- use system http/s proxy settings from devpi-server. fixes issue58.
- refactor locations to allow nginx serving static files more directly.
Also updated nginx template accordingly.
- rework "--upgrade-state" to detect the state version of the server dir
and create an appropriate virtualenv with a devpi-server install in order
to export data, and then import that version.
- allow to use /user/index as indexserver url for pip/easy_install by
redirecting non-json queries to /user/index/PROJ[/] to
/user/index/+simple/PROJ/
- fix submission of multi-value fields like "classifiers" or "platform"
(previously they would be wrongly collapsed to become the last value of a list)
- fix normalization import/export issue: pypi names take precendence
for defining the "real" name of a project.
- always store uploaded documentation with a version. While
"devpi upload" will make sure to pass in the version, "setup.py upload_docs"
will not pass in a version. In the latter case, devpi-server assumes
the documentation belongs to the highest yet registered release.
This change requires exporting with devpi-1.1 and importing with devpi-1.2
in order to properly store versioned docs internally.
- use types/url/metadata/validation functionality of new depdency devpi_common
- internal cleanup using pytest-flakes
- make devpi-server use a proper UserAgent string
devpi-client:
- "devpi list" and "devpi remove" now accept a pip/setuptools style
requirement like "pkg>=1.0" instead of the former for limited "pkg-1.0".
- make devpi-client fully work with python3.3 and fix test bugs
- use system http/s proxy settings. fixes issue58.
- add "devpi test -c tox.ini package" to use a particular (external)
tox.ini for running tox with the unpackaged package.
also add "--fallback-ini tox.ini" option which will only
be used if the download package has no tox.ini.
- new "devpi use --set-cfg" option to set pip/easy_install configuration
files when changing indexes. Also new "devpi use --always-set-cfg=yes"
option if you want to imply "--set-cfg" on future "devpi use" invocations
and "devpi use --always-st-cfg=no" to disable this implication.
- support git and hg for exporting all versioned files of a directory
before performing the build step when uploading
- improve how upload works: setup.py is only used for building docs
and release files but not for the remote upload part. This gets rid of a
number of hacks that were done trying to get the Python shipped "distutils"
to pick the proper devpi index and allows proper SSL verification on Python2.6
onwards.
- upload: show response when uploading documentation failed
- upload: allow to specify archive files as positional arguments (both files and
directories can be specified but the latter additionally require
a --upload-dirs option)
- fix issue54: upload now works on wheel files as well.
As pkginfo does not support wheels directly, we use the ``twine``
project which extends pkginfo for now.
- only show highest version in "devpi list PROJECT" output, unless
"--all" is specified.
- on upload release files: skip rather than guess packages which contain no metadata
- strike BeautifulSoup dependency and re-use vendored pip-link parser
- use types/url/metadata/validation functionality of new depdency devpi_common
- internal cleanup wrt pytest-flakes discoveries
- remove "archive" dependency in favour of a small implementation in
devpi_common
- make devpi-client use a proper UserAgent string
More information about the Distutils-SIG
mailing list