From 6fc99c516b7986241993acb1e31919328edda266 Mon Sep 17 00:00:00 2001 From: Jakob Schnitzer Date: Tue, 3 Oct 2023 08:39:21 +0200 Subject: [PATCH] ci: use Python 3.12 --- .github/workflows/publish.yml | 2 +- .github/workflows/test.yml | 8 ++-- constraints-old.txt | 4 +- constraints.txt | 16 +++++--- frontend/package-lock.json | 75 +++++++++++++++++------------------ pyproject.toml | 1 + tox.ini | 13 +++--- 7 files changed, 62 insertions(+), 57 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b853cf992..6f6139c51 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.12" cache: "pip" cache-dependency-path: "constraints*.txt" - uses: actions/setup-node@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fd6b5b394..42fcc3201 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] - py: ["3.11", "3.8"] + py: ["3.12", "3.8"] toxenv: ["py", "old_deps"] exclude: - os: "macos-latest" @@ -53,7 +53,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" cache: "pip" cache-dependency-path: "constraints*.txt" - uses: actions/setup-node@v3 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" cache: "pip" cache-dependency-path: "constraints*.txt" - run: python -m pip install -c constraints.txt tox @@ -94,7 +94,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: "3.11" + python-version: "3.12" cache: "pip" cache-dependency-path: "constraints*.txt" - run: python -m pip install -c constraints.txt tox diff --git a/constraints-old.txt b/constraints-old.txt index 60c78e29d..29b727025 100644 --- a/constraints-old.txt +++ b/constraints-old.txt @@ -8,8 +8,8 @@ Flask-Babel==1.0.0 Flask==2.2.0 Jinja2==3.0.0 Werkzeug==2.2.0 -beancount==2.3.5 +beancount==2.3.6 cheroot==8.0.0 -click==7.0.0 +click==8.0.0 markdown2==2.3.0 simplejson==3.16.0 diff --git a/constraints.txt b/constraints.txt index 1b65ae7d6..984703e5b 100644 --- a/constraints.txt +++ b/constraints.txt @@ -15,7 +15,7 @@ babel==2.13.0 # fava (pyproject.toml) # flask-babel # sphinx -beancount==2.3.5 +beancount==2.3.6 # via fava (pyproject.toml) beautifulsoup4==4.12.2 # via beancount @@ -76,7 +76,7 @@ flask-babel==3.1.0 # via fava (pyproject.toml) google-api-core==2.12.0 # via google-api-python-client -google-api-python-client==2.101.0 +google-api-python-client==2.102.0 # via beancount google-auth==2.23.2 # via @@ -167,6 +167,8 @@ packaging==23.2 # pytest # sphinx # tox +pdfminer2==20151206 + # via beancount pkginfo==1.9.6 # via twine platformdirs==3.11.0 @@ -184,7 +186,7 @@ ply==3.11 # fava (pyproject.toml) pre-commit==3.4.0 # via fava (pyproject.toml) -protobuf==4.24.3 +protobuf==4.24.4 # via # google-api-core # googleapis-common-protos @@ -218,7 +220,7 @@ pyinstaller==6.0.0 # via fava (pyproject.toml) pyinstaller-hooks-contrib==2023.9 # via pyinstaller -pylint==3.0.0 +pylint==3.0.1 # via fava (pyproject.toml) pyparsing==3.1.1 # via httplib2 @@ -260,10 +262,12 @@ rsa==4.9 # via google-auth secretstorage==3.3.3 # via keyring -simplejson==3.19.1 +simplejson==3.19.2 # via fava (pyproject.toml) six==1.16.0 - # via python-dateutil + # via + # pdfminer2 + # python-dateutil snowballstemmer==2.2.0 # via sphinx soupsieve==2.5 diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 4927c8783..c054f0c98 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -290,9 +290,9 @@ "dev": true }, "node_modules/@codemirror/autocomplete": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.1.tgz", - "integrity": "sha512-yma56tqD7khIZK4gy4X5lX3/k5ArMiCGat7HEWRF/8L2kqOjVdp2qKZqpcJjwTIjSj6fqKAHqi7IjtH3QFE+Bw==", + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.2.tgz", + "integrity": "sha512-suItGf7PhtfgQMCd8ofYzycdsAHDBB8BkNrmyxeLvptW7yNT6zGT6ZzwhAfmB94TUyAAStrHjaDGC4/foenF2A==", "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -356,9 +356,9 @@ "integrity": "sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==" }, "node_modules/@codemirror/view": { - "version": "6.21.2", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.21.2.tgz", - "integrity": "sha512-EZ/Q1WeMWVarWiZHcy4E2aOjjDySeipVkPawOIu2iViZ1YNaZXPBqJBd9/2zLJtN/MrXKm0V1mHB8Cxn50t91A==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.21.3.tgz", + "integrity": "sha512-8l1aSQ6MygzL4Nx7GVYhucSXvW4jQd0F6Zm3v9Dg+6nZEfwzJVqi4C2zHfDljID+73gsQrWp9TgHc81xU15O4A==", "dependencies": { "@codemirror/state": "^6.1.4", "style-mod": "^4.1.0", @@ -865,14 +865,14 @@ "integrity": "sha512-8OJiUK2lzJjvDlkmamEfhtpL1cyFApg1Pk4kE5Pw5UTf1ETF3Yy/pprgwV5I+LQPDjuFvinsinT9xSUZ2b/zuQ==" }, "node_modules/@fontsource/fira-sans": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@fontsource/fira-sans/-/fira-sans-5.0.13.tgz", - "integrity": "sha512-3G9lX1NJkvNwkYZrusB6dTKy3cHu67Fv2/Mjp5yjmEwviO2cZiKnxsn8coY5gApd7hCeJDepnLNrrzr1CNaecw==" + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/@fontsource/fira-sans/-/fira-sans-5.0.14.tgz", + "integrity": "sha512-yEzlQHS0V2qP79umN7OwuW1B18VNg19sDjMFa81P5AyFyStZxm6DDakvkdKmaQ+ECdfbwrvSqIvgtER0xtLxVg==" }, "node_modules/@fontsource/source-code-pro": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@fontsource/source-code-pro/-/source-code-pro-5.0.8.tgz", - "integrity": "sha512-2RtauxYX8gMBZr3kO97M/M0jNeE2pItqTLofpJWxsIiZKY+ir8xXmxz0Bxg3XttHadjJu9lP8gQpmBKRSn0dXQ==" + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@fontsource/source-code-pro/-/source-code-pro-5.0.12.tgz", + "integrity": "sha512-GCCRX65IrxA7O9fT8K/LLzfjiOJIm7MojBqF9RzcAeOUKfX/jDmVp+K58dgeAzULeU9lE/+166PDYADRpOOO9g==" }, "node_modules/@fontsource/source-serif-pro": { "version": "5.0.8", @@ -1838,9 +1838,9 @@ "dev": true }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/cosmiconfig": { @@ -2696,9 +2696,9 @@ } }, "node_modules/eslint-plugin-svelte": { - "version": "2.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.33.2.tgz", - "integrity": "sha512-knWmauax+E/jvQ9CmuX5dAhQKP9P4eGQZxWa5RMutEJVCcy0wFmiUvOeDND2jR4vUkbDlX4khKjaceY7QzbkYw==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.34.0.tgz", + "integrity": "sha512-4RYUgNai7wr0v+T/kljMiYSjC/oqwgq5i+cPppawryAayj4C7WK1ixFlWCGmNmBppnoKCl4iA4ZPzPtlHcb4CA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", @@ -3134,9 +3134,9 @@ } }, "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3223,13 +3223,10 @@ } }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -5069,9 +5066,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", - "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/string-width": { @@ -5400,16 +5397,16 @@ } }, "node_modules/svelte-eslint-parser": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.0.tgz", - "integrity": "sha512-5awZ6Bs+Tb/zQwa41PSdcLynAVQTwW0HGyCBjtbAQ59taLZqDgQSMzRlDmapjZdDtzERm0oXDZNE0E+PKJ6ryg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", + "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==", "dev": true, "dependencies": { "eslint-scope": "^7.0.0", "eslint-visitor-keys": "^3.0.0", "espree": "^9.0.0", - "postcss": "^8.4.28", - "postcss-scss": "^4.0.7" + "postcss": "^8.4.29", + "postcss-scss": "^4.0.8" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5815,14 +5812,14 @@ } }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" diff --git a/pyproject.toml b/pyproject.toml index 2fc3645a9..c7d71057e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,7 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Office/Business :: Financial :: Accounting", "Topic :: Office/Business :: Financial :: Investment", diff --git a/tox.ini b/tox.ini index bdf16d9ce..4587c6eaf 100644 --- a/tox.ini +++ b/tox.ini @@ -5,28 +5,29 @@ envlist = lint,py,old_deps pass_env = SNAPSHOT_UPDATE POEDITOR_TOKEN -# use a constraints file for tox env and package deps: -set_env = - PIP_CONSTRAINT=constraints.txt +use_frozen_constraints = true +constrain_package_deps = true extras = excel deps = pytest pytest-cov + -c constraints.txt commands = pytest --cov=fava --cov-report=html --cov-fail-under=90 {posargs:tests} [testenv:old_deps] -setenv = +set_env = SNAPSHOT_IGNORE=true - PIP_CONSTRAINT=constraints-old.txt deps = pytest + -c constraints-old.txt commands = pytest {posargs:tests} [testenv:docs] deps = sphinx + -c constraints.txt commands = python docs/generate.py sphinx-build -b html docs build/docs @@ -38,6 +39,7 @@ deps = pytest types-setuptools types-simplejson + -c constraints.txt commands = mypy src/fava tests _build_backend.py pylint src/fava tests _build_backend.py @@ -46,6 +48,7 @@ commands = deps = pyinstaller pytest + -c constraints.txt allowlist_externals = {toxinidir}/dist/fava commands = pyinstaller --clean --noconfirm contrib/pyinstaller_spec.spec