From 0631368072175264c750340e5a784ffbb11dd3e6 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Sun, 25 Oct 2020 11:39:39 +0100 Subject: [PATCH 1/7] Update README Rephrase some paragraphs and NOT mention specific versions. Use "2.x.y" as versions can change. --- README.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index 0a1fe664..87480460 100644 --- a/README.rst +++ b/README.rst @@ -12,18 +12,18 @@ A Python module for `semantic versioning`_. Simplifies comparing versions. .. warning:: As anything comes to an end, this project will focus on Python 3.x only. - New features and bugfixes will be integrated into the 3.x.y branch only. + New features and bugfixes will be integrated into semver3 only. Major version 3 of semver will contain some incompatible changes: - * removes support for Python 2.7 and 3.3 + * removes support for Python 2.7, 3.3, 3.4, and 3.5. * removes deprecated functions. - The last version of semver which supports Python 2.7 and 3.4 will be - 2.10.x. However, keep in mind, version 2.10.x is frozen: no new + The last version of semver which supports Python 2.7 and 3.5 will be + 2.x.y. However, keep in mind, this version is frozen: no new features nor backports will be integrated. - We recommend to upgrade your workflow to Python 3.x to gain support, + We recommend to upgrade your workflow to Python >=3.6 to gain support, bugfixes, and new features. The module follows the ``MAJOR.MINOR.PATCH`` style: From 61f835f74103419e3ac34bef38150d77a4fb79f8 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Sun, 25 Oct 2020 15:04:46 +0100 Subject: [PATCH 2/7] Support Python 3.8/3.9 for semver2 --- .travis.yml | 8 ++++++++ setup.py | 2 ++ tox.ini | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 54165f6e..95925cf1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,5 +32,13 @@ matrix: dist: xenial env: TOXENV=py37 + - python: "3.8" + dist: xenial + env: TOXENV=py38 + + - python: "3.9-dev" + dist: bionic + env: TOXENV=py39 + - python: "pypy" env: TOXENV=pypy diff --git a/setup.py b/setup.py index 746c1436..b8313673 100755 --- a/setup.py +++ b/setup.py @@ -99,6 +99,8 @@ def read_file(filename): "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "Topic :: Software Development :: Libraries :: Python Modules", ], python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", diff --git a/tox.ini b/tox.ini index 833c9655..003dc533 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,11 @@ [tox] envlist = flake8 - py{27,34,35,36,37} + py{27,34,35,36,37,38,39} pypy [testenv] -description = Run test suite +description = Run test suite for {basepython} whitelist_externals = make commands = pytest {posargs:} deps = From 17b703bd70e617aff401fcc177ba11d8f344f324 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Wed, 11 Nov 2020 08:57:21 +0100 Subject: [PATCH 3/7] Fix #322: Implement GitHub Action * Add "gh-action" section in tox.ini * Add .github/workflows/python-testing.yml * Use dependent jobs; first start check, then tests jobs * Remove black-formatting.yml * Remove .travis.yml (cherry picked from commit aa58f62b1b6f8ef378a9c270a643182a17b72228) --- ...lack-formatting.yml => python-testing.yml} | 51 ++++++++++++++----- .travis.yml | 44 ---------------- tox.ini | 16 +++++- 3 files changed, 51 insertions(+), 60 deletions(-) rename .github/workflows/{black-formatting.yml => python-testing.yml} (50%) delete mode 100644 .travis.yml diff --git a/.github/workflows/black-formatting.yml b/.github/workflows/python-testing.yml similarity index 50% rename from .github/workflows/black-formatting.yml rename to .github/workflows/python-testing.yml index 25b34f21..1147d288 100644 --- a/.github/workflows/black-formatting.yml +++ b/.github/workflows/python-testing.yml @@ -1,15 +1,20 @@ -name: Black Formatting +--- +name: Python -on: [pull_request] +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] jobs: - build: + check: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v1 - name: Output env variables run: | + echo "Default branch=${default-branch}" echo "GITHUB_WORKFLOW=${GITHUB_WORKFLOW}" echo "GITHUB_ACTION=$GITHUB_ACTION" echo "GITHUB_ACTIONS=$GITHUB_ACTIONS" @@ -26,18 +31,36 @@ jobs: cat $GITHUB_EVENT_PATH echo "\n" echo "::debug::---end" - - - name: Set up Python 3.7 - uses: actions/setup-python@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 with: - python-version: 3.7 - + python-version: 3.6 - name: Install dependencies run: | - python -m pip install --upgrade pip black + python3 -m pip install --upgrade pip + pip install tox tox-gh-actions + - name: Check + run: | + tox -e checks + + tests: + needs: check + runs-on: ubuntu-latest + strategy: + max-parallel: 5 + matrix: + python-version: [3.6, 3.7, 3.8, 3.9] - - name: Run black - id: black + steps: + - uses: actions/checkout@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python3 -m pip install --upgrade pip + pip install tox tox-gh-actions + - name: Test with tox run: | - black --check . - echo "::set-output name=rc::$?" + tox diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 95925cf1..00000000 --- a/.travis.yml +++ /dev/null @@ -1,44 +0,0 @@ -# config file for automatic testing at travis-ci.org -language: python -cache: pip - -before_install: - sudo apt-get install -y python3-dev - -install: - - pip install --upgrade pip setuptools - - pip install virtualenv tox - -script: tox -v - -matrix: - include: - - python: "2.7" - env: TOXENV=py27 - - - python: "3.4" - env: TOXENV=py34 - - - python: "3.6" - env: TOXENV=checks - - - python: "3.5" - env: TOXENV=py35 - - - python: "3.6" - env: TOXENV=py36 - - - python: "3.7" - dist: xenial - env: TOXENV=py37 - - - python: "3.8" - dist: xenial - env: TOXENV=py38 - - - python: "3.9-dev" - dist: bionic - env: TOXENV=py39 - - - python: "pypy" - env: TOXENV=pypy diff --git a/tox.ini b/tox.ini index 003dc533..aa42d9b9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,8 +1,20 @@ [tox] envlist = - flake8 + checks py{27,34,35,36,37,38,39} - pypy +isolated_build = True + +[gh-actions] +python = + 2.7: py27 + 3.4: py34 + 3.5: py35 + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + # 3.10: py310 + [testenv] description = Run test suite for {basepython} From 638fa1e7b53346b74ed1c93206287e8ab5cd35fb Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Thu, 12 Nov 2020 14:42:05 +0100 Subject: [PATCH 4/7] Add build-system to pyproject.toml --- pyproject.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index eca41891..b19fc61c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,12 @@ +[build-system] +requires = [ + # sync with setup.py until we discard non-pep-517/518 + "setuptools>=40.0", + "setuptools-scm", + "wheel", +] +build-backend = "setuptools.build_meta" + [tool.black] line-length = 88 target-version = ['py37'] From 194c6e637b7a860706584c568d85955ec2d8c2d9 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Fri, 11 Dec 2020 23:50:30 +0100 Subject: [PATCH 5/7] Change README (Gitter -> GH Discussions) * Remove Gitter badge * Add GitHub Discussions badge (cherry picked from commit 07cacb57a158c4627a424dd3bb6ba4c8bba9d73b) --- README.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 87480460..6f1e7a74 100644 --- a/README.rst +++ b/README.rst @@ -5,7 +5,8 @@ Quickstart A Python module for `semantic versioning`_. Simplifies comparing versions. -|build-status| |python-support| |downloads| |license| |docs| |black| +|GHAction| |python-support| |downloads| |license| |docs| |black| +|openissues| |GHDiscussion| .. teaser-end @@ -113,3 +114,11 @@ There are other functions to discover. Read on! .. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Black Formatter +.. |openissues| image:: http://isitmaintained.com/badge/open/python-semver/python-semver.svg + :target: http://isitmaintained.com/project/python-semver/python-semver + :alt: Percentage of open issues +.. |GHAction| image:: https://github.com/python-semver/python-semver/workflows/Python/badge.svg + :alt: Python +.. |GHDiscussion| image:: https://shields.io/badge/GitHub-%20Discussions-green?logo=github + :target: https://github.com/python-semver/python-semver/discussions + :alt: GitHub Discussion From 8d72677cf964365c8db033fbd436ff5dd342fb1b Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Tue, 16 Feb 2021 10:29:08 +0100 Subject: [PATCH 6/7] Fix tests for Python 3.10 --- docs/usage.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.rst b/docs/usage.rst index cda55670..c175d648 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -455,7 +455,7 @@ To compare two versions depends on your type: >>> v > dict(major=1, unknown=42) Traceback (most recent call last): ... - TypeError: __init__() got an unexpected keyword argument 'unknown' + TypeError: ...__init__() got an unexpected keyword argument 'unknown' Other types cannot be compared. From dc6e816137c81b6d08631e0625e5051a62bdc3bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lum=C3=ADr=20=27Frenzy=27=20Balhar?= Date: Tue, 16 Feb 2021 15:31:15 +0100 Subject: [PATCH 7/7] Update docs/usage.rst Co-authored-by: Tom Schraitle --- docs/usage.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/usage.rst b/docs/usage.rst index c175d648..365d6af0 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -455,7 +455,7 @@ To compare two versions depends on your type: >>> v > dict(major=1, unknown=42) Traceback (most recent call last): ... - TypeError: ...__init__() got an unexpected keyword argument 'unknown' + TypeError: ... got an unexpected keyword argument 'unknown' Other types cannot be compared. @@ -786,4 +786,3 @@ the original class: Traceback (most recent call last): ... ValueError: '1.2.4': not a valid semantic version tag. Must start with 'v' or 'V' -