devpi-1.0: PyPI server and packaging/testing/release tool
=========================================================
devpi-1.0 brings an improved PyPI caching and internal
index server as well as a new abilities for tox-testing and
staging your Python release packages. For a (long) list
of changes, see the below CHANGELOG.
Documentation got revamped and extended and now contains three quickstart
scenarios. First the Quickstart tutorial for pypi-mirroring on your laptop::
http://doc.devpi.net/1.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/1.0/quickstart-releaseprocess.html
If you want to permanently install devpi-server and potentially
access it from many clients::
http://doc.devpi.net/1.0/quickstart-server.html
More documentation and the beginning of an exhaustive user manual::
http://doc.devpi.net/latest/
Note that devpi-1.0 is not data-compatible to the previous 0.9.4 release:
You need to start with a fresh devpi-1.0 installation and upload
your packages again. Future releases of devpi should
support data migration more directly.
best and have fun,
holger krekel
Changelog 1.0 (-0.9.4)
----------------------------
devpi-server:
- rename "--datadir" to "--serverdir" to better match
the also picked up DEVPI_SERVERDIR environment variable.
- fix a strange effect in that sometimes tools ask to receive
a package url with a "#md5=..." arriving at the server side.
We now strip that part out before trying to serve the file.
- on startup don't create any initial indexes other
than the "root/pypi" pypi caching mirror.
- introduce ``--start``, ``--stop`` and ``--log`` commands for
controling a background devpi-server run. (these commands
previously were implemented with the devpi-client and the "server"
sub command)
- fix issue27: provide full list of pypi names in root/pypi's simple
view (and simple pages from inheriting indices)
- default to "eventlet" server when creating deployment with --gendeploy
- fix issue25: return 403 Forbidden when trying to delete the root user.
- fix name mangling issue for pypi-cache: "project_name*" is now matched
correctly when a lookup for "project-name" happens.
- fix issue22: don't bypass CDN by default, rather provide an
"--bypass-cdn" option to do it (in case you have cache-invalidation troubles)
- fix issue20 and fix issue23: normalize index specs internally ("/root/dev" ->
"root/dev") and check if base indices exist.
- add Jenkins build job triggering for running the tests for a package
through tox.
- inheritance cleanup: inherited versions for a project are now shadowed
and not shown anymore with getreleaselinks() or in +simple pages
if the "basename" is exactly shadowed.
- fix issue16: enrich projectconfig json with a "+shadow" file which
lists shadowed "versions"
- initial wheel support: accept "whl" uploads and support caching
of whl files from pypi.python.org
- implemented internal push operation between devpi indexes
- show "docs" link if documentation has been uploaded
- pushing releases to pypi.python.org will now correctly
report the filetype/pyversion in the metadata.
- add setting of acl_upload for indexes. Only the owning
user and acl_upload users may upload releases, files
or documentation to an index.
- add --passwd USER option for setting a user's password server-side
- don't require email setting for creating users
devpi-client:
- removed ``server`` subcommand and options for controling background devpi-server
processes to become options of ``devpi-server`` itself.
- fix issue14: lookup "python" from PATH for upload/packaging activities instead of
using "sys.executable" which comes from the interpreter executing the "devpi" script.
This allows to alias "devpi" to come from a virtualenv which is separate from
the one used to perform packaging.
- fix issue35: "devpi index" cleanly errors out if no index is
specified or in use.
- remember authentication on a per-root basis and cleanup "devpi use"
interactions. This makes switching between multiple devpi instances
more seemless.
- fix issue17: better reporting when "devpi use" does not operate on valid URL
- test result upload and access:
- "devpi test" invokes "tox --result-json ..." and uploads
the test result log to devpi-server.
- "devpi list [-f] PKG" shows test result information.
- add "uploadtrigger_jenkins" configuration option through "devpi
index".
- fix issue19: devpi use now memorizes --venv setting properly. Thanks Laurent.
- fix issue16: show files from shadowed versions
- initial wheel support: "devpi upload --format=bdist_wheel" now uploads
a wheel format file to the index. (XXX "devpi install" will trigger
pip commands with option "--use-wheels".)
- fix issue15: docs will now be built via "setup.py build_sphinx"
using a internal build dir so that the upload succeeds if conf.py
would otherwise specify a non-standard location.
- implement and refine "devpi push" command. It now accepts
two forms "user/name" for specifying an internal devpi index
and "pypi:REPONAME" for specifying a repository which must be
defined in a .pypirc file.
- remove spurious pdb.set_trace() in devpi install command when
no pip can be found.
- show and allow to set "acl_upload" for uploading priviliges
- add longer descriptions to each sub command, shown with
"devpi COMMAND -h".
- removed pytestplugin support for now (pytest reporting directly to
devpi-server)
Hi all,
just a quick heads up that devpi-1.0rc2 packages are out:
pip install -U http://devpi.net/hpk/release/+simple/ devpi
should bring it to your local env. The docs are at:
http://doc.devpi.net/1.0rc2.
Any and all feedback welcome. I am already getting some
on IRC (#devpi on freenode) and incorporating changes
for tomorrow's 1.0.
cheers,
holger
Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPSJzaWduYXR1cmUu
YXNjIg0KQ29udGVudC1EZXNjcmlwdGlvbjogRGlnaXRhbCBzaWduYXR1cmUNCkNvbnRlbnQtRGlz
cG9zaXRpb246IGlubGluZQ0KDQotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQ0KVmVyc2lv
bjogR251UEcgdjEuNC4xMCAoR05VL0xpbnV4KQ0KDQppUUVjQkFFQkFnQUdCUUpTQzZvVUFBb0pF
STQ3QTZKNXQzTFdBQzRJQU9DelZwMFZySy9NVXc1bmw5czdld05wDQpNVjU0dC80Z0FEZlJ3eE9I
QXowTTNhbXQyOFNCSC9NbmsxSmR6WTZJUGl0OU5pS0t1b0ZPRTNTU1BuVnVHYzdNDQpDOGZIYXZJ
eHJxcmtqblAwNjJjaDdKZ3ViRWh6SlB2bWZuWis1Z3FhUjk5RjQ2SVZZL2U4dU5vY0J6S012bzJV
DQo5V3I2Sy9yVy80aVZFS1dzTEt0dnVha2xidjE3T3dzVTNMUUNacTIzU0VZMVBldkU3cVo2SWpL
L0phcXNNd1VLDQpmL3FBT2NNempJN2ZvS0xPZTNUamxoRHZQb2RKbGs2V1NCSGV0TUE5NFVQRXdy
SHN5QkJsSEp4Um04NzB2UzFmDQpQSmR2ZXhHa09WdVhMcE9mY1VoWVBGbE1XZldYcnNCek9KS3li
RHU0c0grZmdWN0dLYkM0QjNlV0JiWTVyOGM9DQo9TVN0ag0KLS0tLS1FTkQgUEdQIFNJR05BVFVS
RS0tLS0tDQo=
Hi all,
i've put devpi-1.0rc1 out which installs devpi-{server,client}-1.0rc
packages, respectively. It comes with a lot of bug fixes, refinements
and new features.
If some of you could install the package with::
pip install -U -i http://devpi.net/hpk/release/+simple/ devpi
and try the main quickstart doc::
http://doc.devpi.net/1.0rc1/index.html
that would be much appreciated!
I am also on #devpi on irc.freenode.net for any feedback/questions. I
want to put out a devpi-1.0 thursday morning.
/me now off to work on improving other parts than index.html of
the documentation.
cheers,
holger
Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPSJzaWduYXR1cmUu
YXNjIg0KQ29udGVudC1EZXNjcmlwdGlvbjogRGlnaXRhbCBzaWduYXR1cmUNCkNvbnRlbnQtRGlz
cG9zaXRpb246IGlubGluZQ0KDQotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQ0KVmVyc2lv
bjogR251UEcgdjEuNC4xMCAoR05VL0xpbnV4KQ0KDQppUUVjQkFFQkFnQUdCUUpTQ2ZNNUFBb0pF
STQ3QTZKNXQzTFc1ZVVIL1JtQk9Fc3RBNWdVeFkxdDJQUjd2b1UzDQpzVVZzQWJJbElBTklXOE9m
SHNydXRlNHVFM05FOGhSdy9hN3p3RUdzM3lzQi81d3VOeHFOV1NudHJaVkdGcXJODQpHYVQxeW1Y
Q3dXZCtTamV1NkJaRjFoTTlOVE5kVVBMUGNHcnhPSndtQURpT3FTbnFJQTgxMkpxS25hN0dqUXll
DQp3WlAwNnpnTjdGZW1RUGI4WndxcUo4YjEzY0cwNXZ6VmFJNElCWEwwVWw3QjhObEt4ejlVU3pv
eGhMWGpucmZxDQpmWVdlRng1ZzBVdlZ4ZVZYbHRCYW1ybkwwdCtId0k3bmEycitvbFhKeVNCS2J0
amdabVVSbTU1cFVLcEhiNUFyDQpCMitTOENPN0YrRnMxQTFNd0pRaitTL1Rtcyt3SkczRGd4Sjlv
RDkvWXdBb2FEbGxadEw2TnI4VUFSU0dTVk09DQo9SUVJaw0KLS0tLS1FTkQgUEdQIFNJR05BVFVS
RS0tLS0tDQo=
Hi all,
i am considering to drop auto-server support for 1.0 (due the coming
week, btw, with lots of improvements, fixes and features!).
Currently, if you install devpi, and then run "devpi install|upload|..."
and are using the default http://localhost:3141 devpi instance, it will
start and manage a background devpi-server process. The whole logic
is hairy so i'd rather like to drop supporting it and require that
you have a "devpi-server" running (for starters, just in another terminal,
eventually in a --gendeploy'ed devpi-server or with your own init scripts).
As far as the quickstart is concerned, it adds another instruction like this::
devpi-server # run in a separate terminal
before you can proceed with "devpi ...".
cheers,
holger