Plug-in for zest.releaser to allow uploading the created egg via SCP or SFTP to configurable destinations.
Copyright (c) 2010-2017 gocept gmbh & co. kg and contributors
All Rights Reserved.
This software is subject to the provisions of the Zope Public License, Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY AND ALL EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
Custom egg upload
This package provides a plugin for zest.releaser that offers to upload the released egg via SCP, SFTP or HTTP(S) PUT (WebDAV) to a custom location (instead of or in addition to PyPI).
To use, add a section to your ~/.pypirc like the following:
[gocept.zestreleaser.customupload] gocept = scp://download.gocept.com//var/www/packages gocept.special = http://dav.gocept.com/special gocept.sftp = sftp://email@example.com/home/repo/eggs
If the name of the package being released starts with one of the keys in that section (longest match wins, case insensitive), you will be prompted whether to upload the egg (that was created by zest.releaser by checking out the tag) to the given server.
If the server is using non-standard ports for scp or sftp (the standard port is 22 in both cases), you can signal it including the port in the server url, as follows:
[gocept.zestreleaser.customupload] gocept.scp = scp://download.gocept.com:6522//var/www/packages gocept.sftp = sftp://firstname.lastname@example.org:7522/home/repo/eggs
In the first case, the scp will be done to the port 6522 instead to the standard 22 and in the second case the sftp will connect to port 7522 instead to 22
Options for HTTP(S) PUT (WebDAV)
HTTP(S) PUT (WebDAV) is implemented using curl to add options to curl, e. g. to disable certificate checks, add the options in front of the URL like this:
[gocept.zestreleaser.customupload] gocept.special = --insecure https://dav.gocept.com/special
In addition to uploading the egg, the plugin also offers to upload generated documentation.
To use this functionality, create a ~/.zestreleaserrc that contains something like the following:
[gocept.zestreleaser.customupload.doc] gocept = docs.gocept.com:/var/www/doc
If the name of the package being released starts with one of the keys in that section, the plugin will run ./bin/doc to generate the documentation and then prompt to upload the contents of ./build/doc. The upload destination is assembled from the configured prefix, the package name and version. In the example, the upload location would be /var/www/doc/gocept.foo/1.3.
The source code is available in the Mercurial repository at https://bitbucket.org/gocept/gocept.zestreleaser.customupload
Please report any bugs you find at https://bitbucket.org/gocept/gocept.zestreleaser.customupload/issues
- Support non-default port numbers for scp and sftp [erral]
- Claim support for Python 3.6 and PyPy3.
- Drop support for Python 2.6 and 3.3.
- Move repos to https://bitbucket.org/gocept/gocept.zestreleaser.customupload
- Make tests compatible to zest.releaser >= 3.51.
- Claim Python 3.3 to 3.5 and PyPy support, thus requiring zest.releaser >= 5.0.
- Drop Python 2.5 support.
- If the destination URL contains username and password, do not display the password on the console when asking for upload.
- Allow options in HTTP(S) PUT (WebDAV) upload.
- Added some trove classifiers to indicate suported Python versions.
- Allow uploading via SFTP (patch by Godefroid Chapelle <email@example.com>).
- Fixed documentation of SCP upload configuration.
- Add second plugin point that builds and uploads documentation
- Allow uploading via HTTP PUT (WebDAV) [CZ].
- Make matching package names case insensitive [bug reported by firstname.lastname@example.org].
- Upload everything from the dist/ directory, so it works for any egg format, .zip, .tar.gz, .egg, or else [suggestion by email@example.com].
- Added a MANIFEST.in so that the created egg actually works.
- first release [WS].