python-template-project 0.2.5__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 (92) hide show
  1. python_template_project-0.2.6/.github/release_message.sh +12 -0
  2. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/update_funding.py +2 -2
  3. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/build-linux.yml +6 -2
  4. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/build-macos.yml +6 -2
  5. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/build-windows.yml +6 -2
  6. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/main.yml +11 -7
  7. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/release.yml +10 -3
  8. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/rename_project.yml +5 -1
  9. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/workflows/update_readme.yml +6 -2
  10. python_template_project-0.2.6/AGENTS.md +72 -0
  11. python_template_project-0.2.6/AGENTS_GLOBAL.md +24 -0
  12. {python_template_project-0.2.5 → python_template_project-0.2.6}/HISTORY.md +185 -0
  13. {python_template_project-0.2.5 → python_template_project-0.2.6}/Makefile +1 -1
  14. {python_template_project-0.2.5/src/python_template_project.egg-info → python_template_project-0.2.6}/PKG-INFO +1 -1
  15. python_template_project-0.2.6/SECURITY.md +31 -0
  16. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/usage/cli.md +10 -1
  17. {python_template_project-0.2.5 → python_template_project-0.2.6}/scripts/generate_config_docs.py +18 -1
  18. python_template_project-0.2.6/scripts/show_tree.py +625 -0
  19. {python_template_project-0.2.5 → python_template_project-0.2.6}/scripts/update_readme.py +1 -1
  20. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/_version.py +3 -3
  21. {python_template_project-0.2.5 → python_template_project-0.2.6/src/python_template_project.egg-info}/PKG-INFO +1 -1
  22. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project.egg-info/SOURCES.txt +5 -1
  23. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project.egg-info/scm_file_list.json +4 -0
  24. python_template_project-0.2.6/src/python_template_project.egg-info/scm_version.json +8 -0
  25. python_template_project-0.2.6/tests/test_show_tree.py +249 -0
  26. python_template_project-0.2.5/.github/release_message.sh +0 -3
  27. python_template_project-0.2.5/scripts/show_tree.py +0 -174
  28. python_template_project-0.2.5/src/python_template_project.egg-info/scm_version.json +0 -8
  29. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/FUNDING.yml +0 -0
  30. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  31. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  32. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  33. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/actions/setup-environment/action.yml +0 -0
  34. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/dependabot.yml +0 -0
  35. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/init.sh +0 -0
  36. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/rename_project.sh +0 -0
  37. {python_template_project-0.2.5 → python_template_project-0.2.6}/.github/template.yml +0 -0
  38. {python_template_project-0.2.5 → python_template_project-0.2.6}/.gitignore +0 -0
  39. {python_template_project-0.2.5 → python_template_project-0.2.6}/.idea/runConfigurations/config_generate.xml +0 -0
  40. {python_template_project-0.2.5 → python_template_project-0.2.6}/.idea/runConfigurations/module_cli.xml +0 -0
  41. {python_template_project-0.2.5 → python_template_project-0.2.6}/.idea/runConfigurations/module_gui.xml +0 -0
  42. {python_template_project-0.2.5 → python_template_project-0.2.6}/.pre-commit-config-linux.yaml +0 -0
  43. {python_template_project-0.2.5 → python_template_project-0.2.6}/.pre-commit-config.yaml +0 -0
  44. {python_template_project-0.2.5 → python_template_project-0.2.6}/.readthedocs.yaml +0 -0
  45. {python_template_project-0.2.5 → python_template_project-0.2.6}/LICENSE +0 -0
  46. {python_template_project-0.2.5 → python_template_project-0.2.6}/README.md +0 -0
  47. {python_template_project-0.2.5 → python_template_project-0.2.6}/config.yaml +0 -0
  48. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/.nav.yml +0 -0
  49. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/_static/img/favicon.png +0 -0
  50. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/_static/img/logo.png +0 -0
  51. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/css/custom.css +0 -0
  52. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/develop/contributing.md +0 -0
  53. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/develop/make_windows.md +0 -0
  54. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/develop/naming_convention.md +0 -0
  55. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/develop/pypi_release.md +0 -0
  56. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/funding/funding.md +0 -0
  57. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/getting-started/install.md +0 -0
  58. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/getting-started/virtual-environment.md +0 -0
  59. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/index.md +0 -0
  60. {python_template_project-0.2.5 → python_template_project-0.2.6}/docs/usage/config.md +0 -0
  61. {python_template_project-0.2.5 → python_template_project-0.2.6}/examples/kuhkopfsteig.gpx +0 -0
  62. {python_template_project-0.2.5 → python_template_project-0.2.6}/examples/rother_lilienstein.gpx +0 -0
  63. {python_template_project-0.2.5 → python_template_project-0.2.6}/examples/teneriffa.gpx +0 -0
  64. {python_template_project-0.2.5 → python_template_project-0.2.6}/mkdocs.yml +0 -0
  65. {python_template_project-0.2.5 → python_template_project-0.2.6}/pyproject.toml +0 -0
  66. {python_template_project-0.2.5 → python_template_project-0.2.6}/pytest.ini +0 -0
  67. {python_template_project-0.2.5 → python_template_project-0.2.6}/scripts/show_filelist.py +0 -0
  68. {python_template_project-0.2.5 → python_template_project-0.2.6}/setup.cfg +0 -0
  69. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/__init__.py +0 -0
  70. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/firewall_handler.py +0 -0
  71. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/main.py +0 -0
  72. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/__init__.py +0 -0
  73. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/__main__.py +0 -0
  74. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/cli/__init__.py +0 -0
  75. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/cli/__main__.py +0 -0
  76. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/cli/cli.py +0 -0
  77. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/config/__init__.py +0 -0
  78. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/config/config.py +0 -0
  79. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/core/__init__.py +0 -0
  80. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/core/base.py +0 -0
  81. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/core/logging.py +0 -0
  82. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/gui/__init__.py +0 -0
  83. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/gui/__main__.py +0 -0
  84. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project/gui/gui.py +0 -0
  85. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project.egg-info/dependency_links.txt +0 -0
  86. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project.egg-info/entry_points.txt +0 -0
  87. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project.egg-info/requires.txt +0 -0
  88. {python_template_project-0.2.5 → python_template_project-0.2.6}/src/python_template_project.egg-info/top_level.txt +0 -0
  89. {python_template_project-0.2.5 → python_template_project-0.2.6}/template.yml.url +0 -0
  90. {python_template_project-0.2.5 → python_template_project-0.2.6}/tests/__init__.py +0 -0
  91. {python_template_project-0.2.5 → python_template_project-0.2.6}/tests/test_gpx.py +0 -0
  92. {python_template_project-0.2.5 → python_template_project-0.2.6}/uv.lock +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
@@ -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,191 @@ 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]
7
192
  - Ich habe .readthedocs.yaml auf Read the Docs’ uv-Integration mit der
8
193
  Gruppe docs umgestellt. Hinweis: uv sync wählt standardmäßig auch die
9
194
  dev-Gruppe aus. [Paul Magister]
@@ -68,7 +68,7 @@ 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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-template-project
3
- Version: 0.2.5
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
@@ -0,0 +1,31 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Currently, only the latest release of the template is supported. Older
6
+ releases no longer receive security updates.
7
+
8
+ ## Reporting Vulnerabilities
9
+
10
+ Please do **not** disclose discovered security vulnerabilities publicly
11
+ via issues or pull requests.
12
+
13
+ Instead, report them using GitHub’s private vulnerability reporting feature:
14
+
15
+ 1. Open the **Security** tab of the repository.
16
+ 2. Click on **Report a vulnerability** (or **Advisories → New draft
17
+ security advisory**).
18
+ 3. Describe the issue, the affected versions, and the potential
19
+ impact as accurately as possible.
20
+
21
+ The GitHub security team will forward the report to the maintainers.
22
+ You will receive an acknowledgment and be kept informed about the progress.
23
+
24
+ ## Expected Process
25
+
26
+ * Acknowledgment of receipt within 5 business days.
27
+ * Initial assessment and prioritization within 14 days.
28
+ * If a fix is ​​developed: publication alongside a new release and
29
+ (where appropriate) a CVE.
30
+
31
+ Thank you for helping to keep this template secure.
@@ -72,4 +72,13 @@ python-template-project --extract_waypoints True input
72
72
  ```bash
73
73
  python -m python_template_project --help
74
74
  python -m python_template_project input
75
- ```
75
+ ```
76
+
77
+ # More parameter
78
+
79
+ For your specific projects that inherit from the library,
80
+ you can add more parameters to the CLI and config file
81
+ by creating your own ConfigManager subclass
82
+ and adding more ConfigParameter instances.
83
+ The documentation generator will automatically include them
84
+ in the generated documentation.
@@ -1,3 +1,5 @@
1
+ from pathlib import Path
2
+
1
3
  from config_cli_gui.docs import DocumentationGenerator
2
4
 
3
5
  from python_template_project.config.config import ConfigParameterManager
@@ -19,4 +21,19 @@ docGen.generate_config_markdown_doc(output_file=default_config_doc)
19
21
  print(f"Generated: {default_config_doc}")
20
22
 
21
23
  docGen.generate_cli_markdown_doc(output_file=default_cli_doc, app_name=config_manager.get_app_name())
22
- print(f"Generated: {default_cli_doc}")
24
+ print(f"Generated: {default_cli_doc}")
25
+
26
+ additional_cli_content = """
27
+
28
+ # More parameter
29
+
30
+ For your specific projects that inherit from the library,
31
+ you can add more parameters to the CLI and config file
32
+ by creating your own ConfigManager subclass
33
+ and adding more ConfigParameter instances.
34
+ The documentation generator will automatically include them
35
+ in the generated documentation.
36
+ """
37
+
38
+ with Path(default_cli_doc).open("a", encoding="utf-8") as cli_doc:
39
+ cli_doc.write(additional_cli_content)