From 31946b6a9c77f67a137778184db1948293c73962 Mon Sep 17 00:00:00 2001 From: Marc Cataford Date: Tue, 6 Feb 2024 23:50:18 -0500 Subject: [PATCH 1/3] build(deps): drop Python 3.7 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 73f540c..17df8a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "slack-status-cli" version = "0.1.0" description = "Tooling to set your Slack status on the fly without having to click around" -requires-python = ">=3.7" +requires-python = ">=3.8" readme = "README.md" [[project.authors]] name = "Marc Cataford" From ca838207954ed0af2f38c98f6fb0a4f3f181989b Mon Sep 17 00:00:00 2001 From: Marc Cataford Date: Tue, 6 Feb 2024 23:51:03 -0500 Subject: [PATCH 2/3] build(deps): update dependencies, desired python to 3.12 --- .github/workflows/main.yml | 12 ++-- .pylintrc | 9 +-- .python-version | 2 +- requirements.txt | 4 +- requirements_dev.txt | 70 ++++++++--------------- script/bootstrap | 3 +- tests/__snapshots__/test_integration.ambr | 1 + 7 files changed, 40 insertions(+), 61 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6e45aa6..f8e90bd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: [3.7, 3.8, 3.9] + python: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 @@ -31,7 +31,7 @@ jobs: needs: setup strategy: matrix: - python: [3.7, 3.8, 3.9] + python: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 @@ -77,7 +77,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.12" - uses: actions/cache@v2 id: dep-cache with: @@ -98,7 +98,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.12" - uses: actions/cache@v2 id: dep-cache with: @@ -107,8 +107,8 @@ jobs: ./slack-status-cli.venv - name: Setup dependencies run: | - . script/bootstrap - - name: Lint and format + . script/bootstrap.sh + - name: Build run: | python -m build - uses: actions/upload-artifact@v2 diff --git a/.pylintrc b/.pylintrc index f97fd25..b1bbe00 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,7 +1,8 @@ [MESSAGES CONTROL] -disable=consider-using-f-string, - broad-except, +disable=broad-except, + broad-exception-raised, + consider-using-f-string, + consider-using-with, invalid-name, - missing-module-docstring, missing-function-docstring, - consider-using-with + missing-module-docstring, diff --git a/.python-version b/.python-version index 1635d0f..e4fba21 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.9.6 +3.12 diff --git a/requirements.txt b/requirements.txt index ef62e16..e524b26 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile with python 3.9 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: # # pip-compile ./requirements.in # diff --git a/requirements_dev.txt b/requirements_dev.txt index 86feb85..51ab1d3 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,80 +1,56 @@ # -# This file is autogenerated by pip-compile with python 3.9 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: # # pip-compile ./requirements_dev.in # -astroid==2.12.12 +astroid==3.0.3 # via pylint -attrs==22.1.0 - # via pytest -black==22.10.0 +black==24.1.1 # via -r ./requirements_dev.in -build==0.9.0 +build==1.0.3 # via -r ./requirements_dev.in -click==8.1.3 +click==8.1.7 # via black -colored==1.4.3 - # via syrupy -coverage[toml]==6.5.0 +coverage[toml]==7.4.1 # via pytest-cov -dill==0.3.6 +dill==0.3.8 # via pylint -exceptiongroup==1.0.0 +iniconfig==2.0.0 # via pytest -iniconfig==1.1.1 - # via pytest -isort==5.10.1 +isort==5.13.2 # via pylint -lazy-object-proxy==1.8.0 - # via astroid mccabe==0.7.0 # via pylint -mypy-extensions==0.4.3 +mypy-extensions==1.0.0 # via black -packaging==21.3 +packaging==23.2 # via + # black # build # pytest -pathspec==0.10.1 +pathspec==0.12.1 # via black -pep517==0.13.0 - # via build -platformdirs==2.5.2 +platformdirs==4.2.0 # via # black # pylint -pluggy==1.0.0 +pluggy==1.4.0 # via pytest -pylint==2.15.5 +pylint==3.0.3 # via -r ./requirements_dev.in -pyparsing==3.0.9 - # via packaging -pytest==7.2.0 +pyproject-hooks==1.0.0 + # via build +pytest==7.4.4 # via # -r ./requirements_dev.in # pytest-cov # syrupy -pytest-cov==4.0.0 +pytest-cov==4.1.0 # via -r ./requirements_dev.in -syrupy==3.0.2 +syrupy==4.6.0 # via -r ./requirements_dev.in toml==0.10.2 # via -r ./requirements_dev.in -tomli==2.0.1 - # via - # black - # build - # coverage - # pep517 - # pylint - # pytest -tomlkit==0.11.6 +tomlkit==0.12.3 # via pylint -typing-extensions==4.4.0 - # via - # astroid - # black - # pylint -wrapt==1.14.1 - # via astroid diff --git a/script/bootstrap b/script/bootstrap index 4a2780c..9e70818 100644 --- a/script/bootstrap +++ b/script/bootstrap @@ -2,7 +2,8 @@ PROJECT="slack-status-cli" -python -m pip install pip==21.2.0 pip-tools==6.5.0 --no-cache +python -m pip install --upgrade setuptools +python -m pip install pip~=23.0 pip-tools~=7.3 --no-cache if [ ! -d "./$PROJECT.venv" ]; then python -m venv ./$PROJECT.venv diff --git a/tests/__snapshots__/test_integration.ambr b/tests/__snapshots__/test_integration.ambr index 8580035..1e1b29e 100644 --- a/tests/__snapshots__/test_integration.ambr +++ b/tests/__snapshots__/test_integration.ambr @@ -1,3 +1,4 @@ +# serializer version: 1 # name: test_sends_request_to_slack_api_on_success dict({ 'profile': list([ From 6c2233245d8db22f0cdd6df9724b7e115380ae8b Mon Sep 17 00:00:00 2001 From: Marc Cataford Date: Wed, 7 Feb 2024 00:03:42 -0500 Subject: [PATCH 3/3] build: update dependency tracking to use pyproject.toml --- .github/workflows/main.yml | 6 +++--- pyproject.toml | 13 +++++++++++++ requirements.in | 0 requirements.txt | 7 +------ requirements_dev.in | 9 --------- requirements_dev.txt | 20 +++++++------------- script/{bootstrap => bootstrap.sh} | 2 +- script/lock | 4 ---- script/lock.sh | 25 +++++++++++++++++++++++++ 9 files changed, 50 insertions(+), 36 deletions(-) delete mode 100644 requirements.in delete mode 100644 requirements_dev.in rename script/{bootstrap => bootstrap.sh} (83%) delete mode 100644 script/lock create mode 100644 script/lock.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f8e90bd..42ed1d2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,7 +25,7 @@ jobs: - name: Setup dependencies if: steps.dep-cache.outputs.cache-hit != 'true' run: | - . script/bootstrap + . script/bootstrap.sh test: runs-on: ubuntu-latest needs: setup @@ -45,7 +45,7 @@ jobs: ./slack-status-cli.venv - name: Setup dependencies run: | - . script/bootstrap + . script/bootstrap.sh - name: Tests run: | python -m pytest --cov-report xml --cov=slack_status_cli -s @@ -86,7 +86,7 @@ jobs: ./slack-status-cli.venv - name: Setup dependencies run: | - . script/bootstrap + . script/bootstrap.sh - name: Lint and format run: | python -m pylint **/*.py diff --git a/pyproject.toml b/pyproject.toml index 17df8a8..44af02f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,6 +4,8 @@ version = "0.1.0" description = "Tooling to set your Slack status on the fly without having to click around" requires-python = ">=3.8" readme = "README.md" +dependencies = [] + [[project.authors]] name = "Marc Cataford" email = "mcat@riseup.net" @@ -12,5 +14,16 @@ email = "mcat@riseup.net" Homepage = "https://github.com/mcataford/slack-status-cli" "Bug Tracker" = "https://github.com/mcataford/slack-status-cli/issues" +[project.optional-dependencies] +dev = [ + "build", + "toml", + "pytest", + "black", + "pylint", + "pytest-cov", + "syrupy", +] + [tool.setuptools] packages = [ "slack_status_cli",] diff --git a/requirements.in b/requirements.in deleted file mode 100644 index e69de29..0000000 diff --git a/requirements.txt b/requirements.txt index e524b26..8b13789 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1 @@ -# -# This file is autogenerated by pip-compile with Python 3.12 -# by the following command: -# -# pip-compile ./requirements.in -# + diff --git a/requirements_dev.in b/requirements_dev.in deleted file mode 100644 index fbd06f6..0000000 --- a/requirements_dev.in +++ /dev/null @@ -1,9 +0,0 @@ --c requirements.txt - -build -toml -pytest -black -pylint -pytest-cov -syrupy diff --git a/requirements_dev.txt b/requirements_dev.txt index 51ab1d3..315ebe2 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,15 +1,9 @@ -# -# This file is autogenerated by pip-compile with Python 3.12 -# by the following command: -# -# pip-compile ./requirements_dev.in -# astroid==3.0.3 # via pylint black==24.1.1 - # via -r ./requirements_dev.in + # via slack-status-cli (pyproject.toml) build==1.0.3 - # via -r ./requirements_dev.in + # via slack-status-cli (pyproject.toml) click==8.1.7 # via black coverage[toml]==7.4.1 @@ -38,19 +32,19 @@ platformdirs==4.2.0 pluggy==1.4.0 # via pytest pylint==3.0.3 - # via -r ./requirements_dev.in + # via slack-status-cli (pyproject.toml) pyproject-hooks==1.0.0 # via build pytest==7.4.4 # via - # -r ./requirements_dev.in # pytest-cov + # slack-status-cli (pyproject.toml) # syrupy pytest-cov==4.1.0 - # via -r ./requirements_dev.in + # via slack-status-cli (pyproject.toml) syrupy==4.6.0 - # via -r ./requirements_dev.in + # via slack-status-cli (pyproject.toml) toml==0.10.2 - # via -r ./requirements_dev.in + # via slack-status-cli (pyproject.toml) tomlkit==0.12.3 # via pylint diff --git a/script/bootstrap b/script/bootstrap.sh similarity index 83% rename from script/bootstrap rename to script/bootstrap.sh index 9e70818..1e58cf1 100644 --- a/script/bootstrap +++ b/script/bootstrap.sh @@ -11,4 +11,4 @@ fi source ./$PROJECT.venv/bin/activate -pip-sync ./requirements_dev.txt +pip-sync ./requirements.txt ./requirements_dev.txt diff --git a/script/lock b/script/lock deleted file mode 100644 index 7e1470b..0000000 --- a/script/lock +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -pip-compile ./requirements.in -pip-compile ./requirements_dev.in diff --git a/script/lock.sh b/script/lock.sh new file mode 100644 index 0000000..ffdeda3 --- /dev/null +++ b/script/lock.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +PROD_DEP="requirements.txt" +DEV_DEP="requirements_dev.txt" + +echo "Locking production dependencies as $PROD_DEP" + +python -m piptools compile \ + -o $PROD_DEP \ + --no-header \ + pyproject.toml + +if [[ $? != 0 ]]; then + echo "Failed to lock production dependencies." + return 1 +fi + +echo "Locking production dependencies as $DEV_DEP" + +python -m piptools compile \ + -o $DEV_DEP \ + --no-header \ + --extra dev \ + --constraint $PROD_DEP \ + pyproject.toml