From 21a873b7e7dbfcea8e5c6e5924c7928220553efd Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Mon, 27 Jan 2020 16:49:51 +0200 Subject: [PATCH 01/11] Release tagged builds to PyPi using Travis --- .travis.yml | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index a29b8828..15d496d2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,6 @@ language: python sudo: false cache: - pip -python: - - 3.6 env: global: - ASYNC_TEST_TIMEOUT=15 @@ -26,12 +24,21 @@ after_success: - codecov # auto-deploy releases on tags -deploy: - provider: pypi - distributions: sdist bdist_wheel - user: jupyterhub-bot - password: - secure: mZbQVF80AO+cxJM/0qbeFoAcHSBE3YSeT4igUXlKypRVEc0qNskJbh6Ofh5qIHb4dO/LF7Si3Bms1cP3Wai7wPFAglGPV/CQ3TQjrwjWy1FYwyAvduSiKZ7xsHoSvVakqfzl8R/XSmBbajbECts+7NuJuyJGAvWldeHlWo7UXt+wiKFCK8jGcXcqCcf8F8kVkF7gfx+Z/sO3JMintMclz+N3GoUiNYnmZ3fI3PEoFeDETGy9mzlM8eQi6LnZ16rod53KKA1q3EKziNvqVgYObgD95NfH/gtgZ+rDhEIS0kPMUUu5ihfofvY/I2tV3IX/Pbih2ssHDRolthVcbPP1+L1WdCPos7IpEHKDYZuTwMizuaPaGes2YHREMCN3AtncT456X4gtH7KuWG3gAXOrmTLDp+ShaevoJCF0Qk2E0WzVngqV//stFOhwZaxV1uRb4xujTI0Ak35yKnfuiLbrOyoZ+8eiwOwhE2C0l3BKNy+xLpBMQZVoX87WTPrQzNOv6bV5ZX9Mp+pJTOnUFJOrwvLHCm3hZtWMcijAVNuR3Wi0zsJVaqCtB7/qqUtWw1PUpwyVnA9DpgGOxXo4+tVDy75izq0GTYivqpFq9EyXzE2UyxDjgRK+I3OAEUiSJ1tIGw/T2306iVf2EfpMVjWQdX4Wnz+b123bTIE7haoiUxc= - on: - tags: true - repo: jupyterhub/traefik-proxy +jobs: + fast_finish: true + include: + - python: 3.6 + - python: 3.7 + # Only deploy if all test jobs passed + - stage: deploy + python: 3.7 + if: tag IS present + deploy: + provider: pypi + user: jupyterhub-bot + # password: see secret PYPI_PASSWORD variable + distributions: sdist bdist_wheel + on: + # Without this we get the note about: + # Skipping a deployment with the pypi provider because this branch is not permitted: + tags: true From 2be013b234e61dfce1b1d55f0d3019ea7d29bf3c Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Mon, 27 Jan 2020 16:50:19 +0200 Subject: [PATCH 02/11] Add release instructions --- RELEASE.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 00000000..f0b86e9b --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,71 @@ +# How to make a release + +`traefik-proxy` is a package [available on +PyPI](https://pypi.org/project/jupyterhub-traefik-proxy/). +The PyPI release is done automatically by TravisCI when a tag +is pushed. + +For you to follow along according to these instructions, you need +to have push rights to the [traefik-proxy GitHub +repository](https://github.com/jupyterhub/traefik-proxy). + +## Steps to make a release + +1. Checkout master and make sure it is up to date. + + ```shell + ORIGIN=${ORIGIN:-origin} # set to the canonical remote, e.g. 'upstream' if 'origin' is not the official repo + git checkout master + git fetch $ORIGIN master + git reset --hard $ORIGIN/master + # WARNING! This next command deletes any untracked files in the repo + git clean -xfd + ``` + +1. Update [changelog.rst](docs/source/changelog.rst) and add it to + the working tree. + + ```shell + git add traefik-proxy/docs/source/changelog.rst + ``` + + Tip: Identifying the changes can be made easier with the help of the + [choldgraf/github-activity](https://github.com/choldgraf/github-activity) + utility. + +1. Set a shell variable to be the new version you want to release. + + ```shell + VERSION=... # e.g. 1.2.3 + git commit -m "release $VERSION" + ``` + + Tip: You can get the current project version with: + + ```shell + git describe --abbrev=0 + ``` + +1. Push your commit to master. + + ```shell + # first push commits without a tags to ensure the + # commits comes through, because a tag can otherwise + # be pushed all alone without company of rejected + # commits, and we want have our tagged release coupled + # with a specific commit in master + git push $ORIGIN master + ``` + +1. Create a git tag for the pushed release commit and push it. + + ```shell + git tag -a $VERSION -m $VERSION HEAD~1 + + # then verify you tagged the right commit + git log + + # then push it + git push $ORIGIN refs/tags/$VERSION + ``` + From 92a9d7558176c98d9167535a32929e3100fd6459 Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Mon, 27 Jan 2020 16:50:36 +0200 Subject: [PATCH 03/11] Update changelog --- docs/source/changelog.rst | 122 +++++++++++++++++++++++++++++++++----- 1 file changed, 108 insertions(+), 14 deletions(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 57b65a49..b6a0cd02 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -3,29 +3,123 @@ Changes in jupyterhub-traefik-proxy =================================== -Unreleased ----------- +For detailed changes from the prior release, click on the version number +and its link will bring up a GitHub listing of changes. Use `git log` on +the command line for details. -0.1.3 ------ -- Load initial routing table from disk in TraefikTomlProxy - when resuming from a previous session. +`[Unreleased]`_ +--------------- -0.1.2 ------ +- Update README `#87`_ + (`@consideRatio `_) +- Handle ssl `#84`_ + `(@GeorgianaElena) `_ +- CONTRIBUTING: use long option in “pip install -e” `#82`_ + (`@muxator `_) +- Change traefik default version `#81`_ + `(@GeorgianaElena) `_ +- Add info about TraefikConsulProxy in readme `#80`_ + `(@GeorgianaElena) `_ + +.. _#87: https://github.com/jupyterhub/traefik-proxy/pull/87 +.. _#84: https://github.com/jupyterhub/traefik-proxy/pull/84 +.. _#82: https://github.com/jupyterhub/traefik-proxy/pull/82 +.. _#81: https://github.com/jupyterhub/traefik-proxy/pull/81 +.. _#80: https://github.com/jupyterhub/traefik-proxy/pull/80 + +`[0.1.4]`_ - 2019-09-20 +----------------------- + +- Add info about TraefikConsulProxy in readme `#80`_ + `(@GeorgianaElena) `_ +- Stop assuming kv_traefik_prefix ends with a slash `#79`_ + `(@GeorgianaElena) `_ +- Log info about what dynamic config file it’s used by the Hub `#77`_ + `(@GeorgianaElena) `_ +- Install script `#76`_ + `(@GeorgianaElena) `_ +- Set defaults for traefik api username and password `#75`_ + `(@GeorgianaElena) `_ +- Allow etcd and consul client ssl settings `#70`_ + `(@GeorgianaElena) `_ +- Fix format in install script warnings `#69`_ + `(@GeorgianaElena) `_ +- Create test coverage report `#65`_ + `(@GeorgianaElena) `_ +- Explicitly close consul client session `#64`_ + `(@GeorgianaElena) `_ +- Throughput results updated `#62`_ + `(@GeorgianaElena) `_ +- Make trefik’s log level configurable `#61`_ + `(@GeorgianaElena) `_ +- TraefikConsulProxy `#57`_ + `(@GeorgianaElena) `_ +- WIP Common proxy profiling suite `#54`_ + `(@GeorgianaElena) `_ + +.. _#80: https://github.com/jupyterhub/traefik-proxy/pull/80 +.. _#79: https://github.com/jupyterhub/traefik-proxy/pull/79 +.. _#77: https://github.com/jupyterhub/traefik-proxy/pull/77 +.. _#76: https://github.com/jupyterhub/traefik-proxy/pull/76 +.. _#75: https://github.com/jupyterhub/traefik-proxy/pull/75 +.. _#70: https://github.com/jupyterhub/traefik-proxy/pull/70 +.. _#69: https://github.com/jupyterhub/traefik-proxy/pull/69 +.. _#65: https://github.com/jupyterhub/traefik-proxy/pull/65 +.. _#64: https://github.com/jupyterhub/traefik-proxy/pull/64 +.. _#62: https://github.com/jupyterhub/traefik-proxy/pull/62 +.. _#61: https://github.com/jupyterhub/traefik-proxy/pull/61 +.. _#57: https://github.com/jupyterhub/traefik-proxy/pull/57 +.. _#54: https://github.com/jupyterhub/traefik-proxy/pull/54 + +`[0.1.3]`_ - 2019-02-26 +----------------------- + +- Try to load routes from file if cache is empty `#52`_ + (`@GeorgianaElena `_) +- close temporary file before renaming it `#51`_ + (`@minrk `_) + +.. _#52: https://github.com/jupyterhub/traefik-proxy/pull/52 +.. _#51: https://github.com/jupyterhub/traefik-proxy/pull/51 + + +`[0.1.2]`_ - 2019-02-22 +----------------------- - Fix possible race in atomic_writing with TraefikTomlProxy -0.1.1 ------ +`[0.1.1]`_ - 2019-02-22 +----------------------- + +- more logging / error handling `#49`_ + (`@minrk `_) +- make check_route_timeout configurable `#48`_ + (`@minrk `_) +- Update documentation and readme `#47`_ + (`@GeorgianaElena `_) +- Define only the proxy fixture in test_proxy `#46`_ + (`@GeorgianaElena `_) +- add mocks so that test_check_routes needs only proxy fixture `#44`_ + (`@minrk `_) +- Etcd with credentials `#43`_ + (`@GeorgianaElena `_) + +.. _#49: https://github.com/jupyterhub/traefik-proxy/pull/49 +.. _#48: https://github.com/jupyterhub/traefik-proxy/pull/48 +.. _#47: https://github.com/jupyterhub/traefik-proxy/pull/47 +.. _#46: https://github.com/jupyterhub/traefik-proxy/pull/46 +.. _#44: https://github.com/jupyterhub/traefik-proxy/pull/44 +.. _#43: https://github.com/jupyterhub/traefik-proxy/pull/43 -- make proxytest reusable with any Proxy implementation -- improve documentation -- improve logging and error handling -- make check_route_timeout configurable 0.1.0 ----- First release! + +.. _[0.1.4]: https://github.com/jupyterhub/traefik-proxy/compare/0.1.3...0.1.4 +.. _[0.1.3]: https://github.com/jupyterhub/traefik-proxy/compare/0.1.2...0.1.3 +.. _[0.1.2]: https://github.com/jupyterhub/traefik-proxy/compare/0.1.1...0.1.2 +.. _[0.1.1]: https://github.com/jupyterhub/traefik-proxy/compare/0.1.0...0.1.1 +.. _[Unreleased]: https://github.com/jupyterhub/traefik-proxy/compare/0.1.4...2e96af5861f717a136ea76919dfab585643642fa \ No newline at end of file From b35689a73921bcd8664da55a1c0efdae18648bc6 Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Mon, 27 Jan 2020 16:57:40 +0200 Subject: [PATCH 04/11] Fix README indentation --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 88a78217..6487ea7d 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,13 @@ API](https://jupyterhub.readthedocs.io/en/stable/reference/proxy.html), depending on how traefik store its routing configuration. For **smaller**, single-node deployments: - * TraefikTomlProxy -For **distributed** setups - * TraefikEtcdProxy - * TraefikConsulProxy +* TraefikTomlProxy + +For **distributed** setups: + +* TraefikEtcdProxy +* TraefikConsulProxy ## Installation The [documentation](https://jupyterhub-traefik-proxy.readthedocs.io) contains a From c12a32ba20cb41bd9d8b8d57cd8292d99613adad Mon Sep 17 00:00:00 2001 From: Georgiana Elena Date: Mon, 27 Jan 2020 17:25:26 +0200 Subject: [PATCH 05/11] Update .travis.yml Co-Authored-By: Erik Sundell From 5b33ca6b59d97165736a3dd004b8f44f7dd8eaf5 Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Tue, 28 Jan 2020 10:05:12 +0200 Subject: [PATCH 06/11] Addressed feedback --- .travis.yml | 2 -- RELEASE.md | 7 ++----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 15d496d2..47c1e6c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,8 @@ language: python -sudo: false cache: - pip env: global: - - ASYNC_TEST_TIMEOUT=15 - ETCDCTL_API=3 # installing dependencies diff --git a/RELEASE.md b/RELEASE.md index f0b86e9b..bb94cf87 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -40,12 +40,9 @@ repository](https://github.com/jupyterhub/traefik-proxy). git commit -m "release $VERSION" ``` - Tip: You can get the current project version with: + Tip: You can get the current project version by checking the [latest + tag on GitHub](https://github.com/jupyterhub/traefik-proxy/tags). - ```shell - git describe --abbrev=0 - ``` - 1. Push your commit to master. ```shell From 4404879d589f25346a25aa92e81b01fa5fbc9db8 Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Tue, 28 Jan 2020 14:22:58 +0200 Subject: [PATCH 07/11] Update release instructions --- RELEASE.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index bb94cf87..fa8b2b0c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -33,7 +33,8 @@ repository](https://github.com/jupyterhub/traefik-proxy). [choldgraf/github-activity](https://github.com/choldgraf/github-activity) utility. -1. Set a shell variable to be the new version you want to release. +1. Set a shell variable to be the new version you want to release. + The actual project version will be set from git automatically by versioneer. ```shell VERSION=... # e.g. 1.2.3 @@ -57,12 +58,12 @@ repository](https://github.com/jupyterhub/traefik-proxy). 1. Create a git tag for the pushed release commit and push it. ```shell - git tag -a $VERSION -m $VERSION HEAD~1 + git tag -a $VERSION -m "release $VERSION" # then verify you tagged the right commit git log # then push it - git push $ORIGIN refs/tags/$VERSION + git push --follow-tags ``` From a39ef13c091798d48afaf1542152709110a88509 Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Tue, 28 Jan 2020 14:24:19 +0200 Subject: [PATCH 08/11] Keep the manual list in changelog --- docs/source/changelog.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index b6a0cd02..a5549ce2 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -75,6 +75,11 @@ the command line for details. `[0.1.3]`_ - 2019-02-26 ----------------------- +- Load initial routing table from disk in TraefikTomlProxy + when resuming from a previous session. + +**Details:** + - Try to load routes from file if cache is empty `#52`_ (`@GeorgianaElena `_) - close temporary file before renaming it `#51`_ @@ -92,6 +97,13 @@ the command line for details. `[0.1.1]`_ - 2019-02-22 ----------------------- +- make proxytest reusable with any Proxy implementation +- improve documentation +- improve logging and error handling +- make check_route_timeout configurable + +**Details:** + - more logging / error handling `#49`_ (`@minrk `_) - make check_route_timeout configurable `#48`_ From c9884d346e605b0091e264912651bcc85aad18be Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Wed, 29 Jan 2020 12:05:42 +0200 Subject: [PATCH 09/11] Update GitHub issues badge link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6487ea7d..7a1b0900 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![TravisCI (.org) build status](https://img.shields.io/travis/jupyterhub/traefik-proxy/master?logo=travis)](https://travis-ci.org/jupyterhub/traefik-proxy) [![CircleCI build status](https://img.shields.io/circleci/build/github/jupyterhub/jupyterhub?logo=circleci)](https://circleci.com/gh/jupyterhub/jupyterhub) [![Latest PyPI version](https://img.shields.io/pypi/v/jupyterhub-traefik-proxy?logo=pypi)](https://pypi.python.org/pypi/jupyterhub-traefik-proxy) -[![GitHub](https://img.shields.io/badge/issue_tracking-github-blue?logo=github)](https://github.com/jupyterhub/jupyterhub/issues) +[![GitHub](https://img.shields.io/badge/issue_tracking-github-blue?logo=github)](https://github.com/jupyterhub/traefik-proxy/issues) [![Discourse](https://img.shields.io/badge/help_forum-discourse-blue?logo=discourse)](https://discourse.jupyter.org/c/jupyterhub) [![Gitter](https://img.shields.io/badge/social_chat-gitter-blue?logo=gitter)](https://gitter.im/jupyterhub/jupyterhub) From e1bce592563e8248620bbfe024d0b8ac138fb5fc Mon Sep 17 00:00:00 2001 From: GeorgianaElena Date: Wed, 29 Jan 2020 12:07:42 +0200 Subject: [PATCH 10/11] Add more details about versioneer --- RELEASE.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index fa8b2b0c..bda36589 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -34,7 +34,9 @@ repository](https://github.com/jupyterhub/traefik-proxy). utility. 1. Set a shell variable to be the new version you want to release. - The actual project version will be set from git automatically by versioneer. + The actual project version will be detected automatically by versioneer + from git tags inspection. The versioneer script will be run by setup.py + when packaging is occurring. ```shell VERSION=... # e.g. 1.2.3 @@ -64,6 +66,6 @@ repository](https://github.com/jupyterhub/traefik-proxy). git log # then push it - git push --follow-tags + git push $ORIGIN --follow-tags ``` From 0520946fe9fd6ba1376ce9cc627602d50fcaa3b3 Mon Sep 17 00:00:00 2001 From: Georgiana Elena Date: Wed, 29 Jan 2020 21:21:26 +0200 Subject: [PATCH 11/11] Update .travis.yml Co-Authored-By: Erik Sundell --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 47c1e6c0..aeeb5548 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ jobs: if: tag IS present deploy: provider: pypi - user: jupyterhub-bot + user: __token__ # password: see secret PYPI_PASSWORD variable distributions: sdist bdist_wheel on: