python-template-project 0.2.4__tar.gz → 0.2.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. python_template_project-0.2.6/.github/release_message.sh +12 -0
  2. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/update_funding.py +2 -2
  3. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/build-linux.yml +6 -2
  4. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/build-macos.yml +6 -2
  5. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/build-windows.yml +6 -2
  6. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/main.yml +11 -7
  7. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/release.yml +10 -3
  8. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/rename_project.yml +5 -1
  9. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/workflows/update_readme.yml +6 -2
  10. {python_template_project-0.2.4 → python_template_project-0.2.6}/.readthedocs.yaml +3 -3
  11. python_template_project-0.2.6/AGENTS.md +72 -0
  12. python_template_project-0.2.6/AGENTS_GLOBAL.md +24 -0
  13. {python_template_project-0.2.4 → python_template_project-0.2.6}/HISTORY.md +199 -0
  14. {python_template_project-0.2.4 → python_template_project-0.2.6}/Makefile +13 -7
  15. {python_template_project-0.2.4/src/python_template_project.egg-info → python_template_project-0.2.6}/PKG-INFO +2 -19
  16. {python_template_project-0.2.4 → python_template_project-0.2.6}/README.md +0 -1
  17. python_template_project-0.2.6/SECURITY.md +31 -0
  18. python_template_project-0.2.6/config.yaml +41 -0
  19. python_template_project-0.2.6/docs/usage/cli.md +84 -0
  20. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/usage/config.md +19 -10
  21. {python_template_project-0.2.4 → python_template_project-0.2.6}/pyproject.toml +4 -5
  22. python_template_project-0.2.6/scripts/generate_config_docs.py +39 -0
  23. python_template_project-0.2.6/scripts/show_tree.py +625 -0
  24. {python_template_project-0.2.4 → python_template_project-0.2.6}/scripts/update_readme.py +1 -1
  25. python_template_project-0.2.6/src/python_template_project/_version.py +24 -0
  26. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/config/config.py +5 -1
  27. {python_template_project-0.2.4 → python_template_project-0.2.6/src/python_template_project.egg-info}/PKG-INFO +2 -19
  28. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project.egg-info/SOURCES.txt +7 -1
  29. python_template_project-0.2.6/src/python_template_project.egg-info/requires.txt +6 -0
  30. python_template_project-0.2.6/src/python_template_project.egg-info/scm_file_list.json +82 -0
  31. python_template_project-0.2.6/src/python_template_project.egg-info/scm_version.json +8 -0
  32. python_template_project-0.2.6/tests/test_show_tree.py +249 -0
  33. {python_template_project-0.2.4 → python_template_project-0.2.6}/uv.lock +71 -21
  34. python_template_project-0.2.4/.github/release_message.sh +0 -3
  35. python_template_project-0.2.4/config.yaml +0 -41
  36. python_template_project-0.2.4/docs/usage/cli.md +0 -59
  37. python_template_project-0.2.4/scripts/generate_config_docs.py +0 -22
  38. python_template_project-0.2.4/scripts/show_tree.py +0 -174
  39. python_template_project-0.2.4/src/python_template_project/_version.py +0 -34
  40. python_template_project-0.2.4/src/python_template_project.egg-info/requires.txt +0 -25
  41. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/FUNDING.yml +0 -0
  42. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  43. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  44. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  45. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/actions/setup-environment/action.yml +0 -0
  46. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/dependabot.yml +0 -0
  47. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/init.sh +0 -0
  48. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/rename_project.sh +0 -0
  49. {python_template_project-0.2.4 → python_template_project-0.2.6}/.github/template.yml +0 -0
  50. {python_template_project-0.2.4 → python_template_project-0.2.6}/.gitignore +0 -0
  51. {python_template_project-0.2.4 → python_template_project-0.2.6}/.idea/runConfigurations/config_generate.xml +0 -0
  52. {python_template_project-0.2.4 → python_template_project-0.2.6}/.idea/runConfigurations/module_cli.xml +0 -0
  53. {python_template_project-0.2.4 → python_template_project-0.2.6}/.idea/runConfigurations/module_gui.xml +0 -0
  54. {python_template_project-0.2.4 → python_template_project-0.2.6}/.pre-commit-config-linux.yaml +0 -0
  55. {python_template_project-0.2.4 → python_template_project-0.2.6}/.pre-commit-config.yaml +0 -0
  56. {python_template_project-0.2.4 → python_template_project-0.2.6}/LICENSE +0 -0
  57. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/.nav.yml +0 -0
  58. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/_static/img/favicon.png +0 -0
  59. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/_static/img/logo.png +0 -0
  60. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/css/custom.css +0 -0
  61. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/develop/contributing.md +0 -0
  62. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/develop/make_windows.md +0 -0
  63. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/develop/naming_convention.md +0 -0
  64. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/develop/pypi_release.md +0 -0
  65. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/funding/funding.md +0 -0
  66. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/getting-started/install.md +0 -0
  67. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/getting-started/virtual-environment.md +0 -0
  68. {python_template_project-0.2.4 → python_template_project-0.2.6}/docs/index.md +0 -0
  69. {python_template_project-0.2.4 → python_template_project-0.2.6}/examples/kuhkopfsteig.gpx +0 -0
  70. {python_template_project-0.2.4 → python_template_project-0.2.6}/examples/rother_lilienstein.gpx +0 -0
  71. {python_template_project-0.2.4 → python_template_project-0.2.6}/examples/teneriffa.gpx +0 -0
  72. {python_template_project-0.2.4 → python_template_project-0.2.6}/mkdocs.yml +0 -0
  73. {python_template_project-0.2.4 → python_template_project-0.2.6}/pytest.ini +0 -0
  74. {python_template_project-0.2.4 → python_template_project-0.2.6}/scripts/show_filelist.py +0 -0
  75. {python_template_project-0.2.4 → python_template_project-0.2.6}/setup.cfg +0 -0
  76. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/__init__.py +0 -0
  77. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/firewall_handler.py +0 -0
  78. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/main.py +0 -0
  79. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/__init__.py +0 -0
  80. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/__main__.py +0 -0
  81. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/cli/__init__.py +0 -0
  82. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/cli/__main__.py +0 -0
  83. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/cli/cli.py +0 -0
  84. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/config/__init__.py +0 -0
  85. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/core/__init__.py +0 -0
  86. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/core/base.py +0 -0
  87. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/core/logging.py +0 -0
  88. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/gui/__init__.py +0 -0
  89. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/gui/__main__.py +0 -0
  90. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project/gui/gui.py +0 -0
  91. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project.egg-info/dependency_links.txt +0 -0
  92. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project.egg-info/entry_points.txt +0 -0
  93. {python_template_project-0.2.4 → python_template_project-0.2.6}/src/python_template_project.egg-info/top_level.txt +0 -0
  94. {python_template_project-0.2.4 → python_template_project-0.2.6}/template.yml.url +0 -0
  95. {python_template_project-0.2.4 → python_template_project-0.2.6}/tests/__init__.py +0 -0
  96. {python_template_project-0.2.4 → python_template_project-0.2.6}/tests/test_gpx.py +0 -0
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ previous_tag=$(git tag --sort=-creatordate | sed -n 2p)
5
+
6
+ if [ -z "$previous_tag" ]; then
7
+ # Erster Tag im Repository: Es gibt noch keinen Vorgänger-Tag,
8
+ # daher alle Commits in den Changelog einbeziehen.
9
+ git shortlog | sed 's/^./ &/'
10
+ else
11
+ git shortlog "${previous_tag}.." | sed 's/^./ &/'
12
+ fi
@@ -16,7 +16,7 @@ def update_funding_file():
16
16
  Downloads the FUNDING.md file from the central repository
17
17
  and saves it to the specified path within the current repository.
18
18
  """
19
- print(f"Attempting to download FUNDING.md from: {FUNDING_REPO_URL}")
19
+ print(f" ... Attempting to download FUNDING.md from: {FUNDING_REPO_URL}")
20
20
 
21
21
  try:
22
22
  # Send a GET request to the URL
@@ -30,7 +30,7 @@ def update_funding_file():
30
30
  with open(DST_THIS_REPO, "wb") as f:
31
31
  f.write(response.content)
32
32
 
33
- print(f"Successfully updated FUNDING.md at: {DST_THIS_REPO}")
33
+ print(f"Generated: Successfully updated {DST_THIS_REPO}")
34
34
 
35
35
  except requests.exceptions.RequestException as e:
36
36
  print(f"Error downloading FUNDING.md: {e}", file=sys.stderr)
@@ -6,6 +6,10 @@ on:
6
6
  - '*'
7
7
  workflow_dispatch:
8
8
 
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12
+
9
13
  jobs:
10
14
  build:
11
15
  strategy:
@@ -17,10 +21,10 @@ jobs:
17
21
 
18
22
  steps:
19
23
  - name: Checkout repository
20
- uses: actions/checkout@v4
24
+ uses: actions/checkout@v7
21
25
 
22
26
  - name: Set up Python
23
- uses: actions/setup-python@v5
27
+ uses: actions/setup-python@v7
24
28
  with:
25
29
  python-version: ${{ matrix.python-version }}
26
30
 
@@ -6,6 +6,10 @@ on:
6
6
  - '*' # Triggers for tags like 0.1 or v0.1.3
7
7
  workflow_dispatch: # Allows manual triggering
8
8
 
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12
+
9
13
  jobs:
10
14
  build:
11
15
  strategy:
@@ -17,10 +21,10 @@ jobs:
17
21
 
18
22
  steps:
19
23
  - name: Checkout repository
20
- uses: actions/checkout@v4
24
+ uses: actions/checkout@v7
21
25
 
22
26
  - name: Set up Python
23
- uses: actions/setup-python@v5
27
+ uses: actions/setup-python@v7
24
28
  with:
25
29
  python-version: '3.11'
26
30
 
@@ -6,6 +6,10 @@ on:
6
6
  - '*' # Triggers for tags like 0.1 or v0.1.3
7
7
  workflow_dispatch: # Allows manual triggering
8
8
 
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12
+
9
13
  jobs:
10
14
  build:
11
15
  strategy:
@@ -16,10 +20,10 @@ jobs:
16
20
  runs-on: ${{ matrix.os }}
17
21
  steps:
18
22
  - name: Checkout repository
19
- uses: actions/checkout@v4
23
+ uses: actions/checkout@v7
20
24
 
21
25
  - name: Set up Python
22
- uses: actions/setup-python@v5
26
+ uses: actions/setup-python@v7
23
27
  with:
24
28
  python-version: '3.11'
25
29
 
@@ -13,6 +13,10 @@ on:
13
13
  # Allows you to run this workflow manually from the Actions tab
14
14
  workflow_dispatch:
15
15
 
16
+ concurrency:
17
+ group: ${{ github.workflow }}-${{ github.ref }}
18
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
19
+
16
20
  jobs:
17
21
  linter:
18
22
  strategy:
@@ -22,8 +26,8 @@ jobs:
22
26
  os: [ubuntu-latest]
23
27
  runs-on: ${{ matrix.os }}
24
28
  steps:
25
- - uses: actions/checkout@v4
26
- - uses: actions/setup-python@v5
29
+ - uses: actions/checkout@v7
30
+ - uses: actions/setup-python@v6
27
31
  with:
28
32
  python-version: ${{ matrix.python-version }}
29
33
 
@@ -44,8 +48,8 @@ jobs:
44
48
  os: [windows-latest]
45
49
  runs-on: ${{ matrix.os }}
46
50
  steps:
47
- - uses: actions/checkout@v4
48
- - uses: actions/setup-python@v5
51
+ - uses: actions/checkout@v7
52
+ - uses: actions/setup-python@v6
49
53
  with:
50
54
  python-version: ${{ matrix.python-version }}
51
55
 
@@ -66,8 +70,8 @@ jobs:
66
70
  os: [ ubuntu-latest, macos-latest ]
67
71
  runs-on: ${{ matrix.os }}
68
72
  steps:
69
- - uses: actions/checkout@v4
70
- - uses: actions/setup-python@v5
73
+ - uses: actions/checkout@v7
74
+ - uses: actions/setup-python@v6
71
75
  with:
72
76
  python-version: ${{ matrix.python-version }}
73
77
 
@@ -80,4 +84,4 @@ jobs:
80
84
  run: make test
81
85
 
82
86
  - name: "Upload coverage to Codecov"
83
- uses: codecov/codecov-action@v5
87
+ uses: codecov/codecov-action@v7
@@ -14,6 +14,10 @@ on:
14
14
  # Allows you to run this workflow manually from the Actions tab
15
15
  workflow_dispatch:
16
16
 
17
+ concurrency:
18
+ group: ${{ github.workflow }}-${{ github.ref }}
19
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
20
+
17
21
  jobs:
18
22
  release:
19
23
  name: Create Release
@@ -21,7 +25,7 @@ jobs:
21
25
  permissions:
22
26
  contents: write
23
27
  steps:
24
- - uses: actions/checkout@v4
28
+ - uses: actions/checkout@v7
25
29
  with:
26
30
  # by default, it uses a depth of 1
27
31
  # this fetches all history so that we can read each commit
@@ -37,9 +41,12 @@ jobs:
37
41
  needs: release
38
42
  runs-on: ubuntu-latest
39
43
  steps:
40
- - uses: actions/checkout@v4
44
+ - uses: actions/checkout@v7
45
+ with:
46
+ # setuptools_scm benötigt die Git-Tags für die Versionsnummer
47
+ fetch-depth: 0
41
48
  - name: Set up Python
42
- uses: actions/setup-python@v4
49
+ uses: actions/setup-python@v7
43
50
  with:
44
51
  # Use a specific Python version, e.g., 3.11, consistent with your build
45
52
  python-version: '3.11'
@@ -4,12 +4,16 @@ on: [workflow_dispatch]
4
4
 
5
5
  permissions: write-all
6
6
 
7
+ concurrency:
8
+ group: ${{ github.workflow }}-${{ github.ref }}
9
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
10
+
7
11
  jobs:
8
12
  rename-project:
9
13
  if: ${{ !contains (github.repository, 'python-template-project') }}
10
14
  runs-on: ubuntu-latest
11
15
  steps:
12
- - uses: actions/checkout@v3
16
+ - uses: actions/checkout@v7
13
17
  with:
14
18
  # by default, it uses a depth of 1
15
19
  # this fetches all history so that we can read each commit
@@ -8,13 +8,17 @@ on:
8
8
  # Allows you to run this workflow manually from the Actions tab
9
9
  workflow_dispatch:
10
10
 
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
14
+
11
15
  jobs:
12
16
  sync:
13
17
  runs-on: ubuntu-latest
14
18
  steps:
15
- - uses: actions/checkout@v4
19
+ - uses: actions/checkout@v7
16
20
  - name: Set up Python
17
- uses: actions/setup-python@v5
21
+ uses: actions/setup-python@v7
18
22
  with:
19
23
  python-version: "3.11"
20
24
  - name: Update README.md
@@ -11,9 +11,9 @@ build:
11
11
 
12
12
  python:
13
13
  install:
14
- - method: pip
15
- path: .
16
- extra_requirements:
14
+ - method: uv
15
+ command: sync
16
+ groups:
17
17
  - docs
18
18
 
19
19
  mkdocs:
@@ -0,0 +1,72 @@
1
+ # AGENTS.md
2
+
3
+ ## Python
4
+
5
+ - Follow PEP 8 and the project's formatter and configuration.
6
+ - Use descriptive names, type-hint function signatures, and document public APIs. Avoid `Any`
7
+ unless necessary.
8
+ - Keep functions focused; use dataclasses for simple data containers when appropriate. Avoid
9
+ mutable defaults, and use `is` for `None`, `True`, and `False`.
10
+ - Prefer explicit imports, f-strings, and context managers.
11
+ - Avoid wildcard imports and redundant comments.
12
+
13
+
14
+ ## Workflow
15
+
16
+ 1. **Inspect** the relevant code, project structure, configuration, dependencies, and existing tests before making changes.
17
+ 2. **Plan** briefly for nontrivial tasks. Define concrete, verifiable success criteria.
18
+ 3. **Implement** the smallest complete solution, following existing project conventions.
19
+ 4. **Verify** changes with relevant tests, formatting, linting, and type checking. Fix issues introduced by the changes.
20
+ 5. **Report** what changed, which checks passed, and any remaining limitations.
21
+
22
+ Do not claim that checks passed unless they were actually executed. If verification is impossible, explain why.
23
+
24
+ ## Tests
25
+
26
+ - Add or update "Tests with Teeth" for behavior changes and important edge/failure cases. Keep tests
27
+ deterministic, mock only when needed, and never weaken tests to pass.
28
+ - Run relevant configured checks and report what actually ran; do not claim unrun checks passed.
29
+
30
+ ## Dependencies and Tooling
31
+
32
+ - Use `uv` for dependency management and virtual environments when available or when initializing a project.
33
+ - Declare and manage dependencies in `pyproject.toml`. Avoid unnecessary dependencies and preserve existing project tooling.
34
+ - Prefer established project commands and configuration over introducing new tools or conventions.
35
+ - Use `ruff` for formatting and linting and `mypy` for static type checking when configured or appropriate.
36
+ - Use `pytest` for tests. Add or update tests for new behavior, bug fixes, and meaningful edge cases. Mock external dependencies where appropriate.
37
+ - Never introduce tooling or dependencies solely for marginal benefits.
38
+
39
+ ## Project workflows and generated files
40
+
41
+ - Use existing Makefile targets when relevant; common checks are
42
+
43
+ ```bash
44
+ make fmt
45
+ make lint
46
+ make test
47
+ ```
48
+
49
+ Check the Makefile and project configuration rather than assuming a command exists.
50
+ - `make syncdocs` runs `scripts/generate_config_docs.py`, `scripts/update_readme.py`, and
51
+ `.github/update_funding.py`. It regenerates `config.yaml`, `docs/usage/config.md`,
52
+ `docs/usage/cli.md`, `README.md`, and `docs/funding/funding.md`. Do not edit these outputs
53
+ directly: update the relevant `ConfigCategory` definitions used by `ConfigManager` or
54
+ `docs/index.md`, then run `make syncdocs`.
55
+
56
+
57
+ ## github
58
+
59
+ - use github cli to interact with github, see https://cli.github.com/manual/gh
60
+ - if requested, use `gh issue list` to view a number of issues (--limit <int>) or filter JSON output using a jq expression (--jq <expression>) to view existing issues
61
+ - Create issues via the GitHub web UI or `gh issue create`; templates are located in `.github/ISSUE_TEMPLATE/`.
62
+ - to view details of an issue use `gh issue view {<number> | <url>} [flags]`
63
+ - to append a comment to an issue use `gh issue comment {<number> | <url>} [flags]`
64
+ - Check the status of an Actions pipeline using `gh run list` and `gh run view <run-id>`.
65
+ - use this commit message format: (where type may be one of `feat` `fix` `docs` `refactor` `test` `ci` `revert`)
66
+ ```
67
+ <type>[optional scope]: <description>
68
+
69
+ [optional body]
70
+
71
+ [optional footer(s), e.g. `#<number>` for a github issue or `Fixes #` if the issue is completed on this commit]
72
+ ```
@@ -0,0 +1,24 @@
1
+ [//]: # (GLOBAL AGENTS.md: Move and rename this ~/.config/opencode/AGENTS.md)
2
+
3
+ # AGENTS.md
4
+
5
+ ## Principles
6
+
7
+ - Understand the task; inspect relevant code, configuration, tests, and conventions.
8
+ - Clarify material ambiguity or state assumptions. Make the smallest correct change, following
9
+ established patterns and avoiding unrelated refactors, speculative features, and unnecessary
10
+ dependencies.
11
+ - Keep code clear and maintainable; preserve type safety and compatibility. Surface errors with
12
+ useful context; avoid broad catches and silent failures.
13
+ - Use english language in doc strings, documentation and comments.
14
+
15
+ ## Decision Rules
16
+
17
+ - Do not assume when uncertainty matters. State assumptions and ask concise clarifying questions when necessary.
18
+ - Do not add features, abstractions, error handling, or configuration without a concrete need.
19
+ - Do not refactor unrelated code or reformat entire files unnecessarily.
20
+ - When multiple solutions are viable, prefer the simplest maintainable option that fits the existing architecture.
21
+ - If requirements conflict with existing behavior, security, correctness, or maintainability, explain the conflict before making consequential changes.
22
+ - Treat repository instructions and established project conventions as authoritative unless they conflict with explicit user requirements or higher-priority instructions.
23
+
24
+ **Guiding principle:** Make the smallest correct change, keep the code maintainable, and verify the result.
@@ -4,6 +4,205 @@ Changelog
4
4
 
5
5
  (unreleased)
6
6
  ------------
7
+
8
+ Fix
9
+ ~~~
10
+ - UnicodeEncodeError in show_tree.py unter Windows (cp1252) [Paul
11
+ Magister]
12
+
13
+ sys.stdout auf UTF-8 umstellen, damit Unicode-Symbole (Emojis,
14
+ Baum-Zeichen) auch unter Windows mit cp1252-Konsole ausgegeben
15
+ werden können.
16
+
17
+ Closes #48
18
+ - Use Unix path separator in build-linux (closes #43) [Paul Magister]
19
+
20
+ config.yaml verwendet in build-linux das Windows-Pfadtrennzeichen ';',
21
+ unter Linux/macOS erwartet PyInstaller den Doppelpunkt ':'. Damit wird
22
+ config.yaml korrekt in den Linux-Build bündelt.
23
+
24
+ Other
25
+ ~~~~~
26
+ - Move globally useful guidelines to a AGENTS_GLOBAL.md that has to be
27
+ renamed and kept in the global folder for AGENTS.md files. [Paul
28
+ Magister]
29
+ - Merge pull request #49 from
30
+ pamagister/dependabot/github_actions/actions/checkout-7. [Paul
31
+ Magister]
32
+
33
+ Bump actions/checkout from 4 to 7
34
+ - Merge branch 'main' into dependabot/github_actions/actions/checkout-7.
35
+ [Paul Magister]
36
+ - Merge pull request #50 from
37
+ pamagister/dependabot/github_actions/actions/setup-python-7. [Paul
38
+ Magister]
39
+
40
+ Bump actions/setup-python from 5 to 7
41
+ - Bump actions/setup-python from 5 to 7. [dependabot[bot]]
42
+
43
+ Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 7.
44
+ - [Release notes](https://github.com/actions/setup-python/releases)
45
+ - [Commits](https://github.com/actions/setup-python/compare/v5...v7)
46
+
47
+ ---
48
+ updated-dependencies:
49
+ - dependency-name: actions/setup-python
50
+ dependency-version: '7'
51
+ dependency-type: direct:production
52
+ update-type: version-update:semver-major
53
+ ...
54
+ - Merge pull request #51 from
55
+ pamagister/dependabot/github_actions/codecov/codecov-action-7. [Paul
56
+ Magister]
57
+
58
+ Bump codecov/codecov-action from 5 to 7
59
+ - Bump codecov/codecov-action from 5 to 7. [dependabot[bot]]
60
+
61
+ Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 7.
62
+ - [Release notes](https://github.com/codecov/codecov-action/releases)
63
+ - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
64
+ - [Commits](https://github.com/codecov/codecov-action/compare/v5...v7)
65
+
66
+ ---
67
+ updated-dependencies:
68
+ - dependency-name: codecov/codecov-action
69
+ dependency-version: '7'
70
+ dependency-type: direct:production
71
+ update-type: version-update:semver-major
72
+ ...
73
+ - Bump actions/checkout from 4 to 7. [dependabot[bot]]
74
+
75
+ Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.
76
+ - [Release notes](https://github.com/actions/checkout/releases)
77
+ - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
78
+ - [Commits](https://github.com/actions/checkout/compare/v4...v7)
79
+
80
+ ---
81
+ updated-dependencies:
82
+ - dependency-name: actions/checkout
83
+ dependency-version: '7'
84
+ dependency-type: direct:production
85
+ update-type: version-update:semver-major
86
+ ...
87
+ - Merge pull request #39 from
88
+ pamagister/dependabot/github_actions/actions/setup-python-6. [Paul
89
+ Magister]
90
+
91
+ Bump actions/setup-python from 4 to 6
92
+ - Merge branch 'main' into dependabot/github_actions/actions/setup-
93
+ python-6. [Paul Magister]
94
+ - Merge pull request #40 from
95
+ pamagister/dependabot/github_actions/actions/checkout-6. [Paul
96
+ Magister]
97
+
98
+ Bump actions/checkout from 3 to 6
99
+ - Merge branch 'main' into dependabot/github_actions/actions/checkout-6.
100
+ [Paul Magister]
101
+ - Bump actions/checkout from 3 to 6. [dependabot[bot]]
102
+
103
+ Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 6.
104
+ - [Release notes](https://github.com/actions/checkout/releases)
105
+ - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
106
+ - [Commits](https://github.com/actions/checkout/compare/v3...v6)
107
+
108
+ ---
109
+ updated-dependencies:
110
+ - dependency-name: actions/checkout
111
+ dependency-version: '6'
112
+ dependency-type: direct:production
113
+ update-type: version-update:semver-major
114
+ ...
115
+ - Merge branch 'main' into dependabot/github_actions/actions/setup-
116
+ python-6 resolve merge conflict manually. [Paul Magister]
117
+ - Test: show_tree-Ausgabe unter Windows als UTF-8 dekodieren. [Paul
118
+ Magister]
119
+
120
+ subprocess.run(text=True) dekodiert unter Windows (cp1252) die
121
+ Kindprozess-Ausgabe; da show_tree.py UTF-8 ausgibt, muss der Test
122
+ encoding="utf-8" verwenden, damit Emoji- und Baum-Zeichen korrekt
123
+ erfasst werden.
124
+
125
+ Closes #48
126
+ - #48: add github usage details. [Paul Magister]
127
+ - Docs: Add SECURITY.md for vulnerability reporting (closes #45) [Paul
128
+ Magister]
129
+ - Docs: Add SECURITY.md for vulnerability reporting (closes #45) [Paul
130
+ Magister]
131
+
132
+ Dokumentiert den Meldungsweg für Sicherheitslücken über die private
133
+ Schwachstellenmeldung von GitHub (Security -> Report a vulnerability),
134
+ da es keinen öffentlichen Kanal gab.
135
+ - Ci: concurrency-Gruppen in allen Workflows (closes #42) [Paul
136
+ Magister]
137
+
138
+ Verhindert überlappende Läufe desselben Workflows (Gruppe nach
139
+ github.workflow und github.ref). Läufe bei Pull-Requests werden beim
140
+ erneuten Push abgebrochen; Tag-Releases und main-Pushes laufen weiter.
141
+ - Ci: release_message.sh auch bei erstem Tag gültig (closes #46) [Paul
142
+ Magister]
143
+
144
+ Bei nur einem Tag lieferte 'git tag ... | sed -n 2p' keinen Vorgänger,
145
+ weshalb 'git shortlog ".."' fehlschlug oder einen leeren
146
+ Changelog erzeugte. Nun wird bei fehlendem Vorgänger-Tag die Historie
147
+ aller Commits einbezogen.
148
+ - Ci: Checkout with fetch-depth 0 in deploy job (closes #44) [Paul
149
+ Magister]
150
+
151
+ setuptools_scm benötigt die Git-Tags, um die Version zu erzeugen.
152
+ Im deploy-Job von release.yml fehlte fetch-depth: 0 (shallow clone),
153
+ wodurch der PyPI-Upload fehlschlagen oder eine falsche Version
154
+ veröffentlichen konnte.
155
+ - Squeeze AGENTS.md. [Paul Magister]
156
+ - Feat(show_tree): use nice symbols. [Paul Magister]
157
+ - Feat(show_tree): align folder details and add global summary. [Paul
158
+ Magister]
159
+
160
+ Show folder summaries whenever --details is used, restrict --folder output to directories without file names, and always print a recursive overall summary at the end.
161
+
162
+ Refs #41
163
+ - Feat(show_tree): add per-folder summaries. [Paul Magister]
164
+
165
+ Add --folder to show direct subfolder/file counts, total size, and the top three file extensions per directory. File metadata is suppressed in this mode.
166
+
167
+ Refs #41
168
+ - Feat(show_tree): add optional metadata details. [Paul Magister]
169
+
170
+ Add a --details flag that appends file size, timestamps, owner, directory entry counts, and best-effort document metadata from ODF, OOXML, and PDF files. The default tree output remains unchanged.
171
+
172
+ Closes #41
173
+ - Add AGENTS.md and harmonize doc generation. [Paul Magister]
174
+ - Bump actions/setup-python from 4 to 6. [dependabot[bot]]
175
+
176
+ Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 6.
177
+ - [Release notes](https://github.com/actions/setup-python/releases)
178
+ - [Commits](https://github.com/actions/setup-python/compare/v4...v6)
179
+
180
+ ---
181
+ updated-dependencies:
182
+ - dependency-name: actions/setup-python
183
+ dependency-version: '6'
184
+ dependency-type: direct:production
185
+ update-type: version-update:semver-major
186
+ ...
187
+
188
+
189
+ 0.2.5 (2026-10-07)
190
+ ------------------
191
+ - Docs: Update HISTORY.md for release 0.2.5. [Paul Magister]
192
+ - Ich habe .readthedocs.yaml auf Read the Docs’ uv-Integration mit der
193
+ Gruppe docs umgestellt. Hinweis: uv sync wählt standardmäßig auch die
194
+ dev-Gruppe aus. [Paul Magister]
195
+ - Updated pyproject.toml to remove Deptry’s deprecated setting, which
196
+ pointed at optional-dependency groups that this project doesn’t use.
197
+ Added a targeted exception for lxml, an intentional dependency that
198
+ Deptry otherwise flags as unused. [Paul Magister]
199
+ - Bump version of config-cli-gui to latest version. [Paul Magister]
200
+ - Improve makefile. [Paul Magister]
201
+
202
+
203
+ 0.2.4 (2025-11-30)
204
+ ------------------
205
+ - Docs: Update HISTORY.md for release 0.2.4. [Paul Magister]
7
206
  - Add linux build workflow. [Paul Magister]
8
207
  - Avoid warning by adding lxml package. [Paul Magister]
9
208
  - Fix format. [Paul Magister]
@@ -18,8 +18,7 @@ show: ## Show the current environment.
18
18
  .PHONY: install
19
19
  install: ## Install the project in dev mode.
20
20
  $(MAKE) lock
21
- $(MAKE) virtualenv
22
- uv pip install -e .[dev,docs]
21
+ uv sync --all-groups
23
22
 
24
23
  .PHONY: lock
25
24
  lock: ## builds the uv.make lock file and syncs the packages
@@ -40,6 +39,7 @@ fmt: ## Format code using black & isort.
40
39
  uv run ruff format tests/
41
40
  uv run ruff check src/ --fix
42
41
  uv run ruff check tests/ --fix
42
+ $(MAKE) syncdocs
43
43
 
44
44
  .PHONY: lint
45
45
  lint: ## Run pep8, black, mypy linters.
@@ -68,12 +68,13 @@ build-win: ## Build the Windows executable.
68
68
  .PHONY: build-linux
69
69
  build-linux: ## Build the Linux executable.
70
70
  ## Build the Linux executable.
71
- uv run pyinstaller --onefile src/main.py --name python-template-project --add-data "config.yaml;." --hidden-import python_template_project.cli.cli --hidden-import python_template_project.gui.gui
71
+ uv run pyinstaller --onefile src/main.py --name python-template-project --add-data "config.yaml:." --hidden-import python_template_project.cli.cli --hidden-import python_template_project.gui.gui
72
72
 
73
73
  rm -rf release
74
74
  mkdir release
75
75
  cp dist/python-template-project release
76
76
  cp config.yaml release
77
+ cp README.md release
77
78
 
78
79
 
79
80
  .PHONY: build-macos
@@ -158,15 +159,20 @@ release: ## Create a new tag for release.
158
159
  echo "GitHub Actions will detect the new tag and trigger the release workflows."
159
160
  echo "Add modified files to commit and push them to main"
160
161
 
161
- .PHONY: docs
162
- docs: ## Build and sync the documentation.
162
+ .PHONY: syncdocs
163
+ syncdocs: ## Sync the documentation.
163
164
  @echo "sync documentation ..."
164
165
  @uv run ./scripts/generate_config_docs.py
165
166
  @uv run ./scripts/update_readme.py
166
167
  @uv run ./.github/update_funding.py
168
+
169
+ .PHONY: docs
170
+ docs: ## Build and sync the documentation.
171
+ ## run syncdocs
172
+ $(MAKE) syncdocs
167
173
  @echo "building documentation ..."
168
- @uv run mkdocs build
169
- @uv run mkdocs serve
174
+ @uv run --group docs mkdocs build
175
+ @uv run --group docs mkdocs serve
170
176
 
171
177
  .PHONY: tree
172
178
  tree: ## Show project tree (excluding ignored folders)
@@ -1,34 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-template-project
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: Feature-rich Python project template designed for robustness and ease of use.
5
5
  Author: pamagister
6
6
  Requires-Python: <3.12,>=3.10
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
- Requires-Dist: config-cli-gui>=0.2.2
9
+ Requires-Dist: config-cli-gui>=0.3.9
10
10
  Requires-Dist: fastkml>=1.1.0
11
11
  Requires-Dist: gpxpy>=1.6.2
12
12
  Requires-Dist: lxml>=6.0.2
13
13
  Requires-Dist: shapely>=2.1.1
14
14
  Requires-Dist: srtm-py>=0.3.7
15
- Provides-Extra: dev
16
- Requires-Dist: pytest>=8.4.0; extra == "dev"
17
- Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
18
- Requires-Dist: coverage>=7.8.2; extra == "dev"
19
- Requires-Dist: flake8>=7.2.0; extra == "dev"
20
- Requires-Dist: black>=25.1.0; extra == "dev"
21
- Requires-Dist: isort>=6.0.1; extra == "dev"
22
- Requires-Dist: pytest-cov>=6.1.1; extra == "dev"
23
- Requires-Dist: mypy>=1.16.0; extra == "dev"
24
- Requires-Dist: gitchangelog>=3.0.4; extra == "dev"
25
- Requires-Dist: pyinstaller>=5.8; extra == "dev"
26
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
27
- Requires-Dist: ruff>=0.11.13; extra == "dev"
28
- Provides-Extra: docs
29
- Requires-Dist: mkdocs>=1.6.1; extra == "docs"
30
- Requires-Dist: mkdocs-awesome-nav>=2.6.1; extra == "docs"
31
- Requires-Dist: pygments>=2.19.1; extra == "docs"
32
15
  Dynamic: license-file
33
16
 
34
17
  # Welcome to python-template-project
@@ -93,7 +93,6 @@ Getting started on developing your own project based on this template
93
93
  * Generate a **PyPI API token** from your PyPI account.
94
94
  * Go to **GitHub → Settings → Secrets and variables → Actions**.
95
95
  * Add the secret as `PYPI_API_TOKEN`.
96
- * The token probably starts with "pypi-..."
97
96
 
98
97
  16. **Release your first version**
99
98
  Run: