python-semantic-release 9.8.6__py3-none-any.whl → 9.8.8__py3-none-any.whl
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.dist-info → python_semantic_release-9.8.8.dist-info}/METADATA +34 -35
- {python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/RECORD +12 -12
- {python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/WHEEL +1 -1
- semantic_release/__init__.py +1 -1
- semantic_release/cli/changelog_writer.py +6 -0
- semantic_release/cli/commands/changelog.py +5 -2
- semantic_release/cli/commands/version.py +4 -3
- semantic_release/cli/config.py +12 -2
- {python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/AUTHORS.rst +0 -0
- {python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/LICENSE +0 -0
- {python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/entry_points.txt +0 -0
- {python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/top_level.txt +0 -0
{python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.8.
|
|
3
|
+
Version: 9.8.8
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -20,45 +20,44 @@ Requires-Python: >=3.8
|
|
|
20
20
|
Description-Content-Type: text/x-rst
|
|
21
21
|
License-File: LICENSE
|
|
22
22
|
License-File: AUTHORS.rst
|
|
23
|
-
Requires-Dist: click
|
|
24
|
-
Requires-Dist: click-option-group
|
|
25
|
-
Requires-Dist: gitpython
|
|
26
|
-
Requires-Dist: requests
|
|
27
|
-
Requires-Dist: jinja2
|
|
28
|
-
Requires-Dist: python-gitlab
|
|
29
|
-
Requires-Dist: tomlkit
|
|
30
|
-
Requires-Dist: dotty-dict
|
|
31
|
-
Requires-Dist: importlib-resources
|
|
32
|
-
Requires-Dist: pydantic
|
|
33
|
-
Requires-Dist: rich
|
|
34
|
-
Requires-Dist: shellingham
|
|
23
|
+
Requires-Dist: click~=8.0
|
|
24
|
+
Requires-Dist: click-option-group~=0.5
|
|
25
|
+
Requires-Dist: gitpython~=3.0
|
|
26
|
+
Requires-Dist: requests~=2.25
|
|
27
|
+
Requires-Dist: jinja2~=3.1
|
|
28
|
+
Requires-Dist: python-gitlab~=4.0
|
|
29
|
+
Requires-Dist: tomlkit~=0.11
|
|
30
|
+
Requires-Dist: dotty-dict~=1.3
|
|
31
|
+
Requires-Dist: importlib-resources~=6.0
|
|
32
|
+
Requires-Dist: pydantic~=2.0
|
|
33
|
+
Requires-Dist: rich~=13.0
|
|
34
|
+
Requires-Dist: shellingham~=1.5
|
|
35
35
|
Provides-Extra: build
|
|
36
|
-
Requires-Dist: build
|
|
36
|
+
Requires-Dist: build~=1.2; extra == "build"
|
|
37
37
|
Provides-Extra: dev
|
|
38
|
-
Requires-Dist: pre-commit
|
|
39
|
-
Requires-Dist: tox
|
|
40
|
-
Requires-Dist: ruff
|
|
38
|
+
Requires-Dist: pre-commit~=3.5; extra == "dev"
|
|
39
|
+
Requires-Dist: tox~=4.11; extra == "dev"
|
|
40
|
+
Requires-Dist: ruff==0.5.0; extra == "dev"
|
|
41
41
|
Provides-Extra: docs
|
|
42
|
-
Requires-Dist: Sphinx
|
|
43
|
-
Requires-Dist: sphinxcontrib-apidoc
|
|
44
|
-
Requires-Dist: sphinx-autobuild
|
|
45
|
-
Requires-Dist: furo
|
|
42
|
+
Requires-Dist: Sphinx~=6.0; extra == "docs"
|
|
43
|
+
Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
|
|
44
|
+
Requires-Dist: sphinx-autobuild==2024.2.4; extra == "docs"
|
|
45
|
+
Requires-Dist: furo~=2024.1; extra == "docs"
|
|
46
46
|
Provides-Extra: mypy
|
|
47
|
-
Requires-Dist: mypy
|
|
48
|
-
Requires-Dist: types-requests
|
|
47
|
+
Requires-Dist: mypy==1.10.1; extra == "mypy"
|
|
48
|
+
Requires-Dist: types-requests~=2.32.0; extra == "mypy"
|
|
49
49
|
Provides-Extra: test
|
|
50
|
-
Requires-Dist: coverage[toml]
|
|
51
|
-
Requires-Dist: pytest
|
|
52
|
-
Requires-Dist: pytest-env
|
|
53
|
-
Requires-Dist: pytest-xdist
|
|
54
|
-
Requires-Dist: pytest-mock
|
|
55
|
-
Requires-Dist: pytest-lazy-
|
|
56
|
-
Requires-Dist: pytest-cov
|
|
57
|
-
Requires-Dist: pytest-pretty
|
|
58
|
-
Requires-Dist: pytest-clarity
|
|
59
|
-
Requires-Dist: responses
|
|
60
|
-
Requires-Dist: requests-mock
|
|
61
|
-
Requires-Dist: types-pytest-lazy-fixture ~=0.6.3 ; extra == 'test'
|
|
50
|
+
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
51
|
+
Requires-Dist: pytest~=8.3; extra == "test"
|
|
52
|
+
Requires-Dist: pytest-env~=1.0; extra == "test"
|
|
53
|
+
Requires-Dist: pytest-xdist~=3.0; extra == "test"
|
|
54
|
+
Requires-Dist: pytest-mock~=3.0; extra == "test"
|
|
55
|
+
Requires-Dist: pytest-lazy-fixtures~=1.1.1; extra == "test"
|
|
56
|
+
Requires-Dist: pytest-cov~=5.0; extra == "test"
|
|
57
|
+
Requires-Dist: pytest-pretty~=1.2; extra == "test"
|
|
58
|
+
Requires-Dist: pytest-clarity~=1.0; extra == "test"
|
|
59
|
+
Requires-Dist: responses~=0.25.0; extra == "test"
|
|
60
|
+
Requires-Dist: requests-mock~=1.10; extra == "test"
|
|
62
61
|
|
|
63
62
|
Python Semantic Release
|
|
64
63
|
***********************
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
semantic_release/__init__.py,sha256=
|
|
1
|
+
semantic_release/__init__.py,sha256=OLC_2ndTRTpVvDlv0Ib9VbuVj9atXP68lcn6i0A3NWs,1228
|
|
2
2
|
semantic_release/__main__.py,sha256=blPn7CMpuSe4Z-GBIDv0QA0OEDTMGU-7edsLRkkhPR4,120
|
|
3
3
|
semantic_release/const.py,sha256=Z1o2QNh60wSLeF-_1TemMBjU3ZXbV0XghnUFsbTVfOs,831
|
|
4
4
|
semantic_release/enums.py,sha256=D5B_reQGGKQQT22HO5PUtvn2Bok3fkht6TfJtXkmAUg,1020
|
|
@@ -10,19 +10,19 @@ semantic_release/changelog/context.py,sha256=8cbOv9cB9Ji7xjRn4-YUUHBfg9LLfSwmmXu
|
|
|
10
10
|
semantic_release/changelog/release_history.py,sha256=9gJxqOKPF9HjmOdXW-k-dWbe2YGWxqZEOWSSef-qwoE,7050
|
|
11
11
|
semantic_release/changelog/template.py,sha256=JqZcjdozM9-059Sa8PfiHxYNeyZFa0jxk_beyRLv5sU,4640
|
|
12
12
|
semantic_release/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
semantic_release/cli/changelog_writer.py,sha256=
|
|
13
|
+
semantic_release/cli/changelog_writer.py,sha256=OVuRI7RTMsMGIaxyEN4kb8N4j08OHNvSyRyj6iBR_ME,5162
|
|
14
14
|
semantic_release/cli/cli_context.py,sha256=23eyV6KWIpUckUSWILEd7t9dixp-QCY5-kGZnyucEYY,4114
|
|
15
|
-
semantic_release/cli/config.py,sha256=
|
|
15
|
+
semantic_release/cli/config.py,sha256=WA3d0cidvCYbFLq1UdHQsnlz47hrth-Oc7NHltUPCpE,24223
|
|
16
16
|
semantic_release/cli/const.py,sha256=S8oNNpSaKdZxcAs7PAKEjQHic0czoJBGd7XHo57FOzw,39
|
|
17
17
|
semantic_release/cli/github_actions_output.py,sha256=Wy4jEIpSFgoMyJqq4FD7scIpgovivutFLZ7Fs4y2CUY,2110
|
|
18
18
|
semantic_release/cli/masking_filter.py,sha256=DxqjiJyABlzwwwZ1r8JGQpb6QrF00StJFm0-2-s5Fv0,3071
|
|
19
19
|
semantic_release/cli/util.py,sha256=FyXaBkeL7nXKjy3X9rQLEwvn7p46xPekp2V8Z-5MVrk,3755
|
|
20
20
|
semantic_release/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
semantic_release/cli/commands/changelog.py,sha256=
|
|
21
|
+
semantic_release/cli/commands/changelog.py,sha256=bqnJwv0pgvEOroZEMixEa8IUby-cvgIirXRz31FlnV0,3716
|
|
22
22
|
semantic_release/cli/commands/generate_config.py,sha256=2xZOu3NpyhBp0pWr7d8ugKl_kjqQgpSsSMHq5wHTfrE,1699
|
|
23
23
|
semantic_release/cli/commands/main.py,sha256=kqO8bZw9Nv6T5QkIl53zzmH2rd4LuLoA8agweH0VYPY,4022
|
|
24
24
|
semantic_release/cli/commands/publish.py,sha256=SZQlIewvqyIC14dkIIVVFetE0tPsKbO1cUyxnZsicrw,2845
|
|
25
|
-
semantic_release/cli/commands/version.py,sha256=
|
|
25
|
+
semantic_release/cli/commands/version.py,sha256=IAA4OlvTVPdN_82AZgLX6VIcygwyXPUkaMKI_C_Up90,24336
|
|
26
26
|
semantic_release/commit_parser/__init__.py,sha256=cv5HFBdw7OJd4Laj4Ex8ZZ5Tml8GwXgQcXW6Pasr2Ao,615
|
|
27
27
|
semantic_release/commit_parser/_base.py,sha256=t-Z9ALgAe7aZpYXz1mk3Fe-uAvipgKdNrq4Okg_WW9c,3026
|
|
28
28
|
semantic_release/commit_parser/angular.py,sha256=ERWeTBTFNIBOaTIopY4Vff0KbeFwrSQWbADe3smVW-8,4579
|
|
@@ -47,10 +47,10 @@ semantic_release/version/algorithm.py,sha256=ofx_bIWq6ptJVr-ekI11IzxzDEctDKFiVwa
|
|
|
47
47
|
semantic_release/version/declaration.py,sha256=f6Ld7hIhrqvDrRBapJHr-KDimuyo-4IG8009Zu9BIgU,7357
|
|
48
48
|
semantic_release/version/translator.py,sha256=P1noIsVBn8u6zNOFjG0xKYOWapxqf_PHSMvMeLJ9kXg,3050
|
|
49
49
|
semantic_release/version/version.py,sha256=6PCtSbLP88U1daoxnCwHc--YguZo4waGNLqJ5JfeczE,14175
|
|
50
|
-
python_semantic_release-9.8.
|
|
51
|
-
python_semantic_release-9.8.
|
|
52
|
-
python_semantic_release-9.8.
|
|
53
|
-
python_semantic_release-9.8.
|
|
54
|
-
python_semantic_release-9.8.
|
|
55
|
-
python_semantic_release-9.8.
|
|
56
|
-
python_semantic_release-9.8.
|
|
50
|
+
python_semantic_release-9.8.8.dist-info/AUTHORS.rst,sha256=XOReVvpymEFUPsS2QPH97jlfJBVrxwS2eu8-jVAe4gk,230
|
|
51
|
+
python_semantic_release-9.8.8.dist-info/LICENSE,sha256=NE85nszX252sdQdu0xgS9qwfYES0k8qS6gW3uO4jRGE,1083
|
|
52
|
+
python_semantic_release-9.8.8.dist-info/METADATA,sha256=dsdO3Ul8f2a6M1m-nBB974OIhwaGmS4bd1PBaiAWESQ,5284
|
|
53
|
+
python_semantic_release-9.8.8.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
|
54
|
+
python_semantic_release-9.8.8.dist-info/entry_points.txt,sha256=6bS6euSagjerp7onDtfI9_ZpczWreZF3gjHfGAegkbo,123
|
|
55
|
+
python_semantic_release-9.8.8.dist-info/top_level.txt,sha256=qYA24nyg3eP-ti5UW7Vuj2aXVmM0wqVHx4mREdRZNAA,17
|
|
56
|
+
python_semantic_release-9.8.8.dist-info/RECORD,,
|
semantic_release/__init__.py
CHANGED
|
@@ -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:
|
|
@@ -189,13 +189,13 @@ def get_windows_env() -> Mapping[str, str | None]:
|
|
|
189
189
|
"ALLUSERSPROFILE",
|
|
190
190
|
"APPDATA",
|
|
191
191
|
"COMMONPROGRAMFILES",
|
|
192
|
-
"COMMONPROGRAMFILES(
|
|
192
|
+
"COMMONPROGRAMFILES(X86)",
|
|
193
193
|
"DEFAULTUSERPROFILE",
|
|
194
194
|
"HOMEPATH",
|
|
195
195
|
"PATHEXT",
|
|
196
196
|
"PROFILESFOLDER",
|
|
197
197
|
"PROGRAMFILES",
|
|
198
|
-
"PROGRAMFILES(
|
|
198
|
+
"PROGRAMFILES(X86)",
|
|
199
199
|
"SYSTEM",
|
|
200
200
|
"SYSTEM16",
|
|
201
201
|
"SYSTEM32",
|
|
@@ -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
|
semantic_release/cli/config.py
CHANGED
|
@@ -568,7 +568,12 @@ class RuntimeContext:
|
|
|
568
568
|
)
|
|
569
569
|
|
|
570
570
|
# changelog_file
|
|
571
|
-
|
|
571
|
+
# Must use absolute after resolve because windows does not resolve if the path does not exist
|
|
572
|
+
# which means it returns a relative path. So we force absolute to ensure path is complete
|
|
573
|
+
# for the next check of path matching
|
|
574
|
+
changelog_file = (
|
|
575
|
+
Path(raw.changelog.changelog_file).expanduser().resolve().absolute()
|
|
576
|
+
)
|
|
572
577
|
|
|
573
578
|
# Prevent path traversal attacks
|
|
574
579
|
if raw.repo_dir not in changelog_file.parents:
|
|
@@ -576,7 +581,12 @@ class RuntimeContext:
|
|
|
576
581
|
"Changelog file destination must be inside of the repository directory."
|
|
577
582
|
)
|
|
578
583
|
|
|
579
|
-
|
|
584
|
+
# Must use absolute after resolve because windows does not resolve if the path does not exist
|
|
585
|
+
# which means it returns a relative path. So we force absolute to ensure path is complete
|
|
586
|
+
# for the next check of path matching
|
|
587
|
+
template_dir = (
|
|
588
|
+
Path(raw.changelog.template_dir).expanduser().resolve().absolute()
|
|
589
|
+
)
|
|
580
590
|
|
|
581
591
|
# Prevent path traversal attacks
|
|
582
592
|
if raw.repo_dir not in template_dir.parents:
|
{python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/AUTHORS.rst
RENAMED
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{python_semantic_release-9.8.6.dist-info → python_semantic_release-9.8.8.dist-info}/top_level.txt
RENAMED
|
File without changes
|