glinkfix 2.2.2__tar.gz → 2.2.4__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 (43) hide show
  1. glinkfix-2.2.4/CHANGELOG.md +118 -0
  2. {glinkfix-2.2.2 → glinkfix-2.2.4}/PKG-INFO +48 -2
  3. {glinkfix-2.2.2 → glinkfix-2.2.4}/README.md +47 -1
  4. glinkfix-2.2.4/changelogs/README.md +6 -0
  5. {glinkfix-2.2.2 → glinkfix-2.2.4}/changelogs/v1.0.x.md +5 -3
  6. glinkfix-2.2.4/changelogs/v1.2.x.md +13 -0
  7. {glinkfix-2.2.2 → glinkfix-2.2.4}/changelogs/v2.0.x.md +38 -36
  8. {glinkfix-2.2.2 → glinkfix-2.2.4}/changelogs/v2.1.x.md +15 -11
  9. {glinkfix-2.2.2 → glinkfix-2.2.4}/justfile +17 -61
  10. glinkfix-2.2.4/pyproject.toml +94 -0
  11. glinkfix-2.2.2/pyproject.toml → glinkfix-2.2.4/pyproject.toml.orig +8 -3
  12. glinkfix-2.2.4/scripts/__init__.py +1 -0
  13. glinkfix-2.2.4/scripts/bump_version.py +199 -0
  14. glinkfix-2.2.4/scripts/changelog_tools.py +397 -0
  15. glinkfix-2.2.4/scripts/check_commit_title.py +22 -0
  16. {glinkfix-2.2.2 → glinkfix-2.2.4}/scripts/dependency_upgrade_commit.py +1 -1
  17. glinkfix-2.2.4/scripts/extract_release_notes.py +30 -0
  18. glinkfix-2.2.4/scripts/tag_release.py +63 -0
  19. glinkfix-2.2.4/scripts/update_latest_tag.py +51 -0
  20. glinkfix-2.2.4/scripts/validate_release.py +54 -0
  21. {glinkfix-2.2.2 → glinkfix-2.2.4}/src/glinkfix/app.py +7 -1
  22. glinkfix-2.2.4/tests/test_changelog_tools.py +105 -0
  23. {glinkfix-2.2.2 → glinkfix-2.2.4}/tests/test_dependency_upgrade_commit.py +1 -1
  24. {glinkfix-2.2.2 → glinkfix-2.2.4}/tests/test_fixlink.py +24 -12
  25. glinkfix-2.2.2/CHANGELOG.md +0 -58
  26. glinkfix-2.2.2/changelogs/v1.2.x.md +0 -11
  27. glinkfix-2.2.2/scripts/archive_changelog.py +0 -326
  28. glinkfix-2.2.2/scripts/extract_release_notes.sh +0 -108
  29. glinkfix-2.2.2/scripts/release_tags.sh +0 -85
  30. glinkfix-2.2.2/tests/test_archive_changelog.py +0 -46
  31. glinkfix-2.2.2/tests/test_extract_release_notes.py +0 -34
  32. glinkfix-2.2.2/tests/test_release_tags.py +0 -72
  33. {glinkfix-2.2.2 → glinkfix-2.2.4}/LICENSE +0 -0
  34. {glinkfix-2.2.2 → glinkfix-2.2.4}/assets/glinkfix-logo.png +0 -0
  35. {glinkfix-2.2.2 → glinkfix-2.2.4}/assets/google-drive-copy-link.png +0 -0
  36. {glinkfix-2.2.2 → glinkfix-2.2.4}/assets/google-drive-get-link.png +0 -0
  37. {glinkfix-2.2.2 → glinkfix-2.2.4}/scripts/upgrade_dependencies.sh +0 -0
  38. {glinkfix-2.2.2 → glinkfix-2.2.4}/src/glinkfix/__init__.py +0 -0
  39. {glinkfix-2.2.2 → glinkfix-2.2.4}/src/glinkfix/__main__.py +0 -0
  40. {glinkfix-2.2.2 → glinkfix-2.2.4}/src/glinkfix/links.py +0 -0
  41. {glinkfix-2.2.2 → glinkfix-2.2.4}/src/glinkfix/py.typed +0 -0
  42. {glinkfix-2.2.2 → glinkfix-2.2.4}/tests/__init__.py +0 -0
  43. {glinkfix-2.2.2 → glinkfix-2.2.4}/tests/test_app_entry_points.py +0 -0
@@ -0,0 +1,118 @@
1
+ # Changelog
2
+
3
+ All notable changes to glinkfix are documented here. The format is based
4
+ on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this
5
+ project uses canonical release versions.
6
+
7
+ ## [2.2.4] - 2026-09-12
8
+
9
+ [Compare with 2.2.3](https://github.com/geozeke/glinkfix/compare/v2.2.3...v2.2.4)
10
+
11
+ ### Dependencies
12
+
13
+ - *(deps)* Bump astral-sh/setup-uv from 9.0.0 to 10.0.1 ([b87ce70](https://github.com/geozeke/glinkfix/commit/b87ce7028bf92f245061ecec5a59b4acf83eedc9))
14
+ - *(deps-dev)* Bump ruff in the python-dependencies group (#110) ([5e41783](https://github.com/geozeke/glinkfix/commit/5e41783996c5907b05b701e3963aacd8dab6f0ba))
15
+ - *(deps-dev)* Bump ruff in the python-dependencies group (#111) ([adb54ef](https://github.com/geozeke/glinkfix/commit/adb54efedf56a04ae88c2ae90fe28debd701aa78))
16
+ - *(deps-dev)* Bump ruff in the python-dependencies group (#112) ([2ae6542](https://github.com/geozeke/glinkfix/commit/2ae6542ce9c6a4aaccc939643a12d960c3f8f558))
17
+
18
+ ## [2.2.3] - 2026-08-21
19
+
20
+ [Compare with 2.2.3rc3](https://github.com/geozeke/glinkfix/compare/v2.2.3rc3...v2.2.3)
21
+
22
+ ### Deployment & Operations
23
+
24
+ - Add command for local quality runs ([a7c58d0](https://github.com/geozeke/glinkfix/commit/a7c58d0ae46f3d2f1bf427dae0bca646f6475abc))
25
+
26
+ ### Documentation
27
+
28
+ - Perform documentation audit. ([eb76905](https://github.com/geozeke/glinkfix/commit/eb7690551625b65022aedd67e6b73ff963e03b07))
29
+
30
+ ### Dependencies
31
+
32
+ - *(deps)* Bump actions/checkout from 5 to 7 ([d9cf2c2](https://github.com/geozeke/glinkfix/commit/d9cf2c2be76cb23c8ec96b17a69a78a267165bce))
33
+ - *(deps-dev)* Bump mypy from 1.20.2 to 2.3.0 ([0717739](https://github.com/geozeke/glinkfix/commit/07177397a5608670658f254d81f36586bbaa46f1))
34
+ - *(deps)* Bump astral-sh/setup-uv from 8.1.0 to 9.0.0 ([964645d](https://github.com/geozeke/glinkfix/commit/964645dd4ebc75414ca4d8ac43f7457d5da5cf6d))
35
+ - *(deps)* Bump actions/upload-artifact from 4 to 7 ([49b367e](https://github.com/geozeke/glinkfix/commit/49b367e5bf68fc120709832d505bb91b20c2f7bd))
36
+ - *(deps)* Bump extractions/setup-just from 3 to 4 ([45a51da](https://github.com/geozeke/glinkfix/commit/45a51dae9a82284c345cbd5b7045c63448f6fb1f))
37
+ - *(deps-dev)* Bump ruff in the python-dependencies group (#106) ([b6f2da6](https://github.com/geozeke/glinkfix/commit/b6f2da6fe18f0b375cf13bfe78591aa071bac84e))
38
+ - *(deps-dev)* Bump the python-dependencies group with 2 updates (#107) ([e02ce43](https://github.com/geozeke/glinkfix/commit/e02ce430ad5d06a1fac4b0b63cfa1545784ec577))
39
+
40
+ ## [2.2.3rc3] - 2026-08-02
41
+
42
+ [Compare with 2.2.3rc2](https://github.com/geozeke/glinkfix/compare/v2.2.3rc2...v2.2.3rc3)
43
+
44
+ ### Documentation
45
+
46
+ - Perform a documentation audit ([49f2ff8](https://github.com/geozeke/glinkfix/commit/49f2ff874aeb6d5a20ef594fc480cca6285ab363))
47
+
48
+ ## [2.2.3rc2] - 2026-08-02
49
+
50
+ [Compare with 2.2.3rc1](https://github.com/geozeke/glinkfix/compare/v2.2.3rc1...v2.2.3rc2)
51
+
52
+ ### Deployment & Operations
53
+
54
+ - Tune release tooling ([beb02e8](https://github.com/geozeke/glinkfix/commit/beb02e894402b7e2e8c25f0faeb17a23bac4cac9))
55
+
56
+ ## [2.2.3rc1] - 2026-08-02
57
+
58
+ [Compare with 2.2.2](https://github.com/geozeke/glinkfix/compare/v2.2.2...v2.2.3rc1)
59
+
60
+ ### Deployment & Operations
61
+
62
+ - Upgrade changelog and release pipelines (#90) ([3e3559c](https://github.com/geozeke/glinkfix/commit/3e3559cd1a069b6dd84c3b2e1324d34ede1bbb7e))
63
+
64
+ ## [2.2.2] - 2026-07-03
65
+
66
+ ### Changed
67
+
68
+ - Prevent latest tagging of beta builds (0faa345)
69
+
70
+ ### Removed
71
+
72
+ - Remove "dev" recipe from justfile (bda0d17)
73
+
74
+ ### Fixed
75
+
76
+ - Lint project tooling (184fc5e)
77
+
78
+ ### Dependencies
79
+
80
+ - DEPS-See commit msg for list (0a54dd7)
81
+ - DEPS-See commit msg for list (434363a)
82
+ - DEPS-See commit msg for list (552413e)
83
+ - DEPS-See commit msg for list (c63537d)
84
+
85
+ ## [2.2.1] - 2026-05-23
86
+
87
+ ### Changed
88
+
89
+ - Add github release workflow (d7f618d)
90
+
91
+ ### Fixed
92
+
93
+ - Fix broken links in README (cc3ef62)
94
+
95
+ ## [2.2.0] - 2026-05-22
96
+
97
+ ### Added
98
+
99
+ - Allow for selective tagging (786a721)
100
+ - Handle more link types (#78) (36b4345)
101
+ - Add more command line options (#79) (31f85ab)
102
+
103
+ ### Changed
104
+
105
+ - Migrate release generation to cliff (2f62157)
106
+ - Disable dependabot (4c6821a)
107
+ - Update cliff.toml (7b36a8f)
108
+ - Lint justfile (bfb98a1)
109
+ - Lint justfile (19e7f39)
110
+ - Move to codex tooling (#77) (c772720)
111
+ - Add Windows CI tooling (#80) (d6c0652)
112
+
113
+ ### Documentation
114
+
115
+ - Lint CHANGELOG for markdown errors (623cc9b)
116
+ - Lint config.toml (052981b)
117
+ - Standardize changelog header format (b4311dc)
118
+ - Update logo (c521443)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: glinkfix
3
- Version: 2.2.2
3
+ Version: 2.2.4
4
4
  Summary: Google Drive Link Fixer
5
5
  Keywords: glinkfix,google,drive,link,curl,markdown,embed,image,download
6
6
  Author: Peter Nardi
@@ -215,6 +215,52 @@ options:
215
215
  acceptable when they provide a clear correctness, performance, or
216
216
  maintainability benefit.
217
217
 
218
+ ## Development and releases
219
+
220
+ Pull-request titles use Conventional Commits. User-visible types are `feat`,
221
+ `change`, `deprecate`, `remove`, `fix`, `security`, `perf`, `deploy`, `docs`,
222
+ `revert`, and dependency-scoped `build(deps...)` or `chore(deps...)`.
223
+ Routine `build`, `chore`, `ci`, `refactor`, `style`, and `test` changes are
224
+ hidden from release notes unless marked as breaking with `!`.
225
+
226
+ Preview pending user-visible entries with:
227
+
228
+ ```text
229
+ just changelog
230
+ ```
231
+
232
+ Prepare a release from a clean branch with a canonical version such as
233
+ `2.2.3`, `2.2.3b1`, or `2.2.3rc1`:
234
+
235
+ ```text
236
+ just bump 2.2.3
237
+ just check
238
+ just build
239
+ git add CHANGELOG.md changelogs pyproject.toml uv.lock
240
+ git commit -m "chore(release): prepare for 2.2.3"
241
+ ```
242
+
243
+ `just bump` requires at least one user-visible change. A release-preparation
244
+ `chore(release)` commit is hidden and does not satisfy that requirement.
245
+
246
+ After merging the release-preparation commit, update local `main` and run
247
+ `just tag-release`. It pushes one annotated `v<version>` tag. Prereleases
248
+ publish to TestPyPI and create GitHub prereleases; stable releases publish to
249
+ PyPI and create stable GitHub Releases. Only successful stable releases move
250
+ the mutable `latest` tag.
251
+
252
+ The release workflow uses PyPI Trusted Publishing. Before the first release,
253
+ configure pending publishers for this repository in TestPyPI and PyPI using
254
+ the `release.yml` workflow and the `testpypi` and `pypi` GitHub environments.
255
+ Allow the workflow to force-update the mutable `latest` tag; do not attach a
256
+ GitHub Release to that tag.
257
+
258
+ Dependabot checks direct Python and GitHub Actions dependencies weekly. It
259
+ groups eligible Python minor and patch updates, and automatically enables
260
+ squash auto-merge only for Dependabot-authored direct minor or patch updates
261
+ without maintainer changes. Major and otherwise ineligible updates require
262
+ manual review.
263
+
218
264
  ### License
219
265
 
220
266
  This project is licensed under the MIT License. See the [LICENSE][def5]
@@ -232,7 +278,7 @@ for license details.
232
278
  [def4]: https://github.com/asweigart/pyperclip
233
279
  [def5]: ./LICENSE
234
280
  [def6]: https://support.google.com/a/answer/10685032
235
- [def8]: https://pyperclip.readthedocs.io/en/latest/index.html#not-implemented-error
281
+ [def8]: https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error
236
282
  [def9]: https://pypi.org/project/pyperclip/
237
283
  [def11]: https://docs.astral.sh/uv/
238
284
  [github-commit]: https://img.shields.io/github/last-commit/geozeke/glinkfix
@@ -186,6 +186,52 @@ options:
186
186
  acceptable when they provide a clear correctness, performance, or
187
187
  maintainability benefit.
188
188
 
189
+ ## Development and releases
190
+
191
+ Pull-request titles use Conventional Commits. User-visible types are `feat`,
192
+ `change`, `deprecate`, `remove`, `fix`, `security`, `perf`, `deploy`, `docs`,
193
+ `revert`, and dependency-scoped `build(deps...)` or `chore(deps...)`.
194
+ Routine `build`, `chore`, `ci`, `refactor`, `style`, and `test` changes are
195
+ hidden from release notes unless marked as breaking with `!`.
196
+
197
+ Preview pending user-visible entries with:
198
+
199
+ ```text
200
+ just changelog
201
+ ```
202
+
203
+ Prepare a release from a clean branch with a canonical version such as
204
+ `2.2.3`, `2.2.3b1`, or `2.2.3rc1`:
205
+
206
+ ```text
207
+ just bump 2.2.3
208
+ just check
209
+ just build
210
+ git add CHANGELOG.md changelogs pyproject.toml uv.lock
211
+ git commit -m "chore(release): prepare for 2.2.3"
212
+ ```
213
+
214
+ `just bump` requires at least one user-visible change. A release-preparation
215
+ `chore(release)` commit is hidden and does not satisfy that requirement.
216
+
217
+ After merging the release-preparation commit, update local `main` and run
218
+ `just tag-release`. It pushes one annotated `v<version>` tag. Prereleases
219
+ publish to TestPyPI and create GitHub prereleases; stable releases publish to
220
+ PyPI and create stable GitHub Releases. Only successful stable releases move
221
+ the mutable `latest` tag.
222
+
223
+ The release workflow uses PyPI Trusted Publishing. Before the first release,
224
+ configure pending publishers for this repository in TestPyPI and PyPI using
225
+ the `release.yml` workflow and the `testpypi` and `pypi` GitHub environments.
226
+ Allow the workflow to force-update the mutable `latest` tag; do not attach a
227
+ GitHub Release to that tag.
228
+
229
+ Dependabot checks direct Python and GitHub Actions dependencies weekly. It
230
+ groups eligible Python minor and patch updates, and automatically enables
231
+ squash auto-merge only for Dependabot-authored direct minor or patch updates
232
+ without maintainer changes. Major and otherwise ineligible updates require
233
+ manual review.
234
+
189
235
  ### License
190
236
 
191
237
  This project is licensed under the MIT License. See the [LICENSE][def5]
@@ -203,7 +249,7 @@ for license details.
203
249
  [def4]: https://github.com/asweigart/pyperclip
204
250
  [def5]: ./LICENSE
205
251
  [def6]: https://support.google.com/a/answer/10685032
206
- [def8]: https://pyperclip.readthedocs.io/en/latest/index.html#not-implemented-error
252
+ [def8]: https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error
207
253
  [def9]: https://pypi.org/project/pyperclip/
208
254
  [def11]: https://docs.astral.sh/uv/
209
255
  [github-commit]: https://img.shields.io/github/last-commit/geozeke/glinkfix
@@ -0,0 +1,6 @@
1
+ # Changelog archives
2
+
3
+ `CHANGELOG.md` contains the active minor release line. Starting a new minor
4
+ or major release moves older sections into `vX.Y.x.md` files here. Release
5
+ notes are generated by `just bump`; do not edit active or archived release
6
+ sections directly.
@@ -1,8 +1,10 @@
1
- # Changelog
1
+ # Changelog archive: 1.0.x
2
2
 
3
- ## 1.0.16 (2023-12-31)
3
+ Archived glinkfix releases for the 1.0.x minor version line.
4
4
 
5
- ### Changes
5
+ ## [1.0.16] - 2023-12-31
6
+
7
+ ### Changed
6
8
 
7
9
  - Improve packaging compliance with [PEP 561][pep561].
8
10
 
@@ -0,0 +1,13 @@
1
+ # Changelog archive: 1.2.x
2
+
3
+ Archived glinkfix releases for the 1.2.x minor version line.
4
+
5
+ ## [1.2.1] - 2024-01-24
6
+
7
+ ### Changed
8
+
9
+ - Re-baseline version.
10
+
11
+ ### Fixed
12
+
13
+ - Lint documentation.
@@ -1,20 +1,22 @@
1
- # Changelog
1
+ # Changelog archive: 2.0.x
2
2
 
3
- ## 2.0.11 (2026-01-11)
3
+ Archived glinkfix releases for the 2.0.x minor version line.
4
4
 
5
- ### Features
5
+ ## [2.0.11] - 2026-01-11
6
+
7
+ ### Added
6
8
 
7
9
  - Add release.yml for formatted release messages by @geozeke in
8
10
  <https://github.com/geozeke/glinkfix/pull/49>.
9
11
 
10
- ## 2.0.10 (2026-01-09)
12
+ ## [2.0.10] - 2026-01-09
11
13
 
12
- ### Changes
14
+ ### Changed
13
15
 
14
16
  - Update copyright years on LICENSE.
15
17
  - Force uv sync to prefer managed Python versions.
16
18
 
17
- ### Dependency Upgrades
19
+ ### Dependencies
18
20
 
19
21
  - Bump ruff from 0.14.2 to 0.14.3 by @dependabot[bot] in
20
22
  <https://github.com/geozeke/glinkfix/pull/39>.
@@ -37,64 +39,64 @@
37
39
  - Bump ruff from 0.14.10 to 0.14.11 by @dependabot[bot] in
38
40
  <https://github.com/geozeke/glinkfix/pull/48>.
39
41
 
40
- ## 2.0.9 (2025-10-04)
42
+ ## [2.0.9] - 2025-10-04
41
43
 
42
- ### Changes
44
+ ### Changed
43
45
 
44
46
  - Upgrade build backend from hatchling to uv_build.
45
47
  - Refactor version numbering.
46
48
 
47
- ## 2.0.8 (2025-09-19)
49
+ ## [2.0.8] - 2025-09-19
48
50
 
49
- ### Changes
51
+ ### Changed
50
52
 
51
53
  - Bump [pyperclip][pyperclip] library to v1.10.0.
52
54
 
53
- ## 2.0.7 (2025-05-23)
55
+ ## [2.0.7] - 2025-05-23
54
56
 
55
- ### Changes
57
+ ### Changed
56
58
 
57
59
  - Maintenance release to synchronize repository tags.
58
60
 
59
- ## 2.0.6 (2025-03-06)
61
+ ## [2.0.6] - 2025-03-06
60
62
 
61
63
  ### Removed
62
64
 
63
65
  - Drop support for Python <= 3.8 ([#36][issue36]).
64
66
 
65
- ## 2.0.5 (2025-01-08)
67
+ ## [2.0.5] - 2025-01-08
66
68
 
67
69
  ### Added
68
70
 
69
71
  - Establish and maintain a proper changelog.
70
72
 
71
- ### Changes
73
+ ### Changed
72
74
 
73
75
  - Implement [tomli compatibility layer][tomli].
74
76
  - Optimize version numbering.
75
77
 
76
- ### Bug Fixes
78
+ ### Fixed
77
79
 
78
80
  - Lint code prompts and documentation.
79
81
 
80
- ## 2.0.4 (2024-11-15)
82
+ ## [2.0.4] - 2024-11-15
81
83
 
82
- ### Changes
84
+ ### Changed
83
85
 
84
86
  - Dependency updates.
85
87
 
86
- ## 2.0.3 (2024-09-22)
87
-
88
- ### Bug Fixes
89
-
90
- - Lint code.
88
+ ## [2.0.3] - 2024-09-22
91
89
 
92
- ### Changes
90
+ ### Changed
93
91
 
94
92
  - Migrate packaging and build system to [uv][astral].
95
93
  - Migrate code linting to [ruff][astral].
96
94
 
97
- ## 2.0.2 (2024-08-10)
95
+ ### Fixed
96
+
97
+ - Lint code.
98
+
99
+ ## [2.0.2] - 2024-08-10
98
100
 
99
101
  ### Added
100
102
 
@@ -103,29 +105,23 @@
103
105
  [pyperclip][pyperclip].
104
106
  - Improve help tips on the command line.
105
107
 
106
- ### Bug Fixes
108
+ ### Fixed
107
109
 
108
110
  - Lint code.
109
111
 
110
- ## 2.0.1 (2024-07-05)
112
+ ## [2.0.1] - 2024-07-05
111
113
 
112
- ### Changes
114
+ ### Changed
113
115
 
114
116
  - Bump [pyperclip][pyperclip] library: 1.8.2 -> 1.9.0.
115
117
 
116
- ## 2.0.0 (2024-04-23)
118
+ ## [2.0.0] - 2024-04-23
117
119
 
118
120
  ### Added
119
121
 
120
122
  - Add additional test cases.
121
123
 
122
- ### Bug Fixes
123
-
124
- - Lint documentation.
125
- - Update code to track evolving Google API changes.
126
- - Tune `Makefile` to handle development dependencies.
127
-
128
- ### Changes
124
+ ### Changed
129
125
 
130
126
  - Streamline program operation.
131
127
  - Default conversion is embedded link.
@@ -135,6 +131,12 @@
135
131
 
136
132
  - Remove separate version history from README.
137
133
 
134
+ ### Fixed
135
+
136
+ - Lint documentation.
137
+ - Update code to track evolving Google API changes.
138
+ - Tune `Makefile` to handle development dependencies.
139
+
138
140
  [astral]: https://astral.sh
139
141
  [#36]: https://github.com/geozeke/glinkfix/issues/36
140
142
  [issue36]: https://github.com/geozeke/glinkfix/issues/36
@@ -1,20 +1,29 @@
1
- ## 2.1.0 (2026-03-06)
1
+ # Changelog archive: 2.1.x
2
2
 
3
- ### Breaking
3
+ Archived glinkfix releases for the 2.1.x minor version line.
4
+
5
+ ## [2.1.0] - 2026-03-06
6
+
7
+ ### Breaking Changes
4
8
 
5
9
  - This version drops support for Python 3.9.
6
10
 
7
- ### Bug Fixes
11
+ ### Added
8
12
 
9
- - Pin upper bound to uv-build by @geozeke in
10
- <https://github.com/geozeke/glinkfix/pull/58>.
13
+ - Add docs label to release.yml by @geozeke in
14
+ <https://github.com/geozeke/glinkfix/pull/50>.
11
15
 
12
16
  ### Deprecated
13
17
 
14
18
  - Set min Python version to 3.10 by @geozeke in
15
19
  <https://github.com/geozeke/glinkfix/pull/57>.
16
20
 
17
- ### Dependency Upgrades
21
+ ### Fixed
22
+
23
+ - Pin upper bound to uv-build by @geozeke in
24
+ <https://github.com/geozeke/glinkfix/pull/58>.
25
+
26
+ ### Dependencies
18
27
 
19
28
  - Bump ruff from 0.14.11 to 0.14.13 by @dependabot[bot] in
20
29
  <https://github.com/geozeke/glinkfix/pull/51>.
@@ -32,8 +41,3 @@
32
41
  <https://github.com/geozeke/glinkfix/pull/60>.
33
42
  - Bump ruff from 0.15.4 to 0.15.5 by @dependabot[bot] in
34
43
  <https://github.com/geozeke/glinkfix/pull/59>.
35
-
36
- ### Features
37
-
38
- - Add docs label to release.yml by @geozeke in
39
- <https://github.com/geozeke/glinkfix/pull/50>.
@@ -1,8 +1,9 @@
1
1
  set shell := ["bash", "-eu", "-o", "pipefail", "-c"]
2
2
  project_name := "glinkfix"
3
3
 
4
- # Show help
5
- default: help
4
+ # Show available recipes
5
+ default:
6
+ @just --list
6
7
 
7
8
  # --------------------------------------------
8
9
 
@@ -39,33 +40,15 @@ build:
39
40
 
40
41
  # --------------------------------------------
41
42
 
42
- # Bump the project version and generate changelog
43
+ # Prepare a project version and generate its changelog
43
44
  bump version:
44
- #!/usr/bin/env bash
45
- export UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}"
46
- new_version="{{version}}"
47
- new_version="${new_version#v}"
48
- git cliff --unreleased --tag "$new_version" --prepend CHANGELOG.md
49
- uv run python scripts/archive_changelog.py "$new_version"
50
- tmp_changelog="$(mktemp)"
51
- awk '
52
- NR == 1 { print; prev = $0; next }
53
- /^## / && prev !~ /^[[:space:]]*$/ { print "" }
54
- { print; prev = $0 }
55
- ' CHANGELOG.md > "$tmp_changelog"
56
- mv "$tmp_changelog" CHANGELOG.md
57
- tmp_file="$(mktemp)"
58
- awk -v version="$new_version" '
59
- BEGIN { replaced = 0 }
60
- /^version = "/ && !replaced {
61
- print "version = \"" version "\""
62
- replaced = 1
63
- next
64
- }
65
- { print }
66
- ' pyproject.toml > "$tmp_file"
67
- mv "$tmp_file" pyproject.toml
68
- just sync
45
+ UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}" uv run python -m scripts.bump_version {{version}}
46
+
47
+ # --------------------------------------------
48
+
49
+ # Preview user-visible changes since the latest release
50
+ changelog:
51
+ git-cliff --unreleased
69
52
 
70
53
  # --------------------------------------------
71
54
 
@@ -113,12 +96,6 @@ format:
113
96
 
114
97
  # --------------------------------------------
115
98
 
116
- # Show available recipes
117
- help:
118
- @just --list
119
-
120
- # --------------------------------------------
121
-
122
99
  # Run lint checks
123
100
  lint:
124
101
  UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}" uv run ruff check .
@@ -144,26 +121,6 @@ outdated:
144
121
 
145
122
  # --------------------------------------------
146
123
 
147
- # Publish package to pypi.org for production
148
- publish-production: build
149
- #!/usr/bin/env bash
150
- export UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}"
151
- set -a
152
- eval $(grep '^PYPI_' "$HOME/.secrets")
153
- uv publish --publish-url https://upload.pypi.org/legacy/ -t "$PYPI_PROD"
154
-
155
- # --------------------------------------------
156
-
157
- # Publish package to test.pypi.org for testing
158
- publish-test: build
159
- #!/usr/bin/env bash
160
- export UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}"
161
- set -a
162
- eval $(grep '^PYPI_' "$HOME/.secrets")
163
- uv publish --publish-url https://test.pypi.org/legacy/ -t "$PYPI_TEST"
164
-
165
- # --------------------------------------------
166
-
167
124
  # Reset the project state
168
125
  reset: clean
169
126
  echo "Resetting project state"
@@ -211,15 +168,14 @@ sync: _require_setup
211
168
 
212
169
  # --------------------------------------------
213
170
 
214
- # Generate release tag
215
- tag-release:
216
- bash ./scripts/release_tags.sh
171
+ # Run the complete local quality-check suite
172
+ check: lint typecheck test
217
173
 
218
174
  # --------------------------------------------
219
175
 
220
- # Generate release tag and update latest
221
- tag-release-latest:
222
- bash ./scripts/release_tags.sh --latest
176
+ # Generate and push the validated release tag
177
+ tag-release:
178
+ UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}" uv run python -m scripts.tag_release
223
179
 
224
180
  # --------------------------------------------
225
181
 
@@ -231,7 +187,7 @@ test:
231
187
 
232
188
  # Run static type checks
233
189
  typecheck:
234
- UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}" uv run mypy src
190
+ UV_CACHE_DIR="${UV_CACHE_DIR:-.uv-cache}" uv run mypy src scripts
235
191
 
236
192
  # --------------------------------------------
237
193