From fd1103ccda1c6c69bec57e868d508d433293df4c Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 16 Oct 2015 21:25:18 +0000 Subject: [PATCH 01/12] Tox tests detect downstream deps errors. --- tox.ini | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tox.ini b/tox.ini index b10558077..4eddc0e9d 100644 --- a/tox.ini +++ b/tox.ini @@ -10,13 +10,14 @@ envlist = py27,cover,lint [testenv] commands = - pip install -r requirements.txt -e acme -e .[testing] -e letsencrypt-apache -e letsencrypt-nginx -e letshelp-letsencrypt - # -q does not suppress errors - python setup.py test -q - python setup.py test -q -s acme - python setup.py test -q -s letsencrypt_apache - python setup.py test -q -s letsencrypt_nginx - python setup.py test -q -s letshelp_letsencrypt + pip install -e acme[testing] + nosetests acme + pip install -r requirements.txt -e .[testing] + nosetests letsencrypt + pip install letsencrypt-apache + nosetests letsencrypt_apache + pip install letsencrypt-nginx + nosetests letsencrypt_nginx setenv = PYTHONPATH = {toxinidir} From 2f3b6251c70beacbe4bc72fb64a3fbfcebe64f7e Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 16 Oct 2015 21:28:23 +0000 Subject: [PATCH 02/12] Tox: verbose nosetests --- tox.ini | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tox.ini b/tox.ini index 4eddc0e9d..0bd085975 100644 --- a/tox.ini +++ b/tox.ini @@ -8,16 +8,19 @@ skipsdist = true envlist = py27,cover,lint +# nosetest -v => more verbose output, allows to detect busy waiting +# loops, especially on Travis + [testenv] commands = pip install -e acme[testing] - nosetests acme + nosetests -v acme pip install -r requirements.txt -e .[testing] - nosetests letsencrypt + nosetests -v letsencrypt pip install letsencrypt-apache - nosetests letsencrypt_apache + nosetests -v letsencrypt_apache pip install letsencrypt-nginx - nosetests letsencrypt_nginx + nosetests -v letsencrypt_nginx setenv = PYTHONPATH = {toxinidir} @@ -27,12 +30,12 @@ setenv = [testenv:py33] commands = pip install -e acme[testing] - nosetests acme + nosetests -v acme [testenv:py34] commands = pip install -e acme[testing] - nosetests acme + nosetests -v acme [testenv:cover] basepython = python2.7 From fd4528baa39452aa38357cc87a2476646fd63e85 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 16 Oct 2015 22:04:18 +0000 Subject: [PATCH 03/12] tox: pip install -e --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 0bd085975..4818a7998 100644 --- a/tox.ini +++ b/tox.ini @@ -17,9 +17,9 @@ commands = nosetests -v acme pip install -r requirements.txt -e .[testing] nosetests -v letsencrypt - pip install letsencrypt-apache + pip install -e letsencrypt-apache nosetests -v letsencrypt_apache - pip install letsencrypt-nginx + pip install -e letsencrypt-nginx nosetests -v letsencrypt_nginx setenv = From 408903b7326a61212032582a5c84a377fd44d9d4 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 16 Oct 2015 22:04:52 +0000 Subject: [PATCH 04/12] tox: bring back test for letshelp_letsencrypt --- tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tox.ini b/tox.ini index 4818a7998..e45c1c125 100644 --- a/tox.ini +++ b/tox.ini @@ -21,6 +21,8 @@ commands = nosetests -v letsencrypt_apache pip install -e letsencrypt-nginx nosetests -v letsencrypt_nginx + pip install -e letshelp-letsencrypt + nosetests -v letshelp_letsencrypt setenv = PYTHONPATH = {toxinidir} From 86cd5af76e2fa532d8dbb1f0026078d3894fffd3 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 16 Oct 2015 22:17:31 +0000 Subject: [PATCH 05/12] Add comment about downstream deps fix --- tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tox.ini b/tox.ini index e45c1c125..febf1a2d0 100644 --- a/tox.ini +++ b/tox.ini @@ -12,6 +12,8 @@ envlist = py27,cover,lint # loops, especially on Travis [testenv] +# packages installed separately to ensure that dowstream deps problems +# are detected, c.f. #1002 commands = pip install -e acme[testing] nosetests -v acme From 78c296bbd12fadc1e675f14aabbd1986d6abd3f6 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 07:43:07 +0000 Subject: [PATCH 06/12] Integration tests: force le3.wtf over DVSNI. Becuse of https://github.com/letsencrypt/boulder/issues/985, we need to force standalone to one particular type of challenge at a time. #895 didn't fix it properly - it forgot about issuance of le3.wtf (CSR-initiated), which results in Travis builds failing 50% of a time, e.g. https://travis-ci.org/letsencrypt/letsencrypt/jobs/85875483#L3318. --- tests/boulder-integration.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/boulder-integration.sh b/tests/boulder-integration.sh index 0b726ccde..f01c0eff3 100755 --- a/tests/boulder-integration.sh +++ b/tests/boulder-integration.sh @@ -29,14 +29,22 @@ common() { # TODO: boulder#985 common_dvsni() { - common --dvsni-port 5001 --simple-http-port 0 "$@" + common \ + --standalone-supported-challenges dvsni \ + --dvsni-port 5001 \ + --simple-http-port 0 \ + "$@" } common_http() { - common --dvsni-port 0 --simple-http-port ${SIMPLE_HTTP_PORT:-5001} "$@" + common \ + --standalone-supported-challenges simpleHttp \ + --dvsni-port 0 \ + --simple-http-port ${SIMPLE_HTTP_PORT:-5001} \ + "$@" } -common_dvsni --domains le1.wtf --standalone-supported-challenges dvsni auth -common_http --domains le2.wtf --standalone-supported-challenges simpleHttp run +common_dvsni --domains le1.wtf auth +common_http --domains le2.wtf run common_http -a manual -d le.wtf auth export CSR_PATH="${root}/csr.der" KEY_PATH="${root}/key.pem" \ From 5621cf325d2e3b8ee3141a5aa5ef2d47d7dafae5 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 09:02:32 +0000 Subject: [PATCH 07/12] dev-release.sh: Update setuptools/pip --- tools/dev-release.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/dev-release.sh b/tools/dev-release.sh index cebe5001c..6a981b4c6 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -74,9 +74,10 @@ python -m SimpleHTTPServer $PORT & # installed from local PyPI rather than current directory (repo root) virtualenv --no-site-packages ../venv . ../venv/bin/activate -# Now, use our local PyPI. --pre allows installation of pre-release (incl. dev) +pip install -U setuptools +pip install -U pip +# Now, use our local PyPI pip install \ - --pre \ --extra-index-url http://localhost:$PORT \ letsencrypt $SUBPKGS # stop local PyPI From da631557241f09acc3fa209e3be3342073323c2f Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 09:09:57 +0000 Subject: [PATCH 08/12] dev release: clean up subpkgs/subpkg_modules confusion --- tools/dev-release.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/dev-release.sh b/tools/dev-release.sh index 6a981b4c6..655f66235 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -10,8 +10,8 @@ RELEASE_GPG_KEY="${RELEASE_GPG_KEY:-148C30F6F7E429337A72D992B00B9CC82D7ADF2C}" PORT=${PORT:-1234} # subpackages to be released -SUBPKGS=${SUBPKGS:-"acme letsencrypt_apache letsencrypt_nginx letshelp_letsencrypt"} -subpkgs_dirs="$(echo $SUBPKGS | sed s/_/-/g)" +SUBPKGS=${SUBPKGS:-"acme letsencrypt-apache letsencrypt-nginx letshelp-letsencrypt"} +subpkgs_modules="$(echo $SUBPKGS | sed s/-/_/g)" # letsencrypt_compatibility_test is not packaged because: # - it is not meant to be used by anyone else than Let's Encrypt devs # - it causes problems when running nosetests - the latter tries to @@ -29,7 +29,7 @@ cd $root git branch -f "$DEV_RELEASE_BRANCH" git checkout "$DEV_RELEASE_BRANCH" -for pkg_dir in $subpkgs_dirs +for pkg_dir in $SUBPKGS do sed -i $x "s/^version.*/version = '$version'/" $pkg_dir/setup.py done @@ -41,7 +41,7 @@ git tag --local-user "$RELEASE_GPG_KEY" \ --sign --message "Release $version" "$tag" echo "Preparing sdists and wheels" -for pkg_dir in . $subpkgs_dirs +for pkg_dir in . $SUBPKGS do cd $pkg_dir @@ -61,7 +61,7 @@ done mkdir "dist.$version" mv dist "dist.$version/letsencrypt" -for pkg_dir in $subpkgs_dirs +for pkg_dir in $SUBPKGS do mv $pkg_dir/dist "dist.$version/$pkg_dir/" done @@ -89,7 +89,7 @@ mkdir ../kgs kgs="../kgs/$version" pip freeze | tee $kgs pip install nose -nosetests letsencrypt $SUBPKGS +nosetests letsencrypt $subpkgs_modules echo "New root: $root" echo "KGS is at $root/kgs" From 31109b3332ed6314b2ea0e17956837c1d32421a8 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 10:55:41 +0000 Subject: [PATCH 09/12] log git commit in dev release --- tools/dev-release.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/dev-release.sh b/tools/dev-release.sh index 655f66235..682594f81 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -25,6 +25,7 @@ git tag --delete "$tag" || true root="$(mktemp -d -t le.$version.XXX)" echo "Cloning into fresh copy at $root" # clean repo = no artificats git clone . $root +git rev-parse HEAD cd $root git branch -f "$DEV_RELEASE_BRANCH" git checkout "$DEV_RELEASE_BRANCH" From 0cf2b5a4bd5f0b469522baa946e6be3346b1d29e Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 10:57:02 +0000 Subject: [PATCH 10/12] dev release: start with fresh virtualenv --- tools/dev-release.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/dev-release.sh b/tools/dev-release.sh index 682594f81..3d6f97202 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -22,6 +22,15 @@ tag="v$version" mv "dist.$version" "dist.$version.$(date +%s).bak" || true git tag --delete "$tag" || true +tmpvenv=$(mktemp -d) +virtualenv --no-site-packages $tmpvenv +. $tmpvenv/bin/activate +pip install -U setuptools +pip install -U pip +pip install -U wheel +# updating virtualenv does some crazy stuff... +pip install -U virtualenv + root="$(mktemp -d -t le.$version.XXX)" echo "Cloning into fresh copy at $root" # clean repo = no artificats git clone . $root From 9ebf530dc4f5882dc298fe3090d90fb894692ae7 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 11:12:46 +0000 Subject: [PATCH 11/12] dev-release: more comments about recent changes --- tools/dev-release.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/dev-release.sh b/tools/dev-release.sh index 3d6f97202..57f1b8a8e 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -25,10 +25,12 @@ git tag --delete "$tag" || true tmpvenv=$(mktemp -d) virtualenv --no-site-packages $tmpvenv . $tmpvenv/bin/activate +# update setuptools/pip just like in other places in the repo pip install -U setuptools -pip install -U pip -pip install -U wheel -# updating virtualenv does some crazy stuff... +pip install -U pip # latest pip => no --pre for dev releases +pip install -U wheel # setup.py bdist_wheel newer versions of +# virtualenv inherit setuptools/pip/wheel versions from current env +# when creating a child env pip install -U virtualenv root="$(mktemp -d -t le.$version.XXX)" From 17a09eac6b5e38c1d49a14ba9bec892295a42018 Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Sat, 17 Oct 2015 11:13:43 +0000 Subject: [PATCH 12/12] fix comment --- tools/dev-release.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/dev-release.sh b/tools/dev-release.sh index 57f1b8a8e..6bbc6ced4 100755 --- a/tools/dev-release.sh +++ b/tools/dev-release.sh @@ -28,9 +28,10 @@ virtualenv --no-site-packages $tmpvenv # update setuptools/pip just like in other places in the repo pip install -U setuptools pip install -U pip # latest pip => no --pre for dev releases -pip install -U wheel # setup.py bdist_wheel newer versions of -# virtualenv inherit setuptools/pip/wheel versions from current env -# when creating a child env +pip install -U wheel # setup.py bdist_wheel + +# newer versions of virtualenv inherit setuptools/pip/wheel versions +# from current env when creating a child env pip install -U virtualenv root="$(mktemp -d -t le.$version.XXX)"