python-semantic-release 9.8.6__tar.gz → 9.8.7__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.
- {python_semantic_release-9.8.6/python_semantic_release.egg-info → python_semantic_release-9.8.7}/PKG-INFO +3 -4
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/github-actions.rst +33 -31
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/changelog_templates.rst +17 -14
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/configuration.rst +17 -6
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/github-action.rst +3 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/pyproject.toml +4 -4
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7/python_semantic_release.egg-info}/PKG-INFO +3 -4
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/python_semantic_release.egg-info/requires.txt +2 -3
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/__init__.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/changelog_writer.py +6 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/commands/changelog.py +5 -2
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/commands/version.py +2 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_changelog.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_version.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/scenario/test_next_version.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/scenario/test_release_history.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/cli/test_util.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test__base.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/version/test_declaration.py +1 -1
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/AUTHORS.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/LICENSE +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/MANIFEST.in +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/README.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/Makefile +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/algorithm.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/cronjobs.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/index.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/travis.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/commands.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/commit-parsing.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/conf.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/contributing.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/contributors.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/index.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/make.bat +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/migrating_from_v7.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/multibranch_releases.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/strict_mode.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/troubleshooting.rst +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/python_semantic_release.egg-info/SOURCES.txt +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/python_semantic_release.egg-info/dependency_links.txt +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/python_semantic_release.egg-info/entry_points.txt +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/python_semantic_release.egg-info/top_level.txt +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/__main__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/changelog/context.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/changelog/release_history.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/changelog/template.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/cli_context.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/commands/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/commands/generate_config.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/commands/main.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/commands/publish.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/config.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/const.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/github_actions_output.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/masking_filter.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/util.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/_base.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/angular.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/emoji.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/scipy.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/tag.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/token.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/commit_parser/util.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/const.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/data/templates/CHANGELOG.md.j2 +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/data/templates/release_notes.md.j2 +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/enums.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/errors.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/gitproject.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/helpers.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/_base.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/bitbucket.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/gitea.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/github.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/gitlab.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/remote_hvcs_base.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/token_auth.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/util.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/algorithm.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/declaration.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/translator.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/version.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/setup.cfg +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/conftest.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_generate_config.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_help.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_main.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_publish.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/conftest.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/const.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/commit_parsers.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/example_project.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/git_repo.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/git_flow/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/github_flow/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/scipy.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/scenario/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/scenario/test_template_render.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/changelog/test_template.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/cli/test_config.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/cli/test_version.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/test_angular.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/test_emoji.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/test_scipy.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/test_tag.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test_gitea.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test_github.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test_gitlab.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/test_helpers.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/version/test_translator.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/unit/semantic_release/version/test_version.py +0 -0
- {python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.8.
|
|
3
|
+
Version: 9.8.7
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -41,17 +41,16 @@ Requires-Dist: sphinx-autobuild==2024.2.4; extra == "docs"
|
|
|
41
41
|
Requires-Dist: furo~=2024.1; extra == "docs"
|
|
42
42
|
Provides-Extra: test
|
|
43
43
|
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
44
|
-
Requires-Dist: pytest~=
|
|
44
|
+
Requires-Dist: pytest~=8.3; extra == "test"
|
|
45
45
|
Requires-Dist: pytest-env~=1.0; extra == "test"
|
|
46
46
|
Requires-Dist: pytest-xdist~=3.0; extra == "test"
|
|
47
47
|
Requires-Dist: pytest-mock~=3.0; extra == "test"
|
|
48
|
-
Requires-Dist: pytest-lazy-
|
|
48
|
+
Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
|
|
49
49
|
Requires-Dist: pytest-cov~=5.0; extra == "test"
|
|
50
50
|
Requires-Dist: pytest-pretty~=1.2; extra == "test"
|
|
51
51
|
Requires-Dist: pytest-clarity~=1.0; extra == "test"
|
|
52
52
|
Requires-Dist: responses~=0.25.0; extra == "test"
|
|
53
53
|
Requires-Dist: requests-mock~=1.10; extra == "test"
|
|
54
|
-
Requires-Dist: types-pytest-lazy-fixture~=0.6.3; extra == "test"
|
|
55
54
|
Provides-Extra: dev
|
|
56
55
|
Requires-Dist: pre-commit~=3.5; extra == "dev"
|
|
57
56
|
Requires-Dist: tox~=4.11; extra == "dev"
|
|
@@ -30,40 +30,42 @@ Example Workflow
|
|
|
30
30
|
|
|
31
31
|
.. code:: yaml
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
33
|
+
name: Semantic Release
|
|
34
|
+
|
|
35
|
+
on:
|
|
36
|
+
push:
|
|
37
|
+
branches:
|
|
38
|
+
- master
|
|
39
|
+
|
|
40
|
+
jobs:
|
|
41
|
+
release:
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
concurrency: release
|
|
44
|
+
permissions:
|
|
45
|
+
id-token: write
|
|
46
|
+
contents: write
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v3
|
|
50
|
+
with:
|
|
51
|
+
fetch-depth: 0
|
|
52
|
+
|
|
53
|
+
- name: Python Semantic Release
|
|
54
|
+
# Adjust tag with desired version if applicable. Version shorthand
|
|
55
|
+
# is NOT available, e.g. vX or vX.X will not work.
|
|
56
|
+
uses: python-semantic-release/python-semantic-release@v9.8.7
|
|
57
|
+
with:
|
|
58
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
59
|
+
|
|
60
|
+
``concurrency`` is a `beta feature of GitHub Actions`_ which disallows two or more
|
|
61
|
+
release jobs to run in parallel. This prevents race conditions if there are multiple
|
|
62
|
+
pushes in a short period of time.
|
|
62
63
|
|
|
63
64
|
If you would like to use Python Semantic Release to create GitHub Releases against
|
|
64
65
|
your repository, you will need to allow the additional ``contents: write`` permission.
|
|
65
66
|
More information can be found in the `permissions for GitHub Apps documentation`_
|
|
66
67
|
|
|
68
|
+
.. _beta feature of GitHub Actions: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idconcurrency
|
|
67
69
|
.. _permissions for GitHub Apps documentation: https://docs.github.com/en/rest/overview/permissions-required-for-github-apps?apiVersion=2022-11-28#contents
|
|
68
70
|
|
|
69
71
|
.. warning::
|
|
@@ -92,13 +94,13 @@ multiple projects.
|
|
|
92
94
|
.. code:: yaml
|
|
93
95
|
|
|
94
96
|
- name: Release Project 1
|
|
95
|
-
uses: python-semantic-release/python-semantic-release@
|
|
97
|
+
uses: python-semantic-release/python-semantic-release@v9.8.7
|
|
96
98
|
with:
|
|
97
99
|
directory: ./project1
|
|
98
100
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
99
101
|
|
|
100
102
|
- name: Release Project 2
|
|
101
|
-
uses: python-semantic-release/python-semantic-release@
|
|
103
|
+
uses: python-semantic-release/python-semantic-release@v9.8.7
|
|
102
104
|
with:
|
|
103
105
|
directory: ./project2
|
|
104
106
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/changelog_templates.rst
RENAMED
|
@@ -3,22 +3,16 @@
|
|
|
3
3
|
Changelog Templates
|
|
4
4
|
===================
|
|
5
5
|
|
|
6
|
-
.. warning::
|
|
7
|
-
If you have an existing changelog in the location you have configured with
|
|
8
|
-
the :ref:`changelog_file <config-changelog-changelog_file>` setting,
|
|
9
|
-
or if you have a template inside your :ref:`template directory <config-changelog-template_dir>`
|
|
10
|
-
which will render to the location of an existing file, Python Semantic Release will
|
|
11
|
-
overwrite the contents of this file.
|
|
12
|
-
|
|
13
|
-
Please make sure to refer to :ref:`changelog-templates-migrating-existing-changelog`.
|
|
14
6
|
|
|
15
|
-
Python Semantic Release
|
|
16
|
-
|
|
17
|
-
:ref:`changelog_file <config-changelog-changelog_file>` setting.
|
|
7
|
+
By default, Python Semantic Release (PSR) will generate a changelog for your project. In the default
|
|
8
|
+
configuration, PSR will use a built-in template files to render the changelog at the file location
|
|
9
|
+
defined by the :ref:`changelog_file <config-changelog-changelog_file>` setting.
|
|
18
10
|
|
|
19
|
-
However,
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
However, you can customize the appearance and file structure of the changelog generation process
|
|
12
|
+
by creating your own template files. This option is available by setting the
|
|
13
|
+
:ref:`template_dir <config-changelog-template_dir>` configuration and populating the directory
|
|
14
|
+
with your custom template files. It will render the an entire directory tree of templates
|
|
15
|
+
as desired if they exist within the template directory.
|
|
22
16
|
|
|
23
17
|
Python Semantic Release uses `Jinja`_ as its template engine, so you should refer to the
|
|
24
18
|
`Template Designer Documentation`_ for guidance on how to customize the appearance of
|
|
@@ -32,6 +26,15 @@ providing the :ref:`--no-changelog <cmd-version-option-changelog>` command-line
|
|
|
32
26
|
|
|
33
27
|
The changelog template is re-rendered on each release.
|
|
34
28
|
|
|
29
|
+
.. warning::
|
|
30
|
+
If you have an existing changelog in the location you have configured with
|
|
31
|
+
the :ref:`changelog_file <config-changelog-changelog_file>` setting,
|
|
32
|
+
or if you have a template inside your :ref:`template directory <config-changelog-template_dir>`
|
|
33
|
+
which will render to the location of an existing file, Python Semantic Release will
|
|
34
|
+
overwrite the contents of this file.
|
|
35
|
+
|
|
36
|
+
Please make sure to refer to :ref:`changelog-templates-migrating-existing-changelog`.
|
|
37
|
+
|
|
35
38
|
.. _Jinja: https://jinja.palletsprojects.com/en/3.1.x/
|
|
36
39
|
.. _Template Designer Documentation: https://jinja.palletsprojects.com/en/3.1.x/templates/
|
|
37
40
|
|
|
@@ -208,6 +208,7 @@ VIRTUAL_ENV Pass-through ``VIRTUAL_ENV`` if exists in process env,
|
|
|
208
208
|
======================== ======================================================================
|
|
209
209
|
|
|
210
210
|
In addition, on windows systems these environment variables are passed:
|
|
211
|
+
|
|
211
212
|
======================== ======================================================================
|
|
212
213
|
Variable Name Description
|
|
213
214
|
======================== ======================================================================
|
|
@@ -292,7 +293,12 @@ This section outlines the configuration options available that modify changelog
|
|
|
292
293
|
|
|
293
294
|
**Type:** ``str``
|
|
294
295
|
|
|
295
|
-
Specify the name of the changelog file
|
|
296
|
+
Specify the name of the changelog file that will be created. This file will be created
|
|
297
|
+
or overwritten (if it previously exists) with the rendered default template included
|
|
298
|
+
with Python Semantic Release.
|
|
299
|
+
|
|
300
|
+
If you are using the ``template_dir`` setting for providing customized templates,
|
|
301
|
+
this setting is not used. See :ref:`config-changelog-template_dir` for more information.
|
|
296
302
|
|
|
297
303
|
**Default:** ``"CHANGELOG.md"``
|
|
298
304
|
|
|
@@ -309,15 +315,14 @@ Specify the name of the changelog file (after template rendering has taken place
|
|
|
309
315
|
passed directly to the `jinja2.Environment`_ constructor, and further
|
|
310
316
|
documentation one these parameters can be found there.
|
|
311
317
|
|
|
312
|
-
.. _`jinja2.Environment`: https://jinja.palletsprojects.com/en/3.1.x/api/#jinja2.Environment
|
|
313
|
-
|
|
314
|
-
.. note::
|
|
315
318
|
**pyproject.toml:** ``[tool.semantic_release.changelog.environment]``
|
|
316
319
|
|
|
317
320
|
**releaserc.toml:** ``[semantic_release.changelog.environment]``
|
|
318
321
|
|
|
319
322
|
**releaserc.json:** ``{ "semantic_release": { "changelog": { "environment": {} } } }``
|
|
320
323
|
|
|
324
|
+
.. _`jinja2.Environment`: https://jinja.palletsprojects.com/en/3.1.x/api/#jinja2.Environment
|
|
325
|
+
|
|
321
326
|
----
|
|
322
327
|
|
|
323
328
|
.. _config-changelog-environment-autoescape:
|
|
@@ -540,8 +545,14 @@ The patterns in this list are treated as regular expressions.
|
|
|
540
545
|
|
|
541
546
|
**Type:** ``str``
|
|
542
547
|
|
|
543
|
-
|
|
544
|
-
|
|
548
|
+
When files exist within the specified directory, they will be used as templates for
|
|
549
|
+
the changelog rendering process. Regardless if the directory includes a changelog file,
|
|
550
|
+
the provided directory will be rendered and files placed relative to the root of the
|
|
551
|
+
project directory.
|
|
552
|
+
|
|
553
|
+
No default changelog template or release notes template will be used when this directory
|
|
554
|
+
exists and the directory is not empty. If the directory is empty, the default changelog
|
|
555
|
+
template will be used.
|
|
545
556
|
|
|
546
557
|
This option is discussed in more detail at :ref:`changelog-templates`
|
|
547
558
|
|
|
@@ -129,7 +129,9 @@ provide the following inputs:
|
|
|
129
129
|
|
|
130
130
|
# ... the rest of the workflow
|
|
131
131
|
- name: Python Semantic Release
|
|
132
|
-
|
|
132
|
+
# Adjust tag with desired version if applicable. Version shorthand
|
|
133
|
+
# is NOT available, e.g. vX or vX.X will not work.
|
|
134
|
+
uses: python-semantic-release/python-semantic-release@v9.8.7
|
|
133
135
|
with:
|
|
134
136
|
# ... other options
|
|
135
137
|
force: "patch"
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "python-semantic-release"
|
|
9
|
-
version = "9.8.
|
|
9
|
+
version = "9.8.7"
|
|
10
10
|
description = "Automatic Semantic Versioning for Python projects"
|
|
11
11
|
requires-python = ">=3.8"
|
|
12
12
|
license = { text = "MIT" }
|
|
@@ -59,17 +59,16 @@ docs = [
|
|
|
59
59
|
]
|
|
60
60
|
test = [
|
|
61
61
|
"coverage[toml] ~= 7.0",
|
|
62
|
-
"pytest ~=
|
|
62
|
+
"pytest ~= 8.3",
|
|
63
63
|
"pytest-env ~= 1.0",
|
|
64
64
|
"pytest-xdist ~= 3.0",
|
|
65
65
|
"pytest-mock ~= 3.0",
|
|
66
|
-
"pytest-lazy-
|
|
66
|
+
"pytest-lazy-fixtures ~= 1.1.1",
|
|
67
67
|
"pytest-cov ~= 5.0",
|
|
68
68
|
"pytest-pretty ~= 1.2",
|
|
69
69
|
"pytest-clarity ~= 1.0",
|
|
70
70
|
"responses ~= 0.25.0",
|
|
71
71
|
"requests-mock ~= 1.10",
|
|
72
|
-
"types-pytest-lazy-fixture ~= 0.6.3",
|
|
73
72
|
]
|
|
74
73
|
dev = [
|
|
75
74
|
"pre-commit ~= 3.5",
|
|
@@ -376,6 +375,7 @@ ignore_names = ["change_to_ex_proj_dir", "init_example_project"]
|
|
|
376
375
|
logging_use_named_masks = true
|
|
377
376
|
commit_parser = "angular"
|
|
378
377
|
build_command = """
|
|
378
|
+
python -m scripts.bump_version_in_docs
|
|
379
379
|
python -m pip install -e .[build]
|
|
380
380
|
python -m build .
|
|
381
381
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.8.
|
|
3
|
+
Version: 9.8.7
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -41,17 +41,16 @@ Requires-Dist: sphinx-autobuild==2024.2.4; extra == "docs"
|
|
|
41
41
|
Requires-Dist: furo~=2024.1; extra == "docs"
|
|
42
42
|
Provides-Extra: test
|
|
43
43
|
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
44
|
-
Requires-Dist: pytest~=
|
|
44
|
+
Requires-Dist: pytest~=8.3; extra == "test"
|
|
45
45
|
Requires-Dist: pytest-env~=1.0; extra == "test"
|
|
46
46
|
Requires-Dist: pytest-xdist~=3.0; extra == "test"
|
|
47
47
|
Requires-Dist: pytest-mock~=3.0; extra == "test"
|
|
48
|
-
Requires-Dist: pytest-lazy-
|
|
48
|
+
Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
|
|
49
49
|
Requires-Dist: pytest-cov~=5.0; extra == "test"
|
|
50
50
|
Requires-Dist: pytest-pretty~=1.2; extra == "test"
|
|
51
51
|
Requires-Dist: pytest-clarity~=1.0; extra == "test"
|
|
52
52
|
Requires-Dist: responses~=0.25.0; extra == "test"
|
|
53
53
|
Requires-Dist: requests-mock~=1.10; extra == "test"
|
|
54
|
-
Requires-Dist: types-pytest-lazy-fixture~=0.6.3; extra == "test"
|
|
55
54
|
Provides-Extra: dev
|
|
56
55
|
Requires-Dist: pre-commit~=3.5; extra == "dev"
|
|
57
56
|
Requires-Dist: tox~=4.11; extra == "dev"
|
|
@@ -31,14 +31,13 @@ types-requests~=2.32.0
|
|
|
31
31
|
|
|
32
32
|
[test]
|
|
33
33
|
coverage[toml]~=7.0
|
|
34
|
-
pytest~=
|
|
34
|
+
pytest~=8.3
|
|
35
35
|
pytest-env~=1.0
|
|
36
36
|
pytest-xdist~=3.0
|
|
37
37
|
pytest-mock~=3.0
|
|
38
|
-
pytest-lazy-
|
|
38
|
+
pytest-lazy-fixtures~=1.1.1
|
|
39
39
|
pytest-cov~=5.0
|
|
40
40
|
pytest-pretty~=1.2
|
|
41
41
|
pytest-clarity~=1.0
|
|
42
42
|
responses~=0.25.0
|
|
43
43
|
requests-mock~=1.10
|
|
44
|
-
types-pytest-lazy-fixture~=0.6.3
|
|
@@ -149,6 +149,7 @@ def generate_release_notes(
|
|
|
149
149
|
hvcs_client: HvcsBase,
|
|
150
150
|
release: Release,
|
|
151
151
|
template_dir: Path,
|
|
152
|
+
history: ReleaseHistory,
|
|
152
153
|
) -> str:
|
|
153
154
|
release_notes_env = ReleaseNotesContext(
|
|
154
155
|
repo_name=hvcs_client.repo_name,
|
|
@@ -163,6 +164,11 @@ def generate_release_notes(
|
|
|
163
164
|
environment(template_dir=template_dir)
|
|
164
165
|
)
|
|
165
166
|
|
|
167
|
+
# TODO: Remove in v10
|
|
168
|
+
release_notes_env.globals["context"] = {
|
|
169
|
+
"history": history,
|
|
170
|
+
}
|
|
171
|
+
|
|
166
172
|
return render_release_notes(
|
|
167
173
|
release_notes_template=get_release_notes_template(template_dir),
|
|
168
174
|
template_env=release_notes_env,
|
|
@@ -34,7 +34,9 @@ def post_release_notes(
|
|
|
34
34
|
"\n",
|
|
35
35
|
[
|
|
36
36
|
f"would have posted the following release notes for tag {release_tag}:",
|
|
37
|
-
|
|
37
|
+
# Escape square brackets to ensure all content is displayed in the console
|
|
38
|
+
# (i.e. prevent interpretation of ansi escape sequences that is valid markdown)
|
|
39
|
+
release_notes.replace("[", "\\["),
|
|
38
40
|
],
|
|
39
41
|
)
|
|
40
42
|
)
|
|
@@ -112,7 +114,8 @@ def changelog(cli_ctx: CliContextObj, release_tag: str | None) -> None:
|
|
|
112
114
|
release_notes = generate_release_notes(
|
|
113
115
|
hvcs_client,
|
|
114
116
|
release,
|
|
115
|
-
|
|
117
|
+
runtime.template_dir,
|
|
118
|
+
release_history,
|
|
116
119
|
)
|
|
117
120
|
|
|
118
121
|
try:
|
|
@@ -711,7 +711,8 @@ def version( # noqa: C901
|
|
|
711
711
|
release_notes = generate_release_notes(
|
|
712
712
|
hvcs_client,
|
|
713
713
|
release_history.released[new_version],
|
|
714
|
-
|
|
714
|
+
runtime.template_dir,
|
|
715
|
+
history=release_history,
|
|
715
716
|
)
|
|
716
717
|
|
|
717
718
|
exception: Exception | None = None
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_changelog.py
RENAMED
|
@@ -8,7 +8,7 @@ from unittest import mock
|
|
|
8
8
|
|
|
9
9
|
import pytest
|
|
10
10
|
import requests_mock
|
|
11
|
-
from
|
|
11
|
+
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
12
12
|
from requests import Session
|
|
13
13
|
|
|
14
14
|
from semantic_release.cli.commands.main import main
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_version.py
RENAMED
|
@@ -13,7 +13,7 @@ from unittest import mock
|
|
|
13
13
|
|
|
14
14
|
import pytest
|
|
15
15
|
import tomlkit
|
|
16
|
-
from
|
|
16
|
+
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
17
17
|
|
|
18
18
|
from semantic_release.cli.commands.main import main
|
|
19
19
|
from semantic_release.hvcs.github import Github
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/scenario/test_next_version.py
RENAMED
|
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
|
|
|
5
5
|
import pytest
|
|
6
6
|
|
|
7
7
|
# Limitation in pytest-lazy-fixture - see https://stackoverflow.com/a/69884019
|
|
8
|
-
from
|
|
8
|
+
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
9
9
|
|
|
10
10
|
from semantic_release.version.algorithm import next_version
|
|
11
11
|
from semantic_release.version.translator import VersionTranslator
|
|
@@ -5,7 +5,7 @@ from typing import NamedTuple
|
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
7
|
from git import Actor
|
|
8
|
-
from
|
|
8
|
+
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
9
9
|
|
|
10
10
|
from semantic_release.changelog.release_history import ReleaseHistory
|
|
11
11
|
from semantic_release.version.translator import VersionTranslator
|
|
@@ -4,7 +4,7 @@ import json
|
|
|
4
4
|
from textwrap import dedent
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
|
-
from
|
|
7
|
+
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
8
8
|
|
|
9
9
|
from semantic_release.cli.util import load_raw_config_file, parse_toml
|
|
10
10
|
from semantic_release.errors import InvalidConfiguration
|
|
@@ -4,7 +4,7 @@ from textwrap import dedent
|
|
|
4
4
|
from unittest import mock
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
|
-
from
|
|
7
|
+
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
8
8
|
|
|
9
9
|
from semantic_release.version.declaration import (
|
|
10
10
|
PatternVersionDeclaration,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/cronjobs.rst
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/index.rst
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/automatic-releases/travis.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/docs/multibranch_releases.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/__init__.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/cli_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/config.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/const.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/cli/util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/gitproject.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/__init__.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/_base.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/bitbucket.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/gitea.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/github.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/gitlab.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/token_auth.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/hvcs/util.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/semantic_release/version/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/__init__.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/conftest.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_help.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_main.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/command_line/test_publish.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/commit_parsers.py
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/example_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6 → python_semantic_release-9.8.7}/tests/fixtures/repos/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|