usechange 0.1.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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Edward Boswell
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,190 @@
1
+ Metadata-Version: 2.4
2
+ Name: usechange
3
+ Version: 0.1.7
4
+ Summary: Generate Beautiful Changelogs using Conventional Commits
5
+ Author: Edward Boswell
6
+ Author-email: Edward Boswell <thememium@gmail.com>
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Intended Audience :: Developers
12
+ Requires-Dist: tomli>=2.4.0
13
+ Requires-Dist: usecli>=0.1.32
14
+ Requires-Python: >=3.10
15
+ Project-URL: Homepage, https://github.com/thememium/usechange
16
+ Project-URL: Documentation, https://github.com/thememium/usechange
17
+ Project-URL: Repository, https://github.com/thememium/usechange.git
18
+ Project-URL: Issues, https://github.com/thememium/usechange/issues
19
+ Project-URL: Changelog, https://github.com/thememium/usechange/blob/master/CHANGELOG.md
20
+ Description-Content-Type: text/markdown
21
+
22
+ <a name="readme-top"></a>
23
+
24
+ <div align="center">
25
+ <a href="https://github.com/thememium/usechange">
26
+ <img src="https://raw.githubusercontent.com/thememium/usechange/refs/heads/master/docs/images/usechange-logo-dark-bg.png" alt="useChange" width="520" height="162">
27
+ </a>
28
+
29
+ <p align="center">
30
+ <a href="#table-of-contents"><strong>Explore the Documentation »</strong></a>
31
+ <br />
32
+ <a href="https://github.com/thememium/usechange/issues">Report Bug</a>
33
+ ·
34
+ <a href="https://github.com/thememium/usechange/issues">Request Feature</a>
35
+ </p>
36
+ </div>
37
+
38
+ <!-- TABLE OF CONTENTS -->
39
+
40
+ <a name="table-of-contents"></a>
41
+
42
+ <details>
43
+ <summary>Table of Contents</summary>
44
+ <ol>
45
+ <li><a href="#about">About</a></li>
46
+ <li><a href="#quick-start">Quick Start</a></li>
47
+ <li><a href="#usage">Usage</a></li>
48
+ <li><a href="#development">Development</a></li>
49
+ <li><a href="#contributing">Contributing</a></li>
50
+ <li><a href="#license">License</a></li>
51
+ </ol>
52
+ </details>
53
+
54
+ <!-- ABOUT -->
55
+
56
+ ## About
57
+
58
+ usechange is a Python CLI for generating changelogs and release notes from
59
+ Conventional Commits. It reads git history between refs, groups commits by type,
60
+ renders Markdown release notes, and can update version numbers based on semantic
61
+ versioning rules.
62
+
63
+ It gives you:
64
+
65
+ - **Changelog generation** - Render release notes and optionally write to
66
+ CHANGELOG.md.
67
+ - **Semver bumping** - Determine version bumps from commit types and breaking
68
+ changes.
69
+ - **Release workflows** - Tag and publish using uv and gh.
70
+ - **GitHub sync** - Sync release notes to GitHub releases.
71
+ - **Repo metadata** - Create commit and compare links automatically.
72
+
73
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
74
+
75
+ <!-- QUICK START -->
76
+
77
+ ## Quick Start
78
+
79
+ ### Install usechange with uv (recommended)
80
+
81
+ ```sh
82
+ uv add usechange
83
+ ```
84
+
85
+ ### Install with pip (alternative)
86
+
87
+ ```sh
88
+ pip install usechange
89
+ ```
90
+
91
+ ### Generate a changelog
92
+
93
+ ```sh
94
+ usechange changelog --write
95
+ ```
96
+
97
+ ### Sync the latest release to GitHub
98
+
99
+ ```sh
100
+ usechange github release
101
+ ```
102
+
103
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
104
+
105
+ <!-- USAGE -->
106
+
107
+ ## Usage
108
+
109
+ ### Generate changelog
110
+
111
+ ```sh
112
+ usechange changelog --from v0.1.0 --to HEAD --output CHANGELOG.md
113
+ ```
114
+
115
+ ### Version bumping
116
+
117
+ ```sh
118
+ usechange changelog --bump --write
119
+ usechange changelog --major --write
120
+ ```
121
+
122
+ ### Release workflow
123
+
124
+ ```sh
125
+ usechange release --yes
126
+ ```
127
+
128
+ ### GitHub release sync
129
+
130
+ ```sh
131
+ usechange github release 0.2.0
132
+ usechange github release all
133
+ ```
134
+
135
+ ### Configuration
136
+
137
+ usechange reads configuration from one of the following:
138
+
139
+ - changelog.config.json
140
+ - .changelogrc
141
+ - changelog.config.toml
142
+ - pyproject.toml under [tool.changelog]
143
+
144
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
145
+
146
+ <!-- DEVELOPMENT -->
147
+
148
+ ## Development
149
+
150
+ Common tasks:
151
+
152
+ ```sh
153
+ uv run poe test
154
+ uv run poe lint
155
+ uv run poe format
156
+ uv run poe typecheck
157
+ uv run poe clean-full
158
+ ```
159
+
160
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
161
+
162
+ <!-- CONTRIBUTING -->
163
+
164
+ ## Contributing
165
+
166
+ Quick workflow:
167
+
168
+ 1. Fork and branch: `git checkout -b feature/name`
169
+ 2. Make changes
170
+ 3. Run checks: `uv run poe clean-full`
171
+ 4. Commit and push
172
+ 5. Open a Pull Request
173
+
174
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
175
+
176
+ <!-- LICENSE -->
177
+
178
+ ## License
179
+
180
+ License not yet specified in this repository.
181
+
182
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
183
+
184
+ ---
185
+
186
+ <div align="center">
187
+ <p>
188
+ <sub>Built by <a href="https://github.com/thememium">thememium</a></sub>
189
+ </p>
190
+ </div>
@@ -0,0 +1,169 @@
1
+ <a name="readme-top"></a>
2
+
3
+ <div align="center">
4
+ <a href="https://github.com/thememium/usechange">
5
+ <img src="https://raw.githubusercontent.com/thememium/usechange/refs/heads/master/docs/images/usechange-logo-dark-bg.png" alt="useChange" width="520" height="162">
6
+ </a>
7
+
8
+ <p align="center">
9
+ <a href="#table-of-contents"><strong>Explore the Documentation »</strong></a>
10
+ <br />
11
+ <a href="https://github.com/thememium/usechange/issues">Report Bug</a>
12
+ ·
13
+ <a href="https://github.com/thememium/usechange/issues">Request Feature</a>
14
+ </p>
15
+ </div>
16
+
17
+ <!-- TABLE OF CONTENTS -->
18
+
19
+ <a name="table-of-contents"></a>
20
+
21
+ <details>
22
+ <summary>Table of Contents</summary>
23
+ <ol>
24
+ <li><a href="#about">About</a></li>
25
+ <li><a href="#quick-start">Quick Start</a></li>
26
+ <li><a href="#usage">Usage</a></li>
27
+ <li><a href="#development">Development</a></li>
28
+ <li><a href="#contributing">Contributing</a></li>
29
+ <li><a href="#license">License</a></li>
30
+ </ol>
31
+ </details>
32
+
33
+ <!-- ABOUT -->
34
+
35
+ ## About
36
+
37
+ usechange is a Python CLI for generating changelogs and release notes from
38
+ Conventional Commits. It reads git history between refs, groups commits by type,
39
+ renders Markdown release notes, and can update version numbers based on semantic
40
+ versioning rules.
41
+
42
+ It gives you:
43
+
44
+ - **Changelog generation** - Render release notes and optionally write to
45
+ CHANGELOG.md.
46
+ - **Semver bumping** - Determine version bumps from commit types and breaking
47
+ changes.
48
+ - **Release workflows** - Tag and publish using uv and gh.
49
+ - **GitHub sync** - Sync release notes to GitHub releases.
50
+ - **Repo metadata** - Create commit and compare links automatically.
51
+
52
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
53
+
54
+ <!-- QUICK START -->
55
+
56
+ ## Quick Start
57
+
58
+ ### Install usechange with uv (recommended)
59
+
60
+ ```sh
61
+ uv add usechange
62
+ ```
63
+
64
+ ### Install with pip (alternative)
65
+
66
+ ```sh
67
+ pip install usechange
68
+ ```
69
+
70
+ ### Generate a changelog
71
+
72
+ ```sh
73
+ usechange changelog --write
74
+ ```
75
+
76
+ ### Sync the latest release to GitHub
77
+
78
+ ```sh
79
+ usechange github release
80
+ ```
81
+
82
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
83
+
84
+ <!-- USAGE -->
85
+
86
+ ## Usage
87
+
88
+ ### Generate changelog
89
+
90
+ ```sh
91
+ usechange changelog --from v0.1.0 --to HEAD --output CHANGELOG.md
92
+ ```
93
+
94
+ ### Version bumping
95
+
96
+ ```sh
97
+ usechange changelog --bump --write
98
+ usechange changelog --major --write
99
+ ```
100
+
101
+ ### Release workflow
102
+
103
+ ```sh
104
+ usechange release --yes
105
+ ```
106
+
107
+ ### GitHub release sync
108
+
109
+ ```sh
110
+ usechange github release 0.2.0
111
+ usechange github release all
112
+ ```
113
+
114
+ ### Configuration
115
+
116
+ usechange reads configuration from one of the following:
117
+
118
+ - changelog.config.json
119
+ - .changelogrc
120
+ - changelog.config.toml
121
+ - pyproject.toml under [tool.changelog]
122
+
123
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
124
+
125
+ <!-- DEVELOPMENT -->
126
+
127
+ ## Development
128
+
129
+ Common tasks:
130
+
131
+ ```sh
132
+ uv run poe test
133
+ uv run poe lint
134
+ uv run poe format
135
+ uv run poe typecheck
136
+ uv run poe clean-full
137
+ ```
138
+
139
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
140
+
141
+ <!-- CONTRIBUTING -->
142
+
143
+ ## Contributing
144
+
145
+ Quick workflow:
146
+
147
+ 1. Fork and branch: `git checkout -b feature/name`
148
+ 2. Make changes
149
+ 3. Run checks: `uv run poe clean-full`
150
+ 4. Commit and push
151
+ 5. Open a Pull Request
152
+
153
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
154
+
155
+ <!-- LICENSE -->
156
+
157
+ ## License
158
+
159
+ License not yet specified in this repository.
160
+
161
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
162
+
163
+ ---
164
+
165
+ <div align="center">
166
+ <p>
167
+ <sub>Built by <a href="https://github.com/thememium">thememium</a></sub>
168
+ </p>
169
+ </div>
@@ -0,0 +1,81 @@
1
+ [project]
2
+ name = "usechange"
3
+ version = "0.1.7"
4
+ description = "Generate Beautiful Changelogs using Conventional Commits"
5
+ readme = "README.md"
6
+ authors = [{ name = "Edward Boswell", email = "thememium@gmail.com" }]
7
+ requires-python = ">=3.10"
8
+ classifiers = [
9
+ "Programming Language :: Python :: 3",
10
+ "Operating System :: OS Independent",
11
+ "Intended Audience :: Developers",
12
+ ]
13
+ dependencies = ["tomli>=2.4.0", "usecli>=0.1.32"]
14
+ license = "MIT"
15
+ license-files = ["LICEN[CS]E*"]
16
+
17
+ [project.urls]
18
+ Homepage = "https://github.com/thememium/usechange"
19
+ Documentation = "https://github.com/thememium/usechange"
20
+ Repository = "https://github.com/thememium/usechange.git"
21
+ Issues = "https://github.com/thememium/usechange/issues"
22
+ Changelog = "https://github.com/thememium/usechange/blob/master/CHANGELOG.md"
23
+
24
+
25
+ [project.scripts]
26
+ usechange = "usecli:main"
27
+ change = "usecli:main"
28
+
29
+ [build-system]
30
+ requires = ["uv_build>=0.10.2,<0.11.0"]
31
+ build-backend = "uv_build"
32
+
33
+ [dependency-groups]
34
+ dev = [
35
+ "deptry>=0.24.0",
36
+ "isort>=8.0.0",
37
+ "poethepoet>=0.42.0",
38
+ "pytest>=9.0.2",
39
+ "ruff>=0.15.2",
40
+ "ty>=0.0.18",
41
+ ]
42
+
43
+ [tool.deptry]
44
+ known_first_party = ["usechange"]
45
+
46
+ [tool.poe.tasks]
47
+ dev = "uv run usechange"
48
+ clean-full = "sh -c 'uv run isort . && uv run ruff check . && uv run ruff format . && uv run deptry . && uv run ty check'"
49
+ clean = "sh -c 'uv run isort . && uv run ruff format .'"
50
+ test = "uv run pytest tests/ -v"
51
+ sort = "uv run isort ."
52
+ lint = "uv run ruff check ."
53
+ format = "uv run ruff format ."
54
+ deptry = "uv deptry ."
55
+ typecheck = "uv run ty check"
56
+ build = "uv build --no-sources"
57
+ release = "uv run usechange release"
58
+
59
+ [tool.ty]
60
+
61
+ [tool.ty.src]
62
+ include = ["src", "tests"]
63
+ exclude = ["**/__pycache__", "**/.venv"]
64
+
65
+ [tool.ty.rules]
66
+ # Ty uses rule = "level" format (error, warn, ignore)
67
+ # See all rules at: https://docs.astral.sh/ty/reference/rules/
68
+
69
+ [tool.usecli]
70
+ title = "useChange"
71
+ title_file = "src/usechange/cli/themes/title.txt"
72
+ title_font = "ansi_shadow"
73
+ description = "Automated python change and release"
74
+ commands_dir = "src/usechange/cli/commands"
75
+ templates_dir = "src/usechange/cli/templates"
76
+ themes_dir = "src/usechange/cli/themes"
77
+ theme = "default"
78
+ hide_init = true
79
+ hide_inspire = true
80
+ hide_make_command = true
81
+ hide_make_theme = true
File without changes
@@ -0,0 +1,16 @@
1
+ from .cli.default import ChangelogOptions, ChangelogResult, run_changelog
2
+ from .cli.gh_release import GhReleaseOptions, GhReleaseResult, run_github_release
3
+ from .config import ChangelogConfig, PublishConfig, RepoConfig, TemplatesConfig
4
+
5
+ __all__ = [
6
+ "ChangelogConfig",
7
+ "ChangelogOptions",
8
+ "ChangelogResult",
9
+ "GhReleaseOptions",
10
+ "GhReleaseResult",
11
+ "PublishConfig",
12
+ "RepoConfig",
13
+ "TemplatesConfig",
14
+ "run_changelog",
15
+ "run_github_release",
16
+ ]
@@ -0,0 +1,11 @@
1
+ from .default import ChangelogOptions, ChangelogResult, run_changelog
2
+ from .gh_release import GhReleaseOptions, GhReleaseResult, run_github_release
3
+
4
+ __all__ = [
5
+ "ChangelogOptions",
6
+ "ChangelogResult",
7
+ "GhReleaseOptions",
8
+ "GhReleaseResult",
9
+ "run_changelog",
10
+ "run_github_release",
11
+ ]