From e0f272e83677add771449007110833bca4e61b07 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 16:51:49 +0200 Subject: [PATCH 1/8] fix(pyproject.toml): correct `[project.scripts]` This partially retracts commit 323724d by Karl Voit on 2026-03-01. Instead of `guessfilename`, the executable's name to the CLI again is `appendfilename`. Signed-off-by: Norwid Behrnd --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b79bfa7..a4c006e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ dependencies = [ Homepage = "https://github.com/novoid/appendfilename" [project.scripts] -guessfilename = "appendfilename:main" +appendfilename = "appendfilename:main" [[tool.uv.index]] name = "appendfilename" From 86da9a8613f5561f28f5a853f4e22e89c5fb58b2 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 16:58:49 +0200 Subject: [PATCH 2/8] ci(pytest.yml): recapitulate test installation For an easier visual check about pytest's set up, an additional `pip list` reports the packages installed. Signed-off-by: Norwid Behrnd --- .github/workflows/pytest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index d8fee52..5f0d3ac 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -44,6 +44,7 @@ jobs: python -m pip install --upgrade pip pip install . pip install pytest + pip list - name: run the check by pytest run: | From bb9777ba1a6e9edc9dc1c6a4e274fb0f78d803c4 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 17:08:11 +0200 Subject: [PATCH 3/8] build(pyproject.toml,pytest.ini): consolidiate Parameters affecting checks by `pytest` are now stored only in file `pyproject.toml`. Signed-off-by: Norwid Behrnd --- pyproject.toml | 14 ++++++++++++++ pytest.ini | 5 ----- 2 files changed, 14 insertions(+), 5 deletions(-) delete mode 100644 pytest.ini diff --git a/pyproject.toml b/pyproject.toml index a4c006e..8eef0a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,3 +52,17 @@ build-backend = "setuptools.build_meta" [tool.mypy] strict = true ignore_missing_imports = true + +[tool.pytest] +minversion = "9.0" +addopts = ["-ra"] +strict = true +testpaths = [ + "tests" +] +markers = [ + "default: test appendfilename's default string insertion", + "prepend: test appendfilename's optional -p/--prepend flag", + "smart_prepend: test appendfilename's optional --smart-prepend flag", +] + diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index f986737..0000000 --- a/pytest.ini +++ /dev/null @@ -1,5 +0,0 @@ -[pytest] -markers = - default: test appendfilename's default string insertion - prepend: test appendfilename's optional -p/--prepend flag - smart_prepend: test appendfilename's optional --smart-prepend flag From a3ff130839b31f329637f89c04bb1b1e734be2cf Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 17:16:02 +0200 Subject: [PATCH 4/8] style: git mv license.txt LICENSE Per Python Packaging User Guide (revision May 05, 2026), the copy of license(s) is stored in file `LICENSE*`. Signed-off-by: Norwid Behrnd --- license.txt => LICENSE | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename license.txt => LICENSE (100%) diff --git a/license.txt b/LICENSE similarity index 100% rename from license.txt rename to LICENSE From bdba3fb88fca51e64d8a26b6781e1cbb06721131 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 17:27:33 +0200 Subject: [PATCH 5/8] build(pyproject.toml): soften interpreter constraint >= p310 Per Python Packing User Guide,[1] a `requires-python` in file `pyproject.toml` (still) is necessary, > To actually restrict what Python versions a project can be > installed on, use the requires-python argument. and the source code actually works with an interpreter older than 3.13 (previously set in `uv.lock`). With the current EOLs in mind,[2] Python p310 up to and including p314 looks fine. [1] https://packaging.python.org/en/latest/guides/writing-pyproject-toml/ [2] https://devguide.python.org/versions/ Signed-off-by: Norwid Behrnd --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 8eef0a7..05a4666 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,7 @@ [project] name = "appendfilename" version = "2026.03.01.1" +requires-python = ">=3.10" description = "Intelligent appending text to file names, considering file extensions and file tags" license = "GPL-3.0-or-later" readme = { file = "README.org", content-type = "text/plain" } From 096a032fcb74bb98b4e0f3c788fc3a24717445ed Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 17:35:41 +0200 Subject: [PATCH 6/8] build(uv.lock): update by `uv sync` File `uv.lock` is updated with content of `pyproject.toml` by `uv sync`. Interestingly, this equally updates the version stamp in the later. Signed-off-by: Norwid Behrnd --- uv.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/uv.lock b/uv.lock index 21015ca..deeaf87 100644 --- a/uv.lock +++ b/uv.lock @@ -1,11 +1,11 @@ version = 1 revision = 3 -requires-python = ">=3.13" +requires-python = ">=3.10" [[package]] name = "appendfilename" -version = "2025.5.14" -source = { virtual = "." } +version = "2026.3.1.1" +source = { editable = "." } dependencies = [ { name = "pyreadline3" }, ] From 207c80563cfcdd51ab1c8dda104eb0b8597b5d2a Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 17:44:59 +0200 Subject: [PATCH 7/8] ci(tox.yml): add tox moderated pytest check p310...py314 To prove appendfile's work, checks by pytest can be run on GitHub's os runners of macos, ubuntu, windows in permutation of Python interpreters Py 3.10...3.14 (if available). Signed-off-by: Norwid Behrnd --- .github/workflows/tox.yml | 39 +++++++++++++++++++++++++++++++++++++++ tox.ini | 11 +++++++++++ 2 files changed, 50 insertions(+) create mode 100644 .github/workflows/tox.yml create mode 100644 tox.ini diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml new file mode 100644 index 0000000..da706d5 --- /dev/null +++ b/.github/workflows/tox.yml @@ -0,0 +1,39 @@ +name: CI_tox_appendfilename + +# name : tox.yml +# purpose : run pytest on appendfilename +# date : [2026-05-13 Wed] +# edit : + +on: + workflow_dispatch: # the manual trigger + # push: + # branches: [ dev, main ] + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] + + steps: + - uses: actions/checkout@v5 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + + - name: Install tox + run: | + python -m pip install --upgrade pip + pip install . + pip install pytest + pip install tox tox-gh-actions + pip list + + - name: run tox' jobs (which GitHub happens to split in separate jobs) + run: tox + diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..349f964 --- /dev/null +++ b/tox.ini @@ -0,0 +1,11 @@ +[tox] +envlist = py310, py311, py312, py313, py314 +isolated_build = True +ignore_missing_interpreters = True + +[testenv] +deps = + pytest +commands = + pytest + From 57d9af2a4ecc3f13b10e131bb8d36b4d08adedf6 Mon Sep 17 00:00:00 2001 From: Norwid Behrnd Date: Wed, 13 May 2026 18:00:38 +0200 Subject: [PATCH 8/8] style(pyproject.toml): sort classifiers for PyPI To ease the retrieval of appendfilename on PyPI, classifiers were rearranged / complemented. Signed-off-by: Norwid Behrnd --- pyproject.toml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 05a4666..7250125 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,13 +18,22 @@ keywords = [ "time", "time-stamps" ] + +# https://pypi.org/classifiers/ classifiers = [ - "Programming Language :: Python :: 3 :: Only", "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: End Users/Desktop", - "Operating System :: OS Independent" + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] + dependencies = [ "pyreadline3>=3.5.4", ]