itw-python-builder 0.1.36__tar.gz → 0.1.37__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 (20) hide show
  1. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/PKG-INFO +1 -1
  2. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/tasks.py +14 -0
  3. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder.egg-info/PKG-INFO +1 -1
  4. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/pyproject.toml +1 -1
  5. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/LICENSE +0 -0
  6. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/README.md +0 -0
  7. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/.pylintrc +0 -0
  8. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/__init__.py +0 -0
  9. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/cli.py +0 -0
  10. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/ssr_tasks.py +0 -0
  11. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/templates/server.sitemap.snippet.ts +0 -0
  12. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/templates/sitemap.routes.ts +0 -0
  13. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/utils.py +0 -0
  14. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder/version.py +0 -0
  15. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder.egg-info/SOURCES.txt +0 -0
  16. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder.egg-info/dependency_links.txt +0 -0
  17. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder.egg-info/entry_points.txt +0 -0
  18. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder.egg-info/requires.txt +0 -0
  19. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/itw_python_builder.egg-info/top_level.txt +0 -0
  20. {itw_python_builder-0.1.36 → itw_python_builder-0.1.37}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: itw_python_builder
3
- Version: 0.1.36
3
+ Version: 0.1.37
4
4
  Summary: Standardized Django deployment pipeline with Docker, testing, and SonarQube integration
5
5
  Author-email: IT-Works <contact@it-works.io>
6
6
  License: MIT
@@ -159,6 +159,15 @@ def taginit(ctx: Context) -> None:
159
159
  save_version(version)
160
160
 
161
161
 
162
+ def _ensure_unique_tag(ctx: Context, version: Version) -> None:
163
+ """If the tag already exists, auto-increment RC if it's an RC, or abort if it's a release."""
164
+ while ctx.run(f'git rev-parse -q --verify "refs/tags/{version}"', warn=True, hide=True).ok:
165
+ if version.release_candidate == 0:
166
+ raise RuntimeError(f"Tag {version} already exists! Aborting before pipeline to prevent overwrite.")
167
+ print(f"[itw] Tag {version} already exists, auto-incrementing release candidate...")
168
+ version.increment_release_candidate()
169
+
170
+
162
171
  @task
163
172
  def incrementrc(ctx: Context, skip_pipeline=False, pylintrc=None, ssr=False) -> None:
164
173
  """Increment release candidate version and deploy. Use --ssr for Angular SSR builds."""
@@ -167,6 +176,7 @@ def incrementrc(ctx: Context, skip_pipeline=False, pylintrc=None, ssr=False) ->
167
176
  project_type = detect_project_type()
168
177
  version = read_version(ctx)
169
178
  version.increment_release_candidate()
179
+ _ensure_unique_tag(ctx, version)
170
180
  if project_type == 'backend':
171
181
  lint(ctx, pylintrc=pylintrc)
172
182
  tag_build_push(ctx, version, skip_pipeline, ssr=ssr)
@@ -181,6 +191,7 @@ def incrementpatch(ctx: Context, skip_pipeline=False, ssr=False) -> None:
181
191
  production = check_branch(ctx)
182
192
  version = read_version(ctx)
183
193
  version.increment_patch(release=production)
194
+ _ensure_unique_tag(ctx, version)
184
195
  tag_build_push(ctx, version, skip_pipeline, ssr=ssr)
185
196
  save_version(version)
186
197
  commit_version(ctx, version)
@@ -193,6 +204,7 @@ def incrementminor(ctx: Context, skip_pipeline=False, ssr=False) -> None:
193
204
  production = check_branch(ctx)
194
205
  version = read_version(ctx)
195
206
  version.increment_minor(release=production)
207
+ _ensure_unique_tag(ctx, version)
196
208
  tag_build_push(ctx, version, skip_pipeline, ssr=ssr)
197
209
  save_version(version)
198
210
  commit_version(ctx, version)
@@ -205,6 +217,7 @@ def incrementmajor(ctx: Context, skip_pipeline=False, ssr=False) -> None:
205
217
  production = check_branch(ctx)
206
218
  version = read_version(ctx)
207
219
  version.increment_major(release=production)
220
+ _ensure_unique_tag(ctx, version)
208
221
  tag_build_push(ctx, version, skip_pipeline, ssr=ssr)
209
222
  save_version(version)
210
223
  commit_version(ctx, version)
@@ -218,6 +231,7 @@ def release(ctx: Context, skip_pipeline=False, ssr=False) -> None:
218
231
  login(ctx)
219
232
  version = read_version(ctx)
220
233
  version.reset_release_candidate(release=True)
234
+ _ensure_unique_tag(ctx, version)
221
235
  tag_build_push(ctx, version, skip_pipeline, ssr=ssr)
222
236
  save_version(version)
223
237
  commit_version(ctx, version)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: itw_python_builder
3
- Version: 0.1.36
3
+ Version: 0.1.37
4
4
  Summary: Standardized Django deployment pipeline with Docker, testing, and SonarQube integration
5
5
  Author-email: IT-Works <contact@it-works.io>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "itw_python_builder"
7
- version = "0.1.36"
7
+ version = "0.1.37"
8
8
  description = "Standardized Django deployment pipeline with Docker, testing, and SonarQube integration"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"