oe-python-template 0.6.23__tar.gz → 0.6.25__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 (170) hide show
  1. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.copier-answers.yml +1 -1
  2. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/CHANGELOG.md +15 -1
  3. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/PKG-INFO +2 -2
  4. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/README.md +1 -1
  5. oe_python_template-0.6.25/RELEASE_NOTES.md +8 -0
  6. oe_python_template-0.6.25/VERSION +1 -0
  7. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/partials/README_main.md +1 -1
  8. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/conf.py +1 -1
  9. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/pyproject.toml +2 -2
  10. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/sonar-project.properties +1 -1
  11. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/CONTRIBUTING.md.jinja +11 -12
  12. oe_python_template-0.6.25/template/SECURITY.md.jinja +59 -0
  13. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/partials/README_main.md.jinja +51 -51
  14. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/uv.lock +1 -1
  15. oe_python_template-0.6.23/RELEASE_NOTES.md +0 -8
  16. oe_python_template-0.6.23/VERSION +0 -1
  17. oe_python_template-0.6.23/template/SECURITY.md.jinja +0 -60
  18. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.act-env-public +0 -0
  19. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.devcontainer/Dockerfile +0 -0
  20. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.devcontainer/devcontainer.json +0 -0
  21. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.devcontainer/onCreateCommand +0 -0
  22. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.devcontainer/postAttachCommand +0 -0
  23. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.devcontainer/postCreateCommand +0 -0
  24. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.env.example +0 -0
  25. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/copilot-instructions.md +0 -0
  26. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/dependabot.yml +0 -0
  27. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/prompts/.keep +0 -0
  28. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/workflows/codeql.yml +0 -0
  29. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/workflows/docker-image-build-publish.yml +0 -0
  30. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/workflows/package-build-publish-release.yml +0 -0
  31. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.github/workflows/test-and-report.yml +0 -0
  32. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.gitignore +0 -0
  33. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.pre-commit-config.yaml +0 -0
  34. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.python-version +0 -0
  35. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.readthedocs.yml +0 -0
  36. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.secrets.baseline +0 -0
  37. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.vscode/extensions.json +0 -0
  38. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/.vscode/settings.json +0 -0
  39. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/CODEOWNERS +0 -0
  40. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/CODE_STYLE.md +0 -0
  41. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/CONTRIBUTING.md +0 -0
  42. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/Dockerfile +0 -0
  43. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/LICENSE +0 -0
  44. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/SECURITY.md +0 -0
  45. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/SERVICE_CONNECTIONS.md +0 -0
  46. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/bin/git-cliff +0 -0
  47. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/codecov.yml +0 -0
  48. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/compose.yaml +0 -0
  49. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/copier.yml +0 -0
  50. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/Makefile +0 -0
  51. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/make.bat +0 -0
  52. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/partials/README_footer.md +0 -0
  53. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/partials/README_header.md +0 -0
  54. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/_static/.keep +0 -0
  55. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/_static/openapi_v1.json +0 -0
  56. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/_static/openapi_v1.yaml +0 -0
  57. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/_static/openapi_v2.json +0 -0
  58. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/_static/openapi_v2.yaml +0 -0
  59. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/api_v1.rst +0 -0
  60. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/api_v1.rst.jinja +0 -0
  61. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/api_v2.rst +0 -0
  62. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/api_v2.rst.jinja +0 -0
  63. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/code-style.rst +0 -0
  64. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/contributing.rst +0 -0
  65. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/index.rst +0 -0
  66. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/latexmkrc +0 -0
  67. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/main.rst +0 -0
  68. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/reference.rst +0 -0
  69. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/release-notes.rst +0 -0
  70. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/docs/source/security.rst +0 -0
  71. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/examples/__init__.py +0 -0
  72. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/examples/notebook.ipynb +0 -0
  73. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/examples/notebook.py +0 -0
  74. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/examples/script.py +0 -0
  75. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/examples/streamlit.py +0 -0
  76. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/CHANGELOG.md +0 -0
  77. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/LICENSE-APACHE +0 -0
  78. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/LICENSE-MIT +0 -0
  79. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/README.md +0 -0
  80. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/completions/_git-cliff +0 -0
  81. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/completions/_git-cliff.ps1 +0 -0
  82. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/completions/git-cliff.bash +0 -0
  83. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/completions/git-cliff.elv +0 -0
  84. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/completions/git-cliff.fish +0 -0
  85. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/git-cliff-completions +0 -0
  86. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/git-cliff-mangen +0 -0
  87. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0/man/git-cliff.1 +0 -0
  88. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/git-cliff-2.7.0-x86_64-unknown-linux-gnu.tar.gz +0 -0
  89. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/github-action-run +0 -0
  90. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/logo.png +0 -0
  91. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/n +0 -0
  92. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/noxfile.py +0 -0
  93. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/renovate.json +0 -0
  94. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/reports/.keep +0 -0
  95. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/src/oe_python_template/__init__.py +0 -0
  96. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/src/oe_python_template/api.py +0 -0
  97. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/src/oe_python_template/cli.py +0 -0
  98. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/src/oe_python_template/constants.py +0 -0
  99. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/src/oe_python_template/service.py +0 -0
  100. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.act-env-public.jinja +0 -0
  101. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.devcontainer/Dockerfile.jinja +0 -0
  102. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.devcontainer/devcontainer.json.jinja +0 -0
  103. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.devcontainer/onCreateCommand.jinja +0 -0
  104. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.devcontainer/postAttachCommand.jinja +0 -0
  105. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.devcontainer/postCreateCommand.jinja +0 -0
  106. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.env.example.jinja +0 -0
  107. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.github/copilot-instructions.md +0 -0
  108. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.github/dependabot.yml +0 -0
  109. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.github/workflows/codeql.yml +0 -0
  110. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.github/workflows/docker-image-build-publish.yml.jinja +0 -0
  111. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.github/workflows/package-build-publish-release.yml.jinja +0 -0
  112. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.github/workflows/test-and-report.yml.jinja +0 -0
  113. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.gitignore.jinja +0 -0
  114. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.pre-commit-config.yaml.jinja +0 -0
  115. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.python-version +0 -0
  116. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.readthedocs.yml.jinja +0 -0
  117. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.vscode/extensions.json +0 -0
  118. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/.vscode/settings.json.jinja +0 -0
  119. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/CHANGELOG.md +0 -0
  120. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/CODEOWNERS.jinja +0 -0
  121. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/CODE_STYLE.md.jinja +0 -0
  122. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/Dockerfile.jinja +0 -0
  123. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/LICENSE.jinja +0 -0
  124. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/README.md +0 -0
  125. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/SERVICE_CONNECTIONS.md.jinja +0 -0
  126. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/VERSION +0 -0
  127. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/codecov.yml.jinja +0 -0
  128. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/compose.yaml.jinja +0 -0
  129. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/Makefile.jinja +0 -0
  130. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/make.bat.jinja +0 -0
  131. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/partials/README_footer.md.jinja +0 -0
  132. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/partials/README_header.md.jinja +0 -0
  133. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/_static/.keep +0 -0
  134. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/api_v1.rst.jinja +0 -0
  135. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/api_v2.rst.jinja +0 -0
  136. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/code-style.rst.jinja +0 -0
  137. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/conf.py.jinja +0 -0
  138. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/contributing.rst.jinja +0 -0
  139. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/index.rst.jinja +0 -0
  140. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/main.rst.jinja +0 -0
  141. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/reference.rst.jinja +0 -0
  142. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/release-notes.rst.jinja +0 -0
  143. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/docs/source/security.rst.jinja +0 -0
  144. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/examples/__init__.py.jinja +0 -0
  145. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/examples/notebook.ipynb.jinja +0 -0
  146. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/examples/notebook.py.jinja +0 -0
  147. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/examples/script.py.jinja +0 -0
  148. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/examples/streamlit.py.jinja +0 -0
  149. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/github-action-run.jinja +0 -0
  150. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/logo.png +0 -0
  151. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/n.jinja +0 -0
  152. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/noxfile.py.jinja +0 -0
  153. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/pyproject.toml.jinja +0 -0
  154. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/renovate.json +0 -0
  155. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/reports/.keep +0 -0
  156. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/sonar-project.properties.jinja +0 -0
  157. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/src/{{ project_name_snake_case }}/__init__.py.jinja +0 -0
  158. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/src/{{ project_name_snake_case }}/api.py.jinja +0 -0
  159. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/src/{{ project_name_snake_case }}/cli.py.jinja +0 -0
  160. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/src/{{ project_name_snake_case }}/constants.py.jinja +0 -0
  161. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/src/{{ project_name_snake_case }}/service.py.jinja +0 -0
  162. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/tests/__init__.py.jinja +0 -0
  163. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/tests/api_test.py.jinja +0 -0
  164. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/tests/cli_test.py.jinja +0 -0
  165. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/tests/fixtures/.keep +0 -0
  166. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/template/{{_copier_conf.answers_file}}.jinja +0 -0
  167. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/tests/__init__.py +0 -0
  168. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/tests/api_test.py +0 -0
  169. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/tests/cli_test.py +0 -0
  170. {oe_python_template-0.6.23 → oe_python_template-0.6.25}/tests/fixtures/.keep +0 -0
@@ -1,4 +1,4 @@
1
- _commit: v0.6.22-1-g59b0d10
1
+ _commit: v0.6.24-1-g398f37a
2
2
  _src_path: .
3
3
  author_email: helmuthva@gmail.com
4
4
  author_github_username: helmut-hoffer-von-ankershoffen
@@ -1,6 +1,20 @@
1
1
  [🧠 OE Python Template](https://oe-python-template.readthedocs.io/en/latest/)
2
2
 
3
- ## [0.6.23](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.22..0.6.23) - 2025-03-20
3
+ ## [0.6.25](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.24..0.6.25) - 2025-03-20
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Polish - ([997cbc9](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/997cbc924b03d488c41e412c7b1b5c3d51d200a4))
8
+
9
+
10
+ ## [0.6.24](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.23..v0.6.24) - 2025-03-20
11
+
12
+ ### 📚 Documentation
13
+
14
+ - Refactor intro - ([46c9054](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/46c905486d34f319b7c293c3f1fd82773bc1a8b0))
15
+
16
+
17
+ ## [0.6.23](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.22..v0.6.23) - 2025-03-20
4
18
 
5
19
  ### 📚 Documentation
6
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oe-python-template
3
- Version: 0.6.23
3
+ Version: 0.6.25
4
4
  Summary: 🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
5
5
  Project-URL: Homepage, https://oe-python-template.readthedocs.io/en/latest/
6
6
  Project-URL: Documentation, https://oe-python-template.readthedocs.io/en/latest/
@@ -119,7 +119,7 @@ Features:
119
119
  - CI/CD pipeline can be run locally with [act](https://github.com/nektos/act)
120
120
  - Code quality and security checks with [SonarQube](https://www.sonarsource.com/products/sonarcloud) and [GitHub CodeQL](https://codeql.github.com/)
121
121
  - Dependency monitoring with [pip-audit](https://pypi.org/project/pip-audit/), [Renovate](https://github.com/renovatebot/renovate), and [GitHub Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
122
- - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artefacts
122
+ - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artifacts in CSV and JSON format for compliance checks
123
123
  - Software Bill of Materials (SBOM) generated with [cyclonedx-python](https://github.com/CycloneDX/cyclonedx-python) and published as release artifact
124
124
  - Version and release management with [bump-my-version](https://callowayproject.github.io/bump-my-version/)
125
125
  - Changelog and release notes generated with [git-cliff](https://git-cliff.org/)
@@ -58,7 +58,7 @@ Features:
58
58
  - CI/CD pipeline can be run locally with [act](https://github.com/nektos/act)
59
59
  - Code quality and security checks with [SonarQube](https://www.sonarsource.com/products/sonarcloud) and [GitHub CodeQL](https://codeql.github.com/)
60
60
  - Dependency monitoring with [pip-audit](https://pypi.org/project/pip-audit/), [Renovate](https://github.com/renovatebot/renovate), and [GitHub Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
61
- - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artefacts
61
+ - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artifacts in CSV and JSON format for compliance checks
62
62
  - Software Bill of Materials (SBOM) generated with [cyclonedx-python](https://github.com/CycloneDX/cyclonedx-python) and published as release artifact
63
63
  - Version and release management with [bump-my-version](https://callowayproject.github.io/bump-my-version/)
64
64
  - Changelog and release notes generated with [git-cliff](https://git-cliff.org/)
@@ -0,0 +1,8 @@
1
+ ## [0.6.25](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.24..v0.6.25) - 2025-03-20
2
+
3
+ ### 📚 Documentation
4
+
5
+ - Polish - ([997cbc9](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/997cbc924b03d488c41e412c7b1b5c3d51d200a4))
6
+
7
+
8
+
@@ -0,0 +1 @@
1
+ 0.6.25
@@ -16,7 +16,7 @@ Features:
16
16
  - CI/CD pipeline can be run locally with [act](https://github.com/nektos/act)
17
17
  - Code quality and security checks with [SonarQube](https://www.sonarsource.com/products/sonarcloud) and [GitHub CodeQL](https://codeql.github.com/)
18
18
  - Dependency monitoring with [pip-audit](https://pypi.org/project/pip-audit/), [Renovate](https://github.com/renovatebot/renovate), and [GitHub Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
19
- - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artefacts
19
+ - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artifacts in CSV and JSON format for compliance checks
20
20
  - Software Bill of Materials (SBOM) generated with [cyclonedx-python](https://github.com/CycloneDX/cyclonedx-python) and published as release artifact
21
21
  - Version and release management with [bump-my-version](https://callowayproject.github.io/bump-my-version/)
22
22
  - Changelog and release notes generated with [git-cliff](https://git-cliff.org/)
@@ -29,7 +29,7 @@ extensions = [
29
29
  project = "oe-python-template"
30
30
  author = "Helmut Hoffer von Ankershoffen"
31
31
  copyright = f" (c) 2025-{datetime.now(UTC).year}, {author}" # noqa: A001
32
- version = "0.6.23"
32
+ version = "0.6.25"
33
33
  release = version
34
34
  github_username = "helmut-hoffer-von-ankershoffen"
35
35
  github_repository = "oe-python-template"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oe-python-template"
3
- version = "0.6.23"
3
+ version = "0.6.25"
4
4
  description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -242,7 +242,7 @@ source = ["src/"]
242
242
 
243
243
 
244
244
  [tool.bumpversion]
245
- current_version = "0.6.23"
245
+ current_version = "0.6.25"
246
246
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
247
247
  serialize = ["{major}.{minor}.{patch}"]
248
248
  search = "{current_version}"
@@ -1,6 +1,6 @@
1
1
  sonar.projectKey=helmut-hoffer-von-ankershoffen_oe-python-template
2
2
  sonar.organization=helmut-hoffer-von-ankershoffen
3
- sonar.projectVersion=0.6.23
3
+ sonar.projectVersion=0.6.25
4
4
  sonar.projectDescription=🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
5
5
  sonar.links.homepage=https://oe-python-template.readthedocs.io/en/latest/
6
6
  sonar.links.scm=https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template
@@ -55,8 +55,8 @@ examples/ # Example code demonstrating use of the project
55
55
  Don't forget to configure your `.env` file with the required environment variables.
56
56
 
57
57
  Notes:
58
- * .env.example is provided as a template.
59
- * .env is excluded from version control, so feel free to add secret values.
58
+ 1. .env.example is provided as a template.
59
+ 2. .env is excluded from version control, so feel free to add secret values.
60
60
 
61
61
  ### update dependencies and create virtual environment
62
62
 
@@ -117,9 +117,8 @@ uv run nox -s act
117
117
  ```
118
118
 
119
119
  Notes:
120
-
121
- - Workflow defined in `.github/workflows/*.yml`
122
- - test-and-report.yml calls all build steps defined in noxfile.py
120
+ 1. Workflow defined in `.github/workflows/*.yml`
121
+ 2. test-and-report.yml calls all build steps defined in noxfile.py
123
122
 
124
123
  ### Docker
125
124
 
@@ -147,10 +146,10 @@ uv run nox -s update_from_template
147
146
 
148
147
  ## Pull Request Guidelines
149
148
 
150
- - Before starting to write code read the [code style guide](CODE_STYLE.md) document for mandatory coding style
151
- guidelines.
152
- - **Pre-Commit Hooks:** We use pre-commit hooks to ensure code quality. Please install the pre-commit hooks by running `uv run pre-commit install`. This ensure all tests, linting etc. pass locally before you can commit.
153
- - **Squash Commits:** Before submitting a pull request, please squash your commits into a single commit.
154
- - **Branch Naming:** Use descriptive branch names like `feature/your-feature` or `fix/issue-number`.
155
- - **Testing:** Ensure new features have appropriate test coverage.
156
- - **Documentation:** Update documentation to reflect any changes or new features.
149
+ 1. Before starting to write code read the [code style guide](CODE_STYLE.md) document for mandatory coding style
150
+ guidelines.
151
+ 2. **Pre-Commit Hooks:** We use pre-commit hooks to ensure code quality. Please install the pre-commit hooks by running `uv run pre-commit install`. This ensure all tests, linting etc. pass locally before you can commit.
152
+ 3. **Squash Commits:** Before submitting a pull request, please squash your commits into a single commit.
153
+ 4. **Branch Naming:** Use descriptive branch names like `feature/your-feature` or `fix/issue-number`.
154
+ 5. **Testing:** Ensure new features have appropriate test coverage.
155
+ 6. **Documentation:** Update documentation to reflect any changes or new features.
@@ -0,0 +1,59 @@
1
+ # Security Policy
2
+
3
+ ## Reporting Security Issues
4
+
5
+ If you discover a security vulnerability in {{ project_name }}, please [report it here]({{ github_repository_url_https }}/security/advisories/new).
6
+
7
+ We take all security reports seriously. Upon receiving a security report, we will:
8
+ 1. Confirm receipt of the vulnerability report
9
+ 2. Investigate the issue
10
+ 3. Work on a fix
11
+ 4. Release a security update
12
+
13
+ ## Supported Versions
14
+
15
+ We currently provide security updates for the latest minor version.
16
+
17
+ ## Automated Security Analysis
18
+
19
+ {{ project_name }} employs several automated tools to continuously monitor and improve security:
20
+
21
+ ### 1. Dependency Vulnerability Scanning
22
+
23
+ a. **GitHub Dependabot**: Monitors dependencies for known vulnerabilities and automatically creates pull requests to update them when security issues are found. [Dependendabot alerts]({{ github_repository_url_https }}/security/dependabot) published.
24
+ b. **Renovate Bot**: Automatically creates pull requests to update dependencies when new versions are available, with a focus on security patches. [Dependency Dashboard]({{ github_repository_url_https }}/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard) published.
25
+ c. **pip-audit**: Regularly scans Python dependencies for known vulnerabilities using data from the Python Advisory Database. `vulnerabilities.json` published [per release]({{ github_repository_url_https }}/releases).
26
+
27
+ ### 2. Dependency Compliance
28
+
29
+ a. **cyclonedx-py**: Generates a Software Bill of Materials (SBOM) in SPDX format, listing all components and dependencies used in the project. `sbom.json` (SPDX format) published [per release]({{ github_repository_url_https }}/releases).
30
+ b. **pip-licenses**: Exports the licenses of all dependencies to ensure compliance with licensing requirements and avoid using components with problematic licenses. `licenses.csv`, `licenses.json` and `licenses_grouped.json` published [per release]({{ github_repository_url_https }}/releases).
31
+
32
+ ### 3. Static Code Analysis
33
+
34
+ a. **GitHub CodeQL**: Analyzes code for common vulnerabilities and coding errors using GitHub's semantic code analysis engine. [Code scanning results]({{ github_repository_url_https }}/security/code-scanning) published.
35
+ b. **SonarQube**: Performs comprehensive static code analysis to detect code quality issues, security vulnerabilities, and bugs. [Security hotspots](https://sonarcloud.io/project/security_hotspots?id={{ sonarqube_key }}) published.
36
+
37
+ ### 4. Secret Detection
38
+ a. **GitHub Secret scanning**: Automatically scans for secrets in the codebase and alerts if any are found. [Secret scanning alerts]({{ github_repository_url_https }}/security/secret-scanning) published.
39
+ b. **Yelp/detect-secrets**: Pre-commit hook and automated scanning to prevent accidental inclusion of secrets or sensitive information in commits. [Pre-Commit hook]({{ github_repository_url_https }}/blob/main/.pre-commit-config.yaml) published.
40
+
41
+ ## Security Best Practices
42
+
43
+ We follow these security best practices:
44
+ 1. Regular dependency updates
45
+ 2. Comprehensive test coverage
46
+ 3. Code review process for changes by external contributors
47
+ 4. Automated CI/CD pipelines including security checks
48
+ 5. Adherence to Python security best practices
49
+
50
+ We promote security awareness among contributors and users:
51
+ 1. We indicate security as a priority in our
52
+ [code style guide](CODE_STYLE.md), to be followed by human and agentic
53
+ contributors as mandatory
54
+ 2. We publish our security posture in SECURITY.md (this document), encouraring
55
+ users to report vulnerabilities.
56
+
57
+ ## Security Compliance
58
+
59
+ For questions about security compliance or for more details about our security practices, please contact {{ author_email }}.
@@ -4,38 +4,38 @@ This [Copier](https://copier.readthedocs.io/en/stable/) template enables you to
4
4
  Projects generated from this template can be [easily updated](https://copier.readthedocs.io/en/stable/updating/) to benefit from improvements and new features of the template.
5
5
 
6
6
  Features:
7
- - Package management with [uv](https://github.com/astral-sh/uv)
8
- - Code formatting with [Ruff](https://github.com/astral-sh/ruff)
9
- - Linting with [Ruff](https://github.com/astral-sh/ruff)
10
- - Static type checking with [mypy](https://mypy.readthedocs.io/en/stable/)
11
- - Complete set of [pre-commit](https://pre-commit.com/) hooks including [detect-secrets](https://github.com/Yelp/detect-secrets) and [pygrep](https://github.com/pre-commit/pygrep-hooks)
12
- - Unit and E2E testing with [pytest](https://docs.pytest.org/en/stable/) including parallel test execution
13
- - Matrix testing in multiple environments with [nox](https://nox.thea.codes/en/stable/)
14
- - Test coverage reported with [Codecov](https://codecov.io/) and published as release artifact
15
- - CI/CD pipeline automated with [GitHub Actions](https://github.com/features/actions)
16
- - CI/CD pipeline can be run locally with [act](https://github.com/nektos/act)
17
- - Code quality and security checks with [SonarQube](https://www.sonarsource.com/products/sonarcloud) and [GitHub CodeQL](https://codeql.github.com/)
18
- - Dependency monitoring with [pip-audit](https://pypi.org/project/pip-audit/), [Renovate](https://github.com/renovatebot/renovate), and [GitHub Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
19
- - Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artefacts
20
- - Software Bill of Materials (SBOM) generated with [cyclonedx-python](https://github.com/CycloneDX/cyclonedx-python) and published as release artifact
21
- - Version and release management with [bump-my-version](https://callowayproject.github.io/bump-my-version/)
22
- - Changelog and release notes generated with [git-cliff](https://git-cliff.org/)
23
- - Documentation generated with [Sphinx](https://www.sphinx-doc.org/en/master/) including reference documentation and PDF export
24
- - Documentation published to [Read The Docs](https://readthedocs.org/)
25
- - Interactive OpenAPI specification with [Swagger](https://swagger.io/)
26
- - Python package published to [PyPI](https://pypi.org/)
27
- - Docker images published to [Docker.io](https://hub.docker.com/) and [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) with [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds)
28
- - One-click development environments with [Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) and [GitHub Codespaces](https://github.com/features/codespaces)
7
+ 1. Package management with [uv](https://github.com/astral-sh/uv)
8
+ 2. Code formatting with [Ruff](https://github.com/astral-sh/ruff)
9
+ 3. Linting with [Ruff](https://github.com/astral-sh/ruff)
10
+ 4. Static type checking with [mypy](https://mypy.readthedocs.io/en/stable/)
11
+ 5. Complete set of [pre-commit](https://pre-commit.com/) hooks including [detect-secrets](https://github.com/Yelp/detect-secrets) and [pygrep](https://github.com/pre-commit/pygrep-hooks)
12
+ 6. Unit and E2E testing with [pytest](https://docs.pytest.org/en/stable/) including parallel test execution
13
+ 7. Matrix testing in multiple environments with [nox](https://nox.thea.codes/en/stable/)
14
+ 8. Test coverage reported with [Codecov](https://codecov.io/) and published as release artifact
15
+ 9. CI/CD pipeline automated with [GitHub Actions](https://github.com/features/actions)
16
+ 10. CI/CD pipeline can be run locally with [act](https://github.com/nektos/act)
17
+ 11. Code quality and security checks with [SonarQube](https://www.sonarsource.com/products/sonarcloud) and [GitHub CodeQL](https://codeql.github.com/)
18
+ 12. Dependency monitoring with [pip-audit](https://pypi.org/project/pip-audit/), [Renovate](https://github.com/renovatebot/renovate), and [GitHub Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide)
19
+ 13. Licenses of dependencies extracted with [pip-licenses](https://pypi.org/project/pip-licenses/) and published as release artifacts in CSV and JSON format for compliance checks
20
+ 14. Software Bill of Materials (SBOM) generated with [cyclonedx-python](https://github.com/CycloneDX/cyclonedx-python) and published as release artifact
21
+ 15. Version and release management with [bump-my-version](https://callowayproject.github.io/bump-my-version/)
22
+ 16. Changelog and release notes generated with [git-cliff](https://git-cliff.org/)
23
+ 17. Documentation generated with [Sphinx](https://www.sphinx-doc.org/en/master/) including reference documentation and PDF export
24
+ 18. Documentation published to [Read The Docs](https://readthedocs.org/)
25
+ 19. Interactive OpenAPI specification with [Swagger](https://swagger.io/)
26
+ 20. Python package published to [PyPI](https://pypi.org/)
27
+ 21. Docker images published to [Docker.io](https://hub.docker.com/) and [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) with [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds)
28
+ 22. One-click development environments with [Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) and [GitHub Codespaces](https://github.com/features/codespaces)
29
29
 
30
30
  The generated project includes code, documentation and configuration of a fully functioning demo-application and service, which can be used as a starting point for your own project.
31
- - Service architecture suitable for use as shared library
32
- - Validation with [pydantic](https://docs.pydantic.dev/)
33
- - Command-line interface (CLI) with [Typer](https://typer.tiangolo.com/)
34
- - Versioned Web API with [FastAPI](https://fastapi.tiangolo.com/)
35
- - [Interactive Jupyter notebook](https://jupyter.org/) and [reactive Marimo notebook](https://marimo.io/)
36
- - Simple Web UI with [Streamlit](https://streamlit.io/)
37
- - Configuration to run the CLI and API in a Docker container including setup for [Docker Compose](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-docker-compose/)
38
- - Documentation including badges, setup instructions, contribution guide and security policy
31
+ 1. Service architecture suitable for use as shared library
32
+ 2. Validation with [pydantic](https://docs.pydantic.dev/)
33
+ 3. Command-line interface (CLI) with [Typer](https://typer.tiangolo.com/)
34
+ 4. Versioned Web API with [FastAPI](https://fastapi.tiangolo.com/)
35
+ 5. [Interactive Jupyter notebook](https://jupyter.org/) and [reactive Marimo notebook](https://marimo.io/)
36
+ 6. Simple Web UI with [Streamlit](https://streamlit.io/)
37
+ 7. Configuration to run the CLI and API in a Docker container including setup for [Docker Compose](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-docker-compose/)
38
+ 8. Documentation including badges, setup instructions, contribution guide and security policy
39
39
 
40
40
  Explore [here](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example) for what's generated out of the box.
41
41
 
@@ -84,9 +84,9 @@ external services such as CloudCov, SonarQube Cloud, Read The Docs, Docker.io, a
84
84
  ./n bump
85
85
  ```
86
86
  Notes:
87
- * You can remove this section post having successfully generated your project.
88
- * The following sections refer to the dummy application and service provided by this template.
89
- Use them as inspiration and adapt them to your own project.
87
+ 1. You can remove this section post having successfully generated your project.
88
+ 2. The following sections refer to the dummy application and service provided by this template.
89
+ Use them as inspiration and adapt them to your own project.
90
90
 
91
91
  ## Overview
92
92
 
@@ -112,9 +112,9 @@ uvx {{ pypi_distribution_name}} serve --port=4711 # serves web API on port 4711
112
112
  ```
113
113
 
114
114
  Notes:
115
- * The API is versioned, mounted at `/api/v1` resp. `/api/v2`
116
- * While serving the web API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
117
- * Interactive documentation is provided at [http://127.0.0.1:8000/api/docs](http://127.0.0.1:8000/api/docs)
115
+ 1. The API is versioned, mounted at `/api/v1` resp. `/api/v2`
116
+ 2. While serving the web API go to [http://127.0.0.1:8000/api/v1/hello-world](http://127.0.0.1:8000/api/v1/hello-world) to see the respons of the `hello-world` operation.
117
+ 3. Interactive documentation is provided at [http://127.0.0.1:8000/api/docs](http://127.0.0.1:8000/api/docs)
118
118
 
119
119
 
120
120
  The CLI provides extensive help:
@@ -132,21 +132,21 @@ uvx {{ pypi_distribution_name}} serve --help
132
132
 
133
133
  This project is designed with operational excellence in mind, using modern Python tooling and practices. It includes:
134
134
 
135
- * Various examples demonstrating usage:
136
- - [Simple Python script]({{ github_repository_url_https }}/blob/main/examples/script.py)
137
- - [Streamlit web application](https://{{ streamlit_project_key }}.streamlit.app/) deployed on [Streamlit Community Cloud](https://streamlit.io/cloud)
138
- - [Jupyter]({{ github_repository_url_https }}/blob/main/examples/notebook.ipynb) and [Marimo]({{ github_repository_url_https }}/blob/main/examples/notebook.py) notebook
139
- * [Complete reference documentation](https://{{ readthedocs_project_key }}.readthedocs.io/en/latest/reference.html) on Read the Docs
140
- * [Transparent test coverage](https://app.codecov.io/gh/{{ github_repository_owner }}/{{ github_repository_name }}) including unit and E2E tests (reported on Codecov)
141
- * Matrix tested with [multiple python versions]({{ github_repository_url_https}}/blob/main/noxfile.py) to ensure compatibility (powered by [Nox](https://nox.thea.codes/en/stable/))
142
- * Compliant with modern linting and formatting standards (powered by [Ruff](https://github.com/astral-sh/ruff))
143
- * Up-to-date dependencies (monitored by [Renovate](https://github.com/renovatebot/renovate) and [Dependabot]({{ github_repository_url_https }}/security/dependabot))
144
- * [A-grade code quality](https://sonarcloud.io/summary/new_code?id={{ sonarqube_key}}) in security, maintainability, and reliability with low technical debt and codesmell (verified by SonarQube)
145
- * Additional code security checks using [CodeQL]({{ github_repository_url_https }}/security/code-scanning)
146
- * [Security Policy](SECURITY.md)
147
- * [License](LICENSE) compliant with the Open Source Initiative (OSI)
148
- * 1-liner for installation and execution of command line interface (CLI) via [uv(x)](https://github.com/astral-sh/uv) or [Docker](https://hub.docker.com/r/{{ docker_io_owner }}/{{ docker_io_image_name }}/tags)
149
- * Setup for developing inside a [devcontainer](https://code.visualstudio.com/docs/devcontainers/containers) included (supports VSCode and GitHub Codespaces)
135
+ 1. Various examples demonstrating usage:
136
+ a. [Simple Python script]({{ github_repository_url_https }}/blob/main/examples/script.py)
137
+ b. [Streamlit web application](https://{{ streamlit_project_key }}.streamlit.app/) deployed on [Streamlit Community Cloud](https://streamlit.io/cloud)
138
+ c. [Jupyter]({{ github_repository_url_https }}/blob/main/examples/notebook.ipynb) and [Marimo]({{ github_repository_url_https }}/blob/main/examples/notebook.py) notebook
139
+ 2. [Complete reference documentation](https://{{ readthedocs_project_key }}.readthedocs.io/en/latest/reference.html) on Read the Docs
140
+ 3. [Transparent test coverage](https://app.codecov.io/gh/{{ github_repository_owner }}/{{ github_repository_name }}) including unit and E2E tests (reported on Codecov)
141
+ 4. Matrix tested with [multiple python versions]({{ github_repository_url_https}}/blob/main/noxfile.py) to ensure compatibility (powered by [Nox](https://nox.thea.codes/en/stable/))
142
+ 5. Compliant with modern linting and formatting standards (powered by [Ruff](https://github.com/astral-sh/ruff))
143
+ 6. Up-to-date dependencies (monitored by [Renovate](https://github.com/renovatebot/renovate) and [Dependabot]({{ github_repository_url_https }}/security/dependabot))
144
+ 7. [A-grade code quality](https://sonarcloud.io/summary/new_code?id={{ sonarqube_key}}) in security, maintainability, and reliability with low technical debt and codesmell (verified by SonarQube)
145
+ 8. Additional code security checks using [CodeQL]({{ github_repository_url_https }}/security/code-scanning)
146
+ 9. [Security Policy](SECURITY.md)
147
+ 10. [License](LICENSE) compliant with the Open Source Initiative (OSI)
148
+ 11. 1-liner for installation and execution of command line interface (CLI) via [uv(x)](https://github.com/astral-sh/uv) or [Docker](https://hub.docker.com/r/{{ docker_io_owner }}/{{ docker_io_image_name }}/tags)
149
+ 12. Setup for developing inside a [devcontainer](https://code.visualstudio.com/docs/devcontainers/containers) included (supports VSCode and GitHub Codespaces)
150
150
 
151
151
 
152
152
  ## Usage Examples
@@ -2075,7 +2075,7 @@ wheels = [
2075
2075
 
2076
2076
  [[package]]
2077
2077
  name = "oe-python-template"
2078
- version = "0.6.23"
2078
+ version = "0.6.25"
2079
2079
  source = { editable = "." }
2080
2080
  dependencies = [
2081
2081
  { name = "fastapi", extra = ["all", "standard"] },
@@ -1,8 +0,0 @@
1
- ## [0.6.23](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/compare/v0.6.22..v0.6.23) - 2025-03-20
2
-
3
- ### 📚 Documentation
4
-
5
- - Refactor intro - ([7e30bd3](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template/commit/7e30bd30a516c52c729615fa516e0b493cdf0213))
6
-
7
-
8
-
@@ -1 +0,0 @@
1
- 0.6.23
@@ -1,60 +0,0 @@
1
- # Security Policy
2
-
3
- ## Reporting Security Issues
4
-
5
- If you discover a security vulnerability in {{ project_name }}, please [report it here]({{ github_repository_url_https }}/security/advisories/new).
6
-
7
- We take all security reports seriously. Upon receiving a security report, we will:
8
- 1. Confirm receipt of the vulnerability report
9
- 2. Investigate the issue
10
- 3. Work on a fix
11
- 4. Release a security update
12
-
13
- ## Supported Versions
14
-
15
- We currently provide security updates for the latest minor version.
16
-
17
- ## Automated Security Analysis
18
-
19
- {{ project_name }} employs several automated tools to continuously monitor and improve security:
20
-
21
- ### 1. Dependency Vulnerability Scanning
22
-
23
- - **GitHub Dependabot**: Monitors dependencies for known vulnerabilities and automatically creates pull requests to update them when security issues are found. [Dependendabot alerts]({{ github_repository_url_https }}/security/dependabot) published.
24
- - **Renovate Bot**: Automatically creates pull requests to update dependencies when new versions are available, with a focus on security patches. [Dependency Dashboard]({{ github_repository_url_https }}/issues?q=is%3Aissue%20state%3Aopen%20Dependency%20Dashboard) published.
25
- - **pip-audit**: Regularly scans Python dependencies for known vulnerabilities using data from the Python Advisory Database. `vulnerabilities.json` published [per release]({{ github_repository_url_https }}/releases).
26
-
27
- ### 2. Dependency Compliance
28
-
29
- - **cyclonedx-py**: Generates a Software Bill of Materials (SBOM) in SPDX format, listing all components and dependencies used in the project. `sbom.json` (SPDX format) published [per release]({{ github_repository_url_https }}/releases).
30
- - **pip-licenses**: Exports the licenses of all dependencies to ensure compliance with licensing requirements and avoid using components with problematic licenses. `licenses.csv`, `licenses.json` and `licenses_grouped.json` published [per release]({{ github_repository_url_https }}/releases).
31
-
32
- ### 3. Static Code Analysis
33
-
34
- - **GitHub CodeQL**: Analyzes code for common vulnerabilities and coding errors using GitHub's semantic code analysis engine. [Code scanning results]({{ github_repository_url_https }}/security/code-scanning) published.
35
- - **SonarQube**: Performs comprehensive static code analysis to detect code quality issues, security vulnerabilities, and bugs. [Security hotspots](https://sonarcloud.io/project/security_hotspots?id={{ sonarqube_key }}) published.
36
-
37
- ### 4. Secret Detection
38
- - **GitHub Secret scanning**: Automatically scans for secrets in the codebase and alerts if any are found. [Secret scanning alerts]({{ github_repository_url_https }}/security/secret-scanning) published.
39
- - **Yelp/detect-secrets**: Pre-commit hook and automated scanning to prevent accidental inclusion of secrets or sensitive information in commits. [Pre-Commit hook]({{ github_repository_url_https }}/blob/main/.pre-commit-config.yaml) published.
40
-
41
- ## Security Best Practices
42
-
43
- We follow these security best practices:
44
- - Regular dependency updates
45
- - Comprehensive test coverage
46
- - Code review process for changes by external contributors
47
- - Automated CI/CD pipelines including security checks
48
- - Adherence to Python security best practices
49
-
50
- We promote security awareness among contributors and users
51
-
52
- - We indicate security as a priority in our
53
- [code style guide](CODE_STYLE.md), to be followed by human and agentic
54
- contributors as mandatory
55
- - We publish our security posture in SECURITY.md (this document), encouraring
56
- users to report vulnerabilities.
57
-
58
- ## Security Compliance
59
-
60
- For questions about security compliance or for more details about our security practices, please contact {{ author_email }}.