crackerjack 0.35.2__py3-none-any.whl → 0.36.1__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.

Potentially problematic release.


This version of crackerjack might be problematic. Click here for more details.

@@ -428,17 +428,26 @@ class WorkflowPipeline:
428
428
  publishing_success = await self._execute_publishing_workflow(
429
429
  options, workflow_id
430
430
  )
431
+ self.console.print(f"[dim]DEBUG: publishing_success={publishing_success}[/dim]")
431
432
  if not publishing_success:
432
433
  success = False
433
- # Only return early if publishing was requested but failed
434
- if options.publish or options.all:
435
- return False
436
434
 
437
435
  # Execute commit workflow independently if requested
436
+ # Note: Commit workflow runs regardless of publish success to ensure
437
+ # version bump changes are always committed when requested
438
+ self.console.print(f"[dim]DEBUG: About to execute commit workflow, options.commit={options.commit}[/dim]")
438
439
  commit_success = await self._execute_commit_workflow(options, workflow_id)
440
+ self.console.print(f"[dim]DEBUG: commit_success={commit_success}[/dim]")
439
441
  if not commit_success:
440
442
  success = False
441
443
 
444
+ # Only fail the overall workflow if publishing was explicitly requested and failed
445
+ if not publishing_success and (options.publish or options.all):
446
+ self.console.print(
447
+ "[red]❌ Publishing failed - overall workflow marked as failed[/red]"
448
+ )
449
+ return False
450
+
442
451
  return success
443
452
 
444
453
  def _is_publishing_workflow(self, options: OptionsProtocol) -> bool:
@@ -415,12 +415,36 @@ class PublishManagerImpl:
415
415
  def _execute_publish(self) -> bool:
416
416
  result = self._run_command(["uv", "publish"])
417
417
 
418
- if result.returncode != 0:
419
- self._handle_publish_failure(result.stderr)
420
- return False
418
+ # Check for success indicators in output even if return code is non-zero
419
+ # UV can return non-zero codes for warnings while still succeeding
420
+ success_indicators = [
421
+ "Successfully uploaded",
422
+ "Package uploaded successfully",
423
+ "Upload successful",
424
+ "Successfully published",
425
+ ]
426
+
427
+ has_success_indicator = (
428
+ any(indicator in result.stdout for indicator in success_indicators)
429
+ if result.stdout
430
+ else False
431
+ )
421
432
 
422
- self._handle_publish_success()
423
- return True
433
+ # DEBUG: Log the actual publish result for troubleshooting
434
+ self.console.print(f"[dim]DEBUG: uv publish returncode={result.returncode}[/dim]")
435
+ if result.stdout:
436
+ self.console.print(f"[dim]DEBUG: stdout contains success indicator={has_success_indicator}[/dim]")
437
+
438
+ # Consider it successful if either return code is 0 OR we find success indicators
439
+ success = result.returncode == 0 or has_success_indicator
440
+ self.console.print(f"[dim]DEBUG: publish_package() returning {success}[/dim]")
441
+
442
+ if success:
443
+ self._handle_publish_success()
444
+ return True
445
+
446
+ self._handle_publish_failure(result.stderr)
447
+ return False
424
448
 
425
449
  def _handle_publish_failure(self, error_msg: str) -> None:
426
450
  self.console.print(f"[red]❌[/ red] Publish failed: {error_msg}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crackerjack
3
- Version: 0.35.2
3
+ Version: 0.36.1
4
4
  Summary: Crackerjack Python project management tool
5
5
  Project-URL: documentation, https://github.com/lesleslie/crackerjack
6
6
  Project-URL: homepage, https://github.com/lesleslie/crackerjack
@@ -54,7 +54,7 @@ crackerjack/core/service_watchdog.py,sha256=Ttj1imOxvUea4Tkf5JO1e2dQtGIK7D-bX1xO
54
54
  crackerjack/core/session_coordinator.py,sha256=TgoGE9DfXe2x-OkH93Ld9dX9ROjx2_mZFkGXen-z5YI,15680
55
55
  crackerjack/core/timeout_manager.py,sha256=_sbEsfYDwWx7y0Pn89QCoAZ5DpWIbCdtR9qkG_Kqj5E,15013
56
56
  crackerjack/core/websocket_lifecycle.py,sha256=74kn6ugu6FLlDQhCNSPgqguCFwRoT1WFOvtl8G2OyFc,12860
57
- crackerjack/core/workflow_orchestrator.py,sha256=nMbxxeHzecZBeNk5Do0SJfFGX5UvZXp6H2yPwr2bty4,70470
57
+ crackerjack/core/workflow_orchestrator.py,sha256=k2Z1lJbRKO8Vu-uLn06FYzlaCwtNdsIEIxQs6k5FPfA,71074
58
58
  crackerjack/docs/INDEX.md,sha256=a6CGFEeL5DX_FRft_JFWd0nOxoBmCSSp-QHIC3B7ato,342
59
59
  crackerjack/docs/generated/api/API_REFERENCE.md,sha256=mWoqImZA7AhDvRqqF1MhUo70g_pnZr3NoBeZQRotqN8,155816
60
60
  crackerjack/docs/generated/api/CLI_REFERENCE.md,sha256=ikuG0hO5EjIiQlJtAUnvEuAhXDa-JHPULPXNNmUwvk4,2805
@@ -84,7 +84,7 @@ crackerjack/intelligence/integration.py,sha256=vVaC2Fp5RbbABpaohCePzGw1XANuRztGl
84
84
  crackerjack/managers/__init__.py,sha256=PFWccXx4hDQA76T02idAViOLVD-aPeVpgjdfSkh_Dmk,298
85
85
  crackerjack/managers/async_hook_manager.py,sha256=c0HFR98sFwfk0uZ3NmAe_6OVZpBrq9I570V8A2DoIxw,5129
86
86
  crackerjack/managers/hook_manager.py,sha256=_FT0ngwPwujqg0KZGpLz-pP07mwDmptJ5pVkiy5yS8k,7820
87
- crackerjack/managers/publish_manager.py,sha256=-sHzSVMF6fSUXuPdWA47gBFkFCT8sIb4cPj3GJB-uX4,21370
87
+ crackerjack/managers/publish_manager.py,sha256=LDP1iG9LyGgtBCSyhe7p9QZiNcGHlp1s87tu-f9u5Mo,22423
88
88
  crackerjack/managers/test_command_builder.py,sha256=1TlPzddNcDDxRORH6UvAudcbRc6hKwFyknSEVLkiWAo,3459
89
89
  crackerjack/managers/test_executor.py,sha256=2837Ti4OaNsmLxnmELjbQ18hmfL0-Z2EW-W2UeFSDcE,13871
90
90
  crackerjack/managers/test_manager.py,sha256=BRPBWXx4flPDK0w96xyHhg-9dmUca1vpKQRM2VofSlI,13158
@@ -224,8 +224,8 @@ crackerjack/tools/validate_input_validator_patterns.py,sha256=NN7smYlXWrHLQXTb-8
224
224
  crackerjack/tools/validate_regex_patterns.py,sha256=9ejFb7Tw1js_oydzuEeeeXvrU5ipHUEX9ATBfkLCCE8,5811
225
225
  crackerjack/ui/__init__.py,sha256=eMb1OeTU-dSLICAACn0YdYB4Amdr8wHckjKfn0wOIZE,37
226
226
  crackerjack/ui/server_panels.py,sha256=F5IH6SNN06BaZQMsFx_D-OA286aojmaFPJ5kvvSRv_c,4232
227
- crackerjack-0.35.2.dist-info/METADATA,sha256=nRxM91j9awHMHtKkvW6DU77MOJKZxJpPWUlxjZ1Af08,37942
228
- crackerjack-0.35.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
229
- crackerjack-0.35.2.dist-info/entry_points.txt,sha256=AJKNft0WXm9xoGUJ3Trl-iXHOWxRAYbagQiza3AILr4,57
230
- crackerjack-0.35.2.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
231
- crackerjack-0.35.2.dist-info/RECORD,,
227
+ crackerjack-0.36.1.dist-info/METADATA,sha256=v5tyb_XdeDS7TJ4xqTIjA828ixi3z6leQCTtt4Gi_Dk,37942
228
+ crackerjack-0.36.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
229
+ crackerjack-0.36.1.dist-info/entry_points.txt,sha256=AJKNft0WXm9xoGUJ3Trl-iXHOWxRAYbagQiza3AILr4,57
230
+ crackerjack-0.36.1.dist-info/licenses/LICENSE,sha256=fDt371P6_6sCu7RyqiZH_AhT1LdN3sN1zjBtqEhDYCk,1531
231
+ crackerjack-0.36.1.dist-info/RECORD,,