From 008fc2c244b65058c1aa3371548fa08223ff2846 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 12:27:23 +0100 Subject: [PATCH 01/10] Fixes for problems found by OpenPathSampling * `bump_dev_version`: return v0.0.0.dev0 if URL 404s (first upload!) * stages: deploy stages (at least) should override all job lifecycle phases --- autorelease/scripts/bump_dev_version.py | 6 +++++- travis_stages/deploy_pypi.yml | 6 ++++++ travis_stages/deploy_testpypi.yml | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/autorelease/scripts/bump_dev_version.py b/autorelease/scripts/bump_dev_version.py index da22e59..a5e017f 100644 --- a/autorelease/scripts/bump_dev_version.py +++ b/autorelease/scripts/bump_dev_version.py @@ -12,7 +12,11 @@ def get_latest_pypi(package, index="https://test.pypi.org/pypi"): url = "/".join([index, package, 'json']) req = requests.get(url) - version = max([Version(v) for v in req.json()['releases'].keys()]) + if req.ok: + version = max([Version(v) for v in req.json()['releases'].keys()]) + else: + # probably 404'd because it isn't there + version = "0.0.0.dev0" return str(version) def _strip_dev(version_str): diff --git a/travis_stages/deploy_pypi.yml b/travis_stages/deploy_pypi.yml index e5e4887..3da550a 100644 --- a/travis_stages/deploy_pypi.yml +++ b/travis_stages/deploy_pypi.yml @@ -4,8 +4,13 @@ jobs: # This stage runs when a version-labelled tag is made. It deploys the # package to PyPI. if: tag =~ ^v[0-9]+\. + before_install: skip install: skip + before_script: skip + before_cache: skip script: skip + after_success: skip + # before_deploy is allowed deploy: provider: pypi distributions: sdist bdist_wheel @@ -14,3 +19,4 @@ jobs: on: tags: true password: $TWINE_PASSWORD + after_script: skip diff --git a/travis_stages/deploy_testpypi.yml b/travis_stages/deploy_testpypi.yml index fccf600..907578e 100644 --- a/travis_stages/deploy_testpypi.yml +++ b/travis_stages/deploy_testpypi.yml @@ -4,6 +4,7 @@ jobs: # This stage runs when you make a PR to stable. It tests that the # deployment to testpypi works. if: "(branch = stable) and (type = pull_request)" + before_install: skip install: - pip install twine - pip install autorelease @@ -11,9 +12,16 @@ jobs: # the branch tag to whatever is needed) #- pip install git+https://github.com/dwhswenson/autorelease.git@release-0.0.18#egg=autorelease - hash -r + before_script: + - if [ -z "$TWINE_USERNAME" ]; then echo "Missing TWINE_USERNAME"; fi + - if [ -z "$TWINE_PASSWORD" ]; then echo "Missing TWINE_PASSWORD"; fi script: - bump-dev-version # comes from autorelease - python setup.py --version - python setup.py sdist bdist_wheel - twine check dist/* - twine upload --repository-url https://test.pypi.org/legacy/ dist/* + after_success: skip + after_failure: skip + # deploy stuff won't be run on PR; don't need to override + after_script: skip From b2613b7887905bb3d3cf819de656f283659ee041 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 12:44:37 +0100 Subject: [PATCH 02/10] use this branch in autorelease-travis (debuggin) --- autorelease-travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/autorelease-travis.yml b/autorelease-travis.yml index 017c771..3f67884 100644 --- a/autorelease-travis.yml +++ b/autorelease-travis.yml @@ -1,6 +1,6 @@ # AUTORELEASE v0.1.1.dev0 import: - - dwhswenson/autorelease:travis_stages/deploy_testpypi.yml@master - - dwhswenson/autorelease:travis_stages/cut_release.yml@master - - dwhswenson/autorelease:travis_stages/deploy_pypi.yml@master - - dwhswenson/autorelease:travis_stages/test_testpypi.yml@master + - dwhswenson/autorelease:travis_stages/deploy_testpypi.yml@ops_fixes + - dwhswenson/autorelease:travis_stages/cut_release.yml@ops_fixes + - dwhswenson/autorelease:travis_stages/deploy_pypi.yml@ops_fixes + - dwhswenson/autorelease:travis_stages/test_testpypi.yml@ops_fixes From 9b45fb8d13838348118da12d95dc5c5145aeb766 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 13:09:17 +0100 Subject: [PATCH 03/10] override all lifecycle phases that aren't used --- travis_stages/cut_release.yml | 5 +++++ travis_stages/deploy_testpypi.yml | 4 ++-- travis_stages/test_testpypi.yml | 5 +++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/travis_stages/cut_release.yml b/travis_stages/cut_release.yml index 28c6691..c2ec5a7 100644 --- a/travis_stages/cut_release.yml +++ b/travis_stages/cut_release.yml @@ -5,9 +5,14 @@ jobs: # release based on the current stable branch and the release notes # from the last PR merged into stable. if: "(branch = stable) and (not type in (pull_request, cron))" + before_install: skip install: - pip install autorelease + before_script: skip script: - VERSION=`python setup.py --version` - PROJECT=`python setup.py --name` - autorelease-release --project $PROJECT --version $VERSION --token $AUTORELEASE_TOKEN + after_success: skip + after_failure: skip + after_script: skip diff --git a/travis_stages/deploy_testpypi.yml b/travis_stages/deploy_testpypi.yml index 907578e..280ed14 100644 --- a/travis_stages/deploy_testpypi.yml +++ b/travis_stages/deploy_testpypi.yml @@ -13,8 +13,8 @@ jobs: #- pip install git+https://github.com/dwhswenson/autorelease.git@release-0.0.18#egg=autorelease - hash -r before_script: - - if [ -z "$TWINE_USERNAME" ]; then echo "Missing TWINE_USERNAME"; fi - - if [ -z "$TWINE_PASSWORD" ]; then echo "Missing TWINE_PASSWORD"; fi + - if [ -z "$TWINE_USERNAME" ] ; then echo "Missing TWINE_USERNAME"; fi + - if [ -z "$TWINE_PASSWORD" ] ; then echo "Missing TWINE_PASSWORD"; fi script: - bump-dev-version # comes from autorelease - python setup.py --version diff --git a/travis_stages/test_testpypi.yml b/travis_stages/test_testpypi.yml index 5da4511..98e0a30 100644 --- a/travis_stages/test_testpypi.yml +++ b/travis_stages/test_testpypi.yml @@ -5,6 +5,7 @@ jobs: # been deployed to testpypi. It checks that the deployed package # works. if: "(branch = stable) and (type = pull_request)" + before_install: skip install: - pip install autorelease # this is for debugging anything in autorelease used here (change @@ -16,6 +17,7 @@ jobs: - export VERSION=`pypi-max-version $PROJECT` - echo "Installing ${PROJECT}==${VERSION} (allowing pre-releases)" - pip install --pre --force-reinstall --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ${PROJECT}==${VERSION} + before_script: skip script: | if [ -n "$AUTORELEASE_TEST_TESTPYPI" ]; then eval $AUTORELEASE_TEST_TESTPYPI @@ -24,3 +26,6 @@ jobs: python -c "import $PROJECT" py.test --pyargs $PROJECT fi + after_failure: skip + after_success: skip + after_script: skip From ba70b98602a26bf12671f120be61b5c6d9e4cee8 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 14:13:05 +0100 Subject: [PATCH 04/10] bump 0.1.2 --- autorelease-travis.yml | 8 ++++---- devtools/conda-recipe/meta.yaml | 2 +- setup.cfg | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/autorelease-travis.yml b/autorelease-travis.yml index 9662793..a1901ce 100644 --- a/autorelease-travis.yml +++ b/autorelease-travis.yml @@ -2,7 +2,7 @@ # for nonrelease, use @master # for release, use v${VERSION}, e.g., v1.0.0 import: - - dwhswenson/autorelease:travis_stages/deploy_testpypi.yml@v0.1.1 - - dwhswenson/autorelease:travis_stages/cut_release.yml@v0.1.1 - - dwhswenson/autorelease:travis_stages/deploy_pypi.yml@v0.1.1 - - dwhswenson/autorelease:travis_stages/test_testpypi.yml@v0.1.1 + - dwhswenson/autorelease:travis_stages/deploy_testpypi.yml@master + - dwhswenson/autorelease:travis_stages/cut_release.yml@master + - dwhswenson/autorelease:travis_stages/deploy_pypi.yml@master + - dwhswenson/autorelease:travis_stages/test_testpypi.yml@master diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 73c1ed1..0dcb6ce 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,7 +1,7 @@ package: name: autorelease # add ".dev0" for unreleased versions - version: "0.1.1" + version: "0.1.2.dev0" source: path: ../../ diff --git a/setup.cfg b/setup.cfg index 15c870d..4c1f035 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = autorelease -version = 0.1.1 +version = 0.1.2.dev0 # version should end in .dev0 if this isn't to be released short_description = Tools to keep the release process clean. description = Tools to keep the release process clean. From 4e74069e649487462d50bd51d9e0accd9c8ae388 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 15:22:15 +0100 Subject: [PATCH 05/10] fix setup.py fo py2 problems in OPS --- setup.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 2937037..cf559c8 100644 --- a/setup.py +++ b/setup.py @@ -76,11 +76,7 @@ def __init__(self, import_name): def visit_ImportFrom(self, node): if node.module == self.import_name: - replacement = ast.Raise(exc=ast.Call( - func=ast.Name(id='ImportError', ctx=ast.Load()), - args=[], - keywords=[], - ), cause=None) + replacement = ast.parse("raise ImportError()").body[0] return ast.copy_location(replacement, node) else: return node From a4b49a33c3878dd120e41ce5ee945a8fa22c0929 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 15:40:50 +0100 Subject: [PATCH 06/10] alternate fix for bump when version isn't found --- autorelease/scripts/bump_dev_version.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/autorelease/scripts/bump_dev_version.py b/autorelease/scripts/bump_dev_version.py index a5e017f..62dc29d 100644 --- a/autorelease/scripts/bump_dev_version.py +++ b/autorelease/scripts/bump_dev_version.py @@ -1,21 +1,25 @@ import argparse import time + try: from configparser import ConfigParser, NoSectionError, NoOptionError except ImportError: # py2 from ConfigParser import ConfigParser, NoSectionError, NoOptionError + +from json import JSONDecodeError + from packaging.version import Version import requests def get_latest_pypi(package, index="https://test.pypi.org/pypi"): url = "/".join([index, package, 'json']) req = requests.get(url) - if req.ok: + try: version = max([Version(v) for v in req.json()['releases'].keys()]) - else: - # probably 404'd because it isn't there + except JSONDecodeError: + # couldn't find a version, so we're okay version = "0.0.0.dev0" return str(version) From ce420e96475c3c36d9dde0505dfb48e163bff5a0 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Thu, 12 Dec 2019 15:44:55 +0100 Subject: [PATCH 07/10] install this branch in travis configs --- travis_stages/deploy_testpypi.yml | 3 ++- travis_stages/test_testpypi.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/travis_stages/deploy_testpypi.yml b/travis_stages/deploy_testpypi.yml index 280ed14..0a9aee7 100644 --- a/travis_stages/deploy_testpypi.yml +++ b/travis_stages/deploy_testpypi.yml @@ -7,7 +7,8 @@ jobs: before_install: skip install: - pip install twine - - pip install autorelease + #- pip install autorelease + - pip install git+https://github.com/dwhswenson/autorelease@ops_fixes # this is for debugging anything in autorelease used here (change # the branch tag to whatever is needed) #- pip install git+https://github.com/dwhswenson/autorelease.git@release-0.0.18#egg=autorelease diff --git a/travis_stages/test_testpypi.yml b/travis_stages/test_testpypi.yml index 98e0a30..bae7c7d 100644 --- a/travis_stages/test_testpypi.yml +++ b/travis_stages/test_testpypi.yml @@ -7,7 +7,8 @@ jobs: if: "(branch = stable) and (type = pull_request)" before_install: skip install: - - pip install autorelease + #- pip install autorelease + - pip install git+https://github.com/dwhswenson/autorelease@ops_fixes # this is for debugging anything in autorelease used here (change # the branch tag to whatever is needed) #- pip install git+https://github.com/dwhswenson/autorelease.git@release-0.0.18#egg=autorelease From 6f1858b1ef7e0f87dbed542013fa66aecb4a8492 Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Dec 2019 22:49:39 +0100 Subject: [PATCH 08/10] follow BanzaiMan's suggestion to fix deploy issue --- travis_stages/deploy_pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/travis_stages/deploy_pypi.yml b/travis_stages/deploy_pypi.yml index 3da550a..d77a6bf 100644 --- a/travis_stages/deploy_pypi.yml +++ b/travis_stages/deploy_pypi.yml @@ -9,7 +9,7 @@ jobs: before_script: skip before_cache: skip script: skip - after_success: skip + after_success: 'true' # before_deploy is allowed deploy: provider: pypi From fb0a76d59b30f3a973c7231695df3f19318748bb Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Dec 2019 23:05:21 +0100 Subject: [PATCH 09/10] Autorelease 0.1.2 --- autorelease-travis.yml | 10 +++++----- devtools/conda-recipe/meta.yaml | 2 +- setup.cfg | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/autorelease-travis.yml b/autorelease-travis.yml index ecf6557..6719230 100644 --- a/autorelease-travis.yml +++ b/autorelease-travis.yml @@ -1,8 +1,8 @@ -# AUTORELEASE v0.1.1 +# AUTORELEASE v0.1.2 # for nonrelease, use @master # for release, use v${VERSION}, e.g., v1.0.0 import: - - dwhswenson/autorelease:travis_stages/deploy_testpypi.yml@ops_fixes - - dwhswenson/autorelease:travis_stages/cut_release.yml@ops_fixes - - dwhswenson/autorelease:travis_stages/deploy_pypi.yml@ops_fixes - - dwhswenson/autorelease:travis_stages/test_testpypi.yml@ops_fixes + - dwhswenson/autorelease:travis_stages/deploy_testpypi.yml@v0.1.2 + - dwhswenson/autorelease:travis_stages/cut_release.yml@v0.1.2 + - dwhswenson/autorelease:travis_stages/deploy_pypi.yml@v0.1.2 + - dwhswenson/autorelease:travis_stages/test_testpypi.yml@v0.1.2 diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 0dcb6ce..ca181fe 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -1,7 +1,7 @@ package: name: autorelease # add ".dev0" for unreleased versions - version: "0.1.2.dev0" + version: "0.1.2" source: path: ../../ diff --git a/setup.cfg b/setup.cfg index 4c1f035..c68f1c4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = autorelease -version = 0.1.2.dev0 +version = 0.1.2 # version should end in .dev0 if this isn't to be released short_description = Tools to keep the release process clean. description = Tools to keep the release process clean. From 264c1fbc8682097dcd49ed6ffd08006915ff193d Mon Sep 17 00:00:00 2001 From: "David W.H. Swenson" Date: Fri, 13 Dec 2019 23:16:28 +0100 Subject: [PATCH 10/10] remove a few other specific uses of ops_fixes --- travis_stages/deploy_testpypi.yml | 4 ++-- travis_stages/test_testpypi.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/travis_stages/deploy_testpypi.yml b/travis_stages/deploy_testpypi.yml index 0a9aee7..deeb25b 100644 --- a/travis_stages/deploy_testpypi.yml +++ b/travis_stages/deploy_testpypi.yml @@ -7,8 +7,8 @@ jobs: before_install: skip install: - pip install twine - #- pip install autorelease - - pip install git+https://github.com/dwhswenson/autorelease@ops_fixes + - pip install autorelease + #- pip install git+https://github.com/dwhswenson/autorelease@ops_fixes # this is for debugging anything in autorelease used here (change # the branch tag to whatever is needed) #- pip install git+https://github.com/dwhswenson/autorelease.git@release-0.0.18#egg=autorelease diff --git a/travis_stages/test_testpypi.yml b/travis_stages/test_testpypi.yml index bae7c7d..fbd6cfd 100644 --- a/travis_stages/test_testpypi.yml +++ b/travis_stages/test_testpypi.yml @@ -7,8 +7,8 @@ jobs: if: "(branch = stable) and (type = pull_request)" before_install: skip install: - #- pip install autorelease - - pip install git+https://github.com/dwhswenson/autorelease@ops_fixes + - pip install autorelease + #- pip install git+https://github.com/dwhswenson/autorelease@ops_fixes # this is for debugging anything in autorelease used here (change # the branch tag to whatever is needed) #- pip install git+https://github.com/dwhswenson/autorelease.git@release-0.0.18#egg=autorelease