From d8339203125f9eafb567f6ae2d784fe532046837 Mon Sep 17 00:00:00 2001 From: Trevor Bramwell Date: Mon, 10 Jul 2017 23:38:36 -0700 Subject: Update Invoke Tasks and use Twine for upload None of the tasks generated by the boilerplate included the 'context' argument required by the newest version of invoke. The 'invoke publish' task has been updated to use 'twine upload' instead of the less-secure 'python setup.py register/upload', and comments have been added to clarify possible steps needed to publish anteater. A 'invoke build' command has been added to build a source distribution and binary wheel distribution. JIRA: RELENG-237 Change-Id: I9ae705332b592ef8880d52b7d20624180e23677a Signed-off-by: Trevor Bramwell --- tasks.py | 53 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 18 deletions(-) (limited to 'tasks.py') diff --git a/tasks.py b/tasks.py index 55ac340..30bef4c 100644 --- a/tasks.py +++ b/tasks.py @@ -11,47 +11,64 @@ build_dir = os.path.join(docs_dir, '_build') @task -def test(): +def test(ctx): run('python setup.py test', pty=True) @task -def clean(): - run("rm -rf build") - run("rm -rf dist") - run("rm -rf anteater.egg-info") - clean_docs() +def clean(ctx): + ctx.run("rm -rf build") + ctx.run("rm -rf dist") + ctx.run("rm -rf anteater.egg-info") + clean_docs(ctx) print("Cleaned up.") @task -def clean_docs(): - run("rm -rf %s" % build_dir) +def clean_docs(ctx): + ctx.run("rm -rf %s" % build_dir) @task -def browse_docs(): - run("open %s" % os.path.join(build_dir, 'index.html')) +def browse_docs(ctx): + ctx.run("open %s" % os.path.join(build_dir, 'index.html')) @task -def build_docs(clean=False, browse=False): +def build_docs(ctx, clean=False, browse=False): if clean: clean_docs() - run("sphinx-build %s %s" % (docs_dir, build_dir), pty=True) + ctx.run("sphinx-build %s %s" % (docs_dir, build_dir), pty=True) if browse: browse_docs() @task -def readme(browse=False): - run('rst2html.py README.rst > README.html') +def readme(ctx, browse=False): + ctx.run('rst2html.py README.rst > README.html') @task -def publish(test=False): - """Publish to the cheeseshop.""" +def build(ctx): + """Build source distribution and wheels.""" + ctx.run('python setup.py sdist bdist_wheel') + + +@task +def publish(ctx, test=False): + """Publish to the cheeseshop. + + This command follows the Python packaging guidelines: + https://packaging.python.org/tutorials/distributing-packages + + Information on configuration required for '--test' can be found + here: https://wiki.python.org/moin/TestPyPI + + Before uploading please ensure you've signed the release using: + + gpg --detach-sign -a dist/package-1.0.1.tar.gz + """ if test: - run('python setup.py register -r test sdist upload -r test') + ctx.run('twine upload -r test dist/*') else: - run("python setup.py register sdist upload") + ctx.run("twine upload dist/*") -- cgit 1.2.3-korg