superset-showtime 0.5.9__tar.gz → 0.5.10__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.

Potentially problematic release.


This version of superset-showtime might be problematic. Click here for more details.

Files changed (34) hide show
  1. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/.claude/settings.local.json +4 -2
  2. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/PKG-INFO +1 -1
  3. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/__init__.py +1 -1
  4. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/git_validation.py +50 -11
  5. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/.gitignore +0 -0
  6. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/.pre-commit-config.yaml +0 -0
  7. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/CLAUDE.md +0 -0
  8. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/Makefile +0 -0
  9. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/README.md +0 -0
  10. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/dev-setup.sh +0 -0
  11. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/pypi-push.sh +0 -0
  12. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/pyproject.toml +0 -0
  13. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/requirements-dev.txt +0 -0
  14. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/requirements.txt +0 -0
  15. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/__main__.py +0 -0
  16. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/cli.py +0 -0
  17. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/__init__.py +0 -0
  18. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/aws.py +0 -0
  19. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/emojis.py +0 -0
  20. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/github.py +0 -0
  21. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/github_messages.py +0 -0
  22. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/label_colors.py +0 -0
  23. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/pull_request.py +0 -0
  24. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/show.py +0 -0
  25. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/data/ecs-task-definition.json +0 -0
  26. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/__init__.py +0 -0
  27. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/__init__.py +0 -0
  28. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_label_transitions.py +0 -0
  29. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_pull_request.py +0 -0
  30. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_sha_specific_logic.py +0 -0
  31. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_show.py +0 -0
  32. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/uv.lock +0 -0
  33. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/workflows-reference/showtime-cleanup.yml +0 -0
  34. {superset_showtime-0.5.9 → superset_showtime-0.5.10}/workflows-reference/showtime-trigger.yml +0 -0
@@ -43,12 +43,14 @@
43
43
  "Bash(showtime sync:*)",
44
44
  "Bash(AWS_PROFILE=\"\" showtime sync 34831 --dry-run-aws --dry-run-github)",
45
45
  "Bash(git stash:*)",
46
- "Bash(showtime list:*)"
46
+ "Bash(showtime list:*)",
47
+ "Bash(showtime git-check)"
47
48
  ],
48
49
  "deny": [],
49
50
  "ask": [],
50
51
  "additionalDirectories": [
51
- "/private/tmp"
52
+ "/private/tmp",
53
+ "/Users/max/code/superset"
52
54
  ]
53
55
  }
54
56
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superset-showtime
3
- Version: 0.5.9
3
+ Version: 0.5.10
4
4
  Summary: 🎪 Apache Superset ephemeral environment management with circus tent emoji state tracking
5
5
  Project-URL: Homepage, https://github.com/apache/superset-showtime
6
6
  Project-URL: Documentation, https://superset-showtime.readthedocs.io/
@@ -4,7 +4,7 @@
4
4
  Circus tent emoji state tracking for Apache Superset ephemeral environments.
5
5
  """
6
6
 
7
- __version__ = "0.5.9"
7
+ __version__ = "0.5.10"
8
8
  __author__ = "Maxime Beauchemin"
9
9
  __email__ = "maximebeauchemin@gmail.com"
10
10
 
@@ -16,7 +16,8 @@ except ImportError:
16
16
 
17
17
 
18
18
  # Hard-coded required SHA - update this when needed
19
- REQUIRED_SHA = "277f03c2075a74fbafb55531054fb5083debe5cc" # Placeholder SHA for testing
19
+ # https://github.com/apache/superset/commit/47414e18d4c2980d0cc4718b3e704845f7dfd356
20
+ REQUIRED_SHA = "47414e18d4c2980d0cc4718b3e704845f7dfd356"
20
21
 
21
22
 
22
23
  class GitValidationError(Exception):
@@ -49,6 +50,7 @@ def is_git_repository(path: str = ".") -> bool:
49
50
  def validate_required_sha(required_sha: Optional[str] = None) -> Tuple[bool, Optional[str]]:
50
51
  """
51
52
  Validate that the required SHA exists in the current Git repository.
53
+ Tries to fetch the SHA from origin if validation fails in a shallow clone.
52
54
 
53
55
  Args:
54
56
  required_sha: SHA to validate (default: REQUIRED_SHA constant)
@@ -68,18 +70,40 @@ def validate_required_sha(required_sha: Optional[str] = None) -> Tuple[bool, Opt
68
70
  try:
69
71
  repo = Repo(".")
70
72
 
71
- # Search for SHA in git log (has to work in shallow clones where merge_base fails)
73
+ # First attempt: Search for SHA in git log (has to work in shallow clones where merge_base fails)
74
+ is_valid, error = _validate_sha_in_log(repo, sha_to_check)
75
+ if is_valid:
76
+ return True, None
77
+
78
+ # If validation failed, check if we're in a shallow clone and try fetching
72
79
  try:
73
- log_output = repo.git.log("--oneline", "--all")
74
- if sha_to_check in log_output or sha_to_check[:7] in log_output:
75
- return True, None
80
+ is_shallow = repo.git.rev_parse("--is-shallow-repository") == "true"
81
+ if is_shallow:
82
+ try:
83
+ print(f"🌊 Shallow clone detected, attempting to fetch {sha_to_check[:7]}...")
84
+ repo.git.fetch("origin", sha_to_check)
85
+
86
+ # Retry validation after fetch
87
+ is_valid_after_fetch, error_after_fetch = _validate_sha_in_log(
88
+ repo, sha_to_check
89
+ )
90
+ if is_valid_after_fetch:
91
+ print(f"✅ Successfully fetched and validated {sha_to_check[:7]}")
92
+ return True, None
93
+ else:
94
+ return False, error_after_fetch
95
+
96
+ except Exception as fetch_error:
97
+ return False, (
98
+ f"Required commit {sha_to_check} not found in shallow clone. "
99
+ f"Failed to fetch from origin: {fetch_error}"
100
+ )
76
101
  else:
77
- return False, (
78
- f"Required commit {sha_to_check} not found in Git history. "
79
- f"Please update to a branch that includes this commit."
80
- )
81
- except Exception as e:
82
- return False, f"Git log search failed: {e}"
102
+ return False, error
103
+
104
+ except Exception:
105
+ # If shallow check fails, return original error
106
+ return False, error
83
107
 
84
108
  except InvalidGitRepositoryError:
85
109
  return False, "Current directory is not a Git repository"
@@ -87,6 +111,21 @@ def validate_required_sha(required_sha: Optional[str] = None) -> Tuple[bool, Opt
87
111
  return False, f"Git validation error: {e}"
88
112
 
89
113
 
114
+ def _validate_sha_in_log(repo: "Repo", sha_to_check: str) -> Tuple[bool, Optional[str]]:
115
+ """Helper function to validate SHA exists in git log output."""
116
+ try:
117
+ log_output = repo.git.log("--oneline", "--all")
118
+ if sha_to_check in log_output or sha_to_check[:7] in log_output:
119
+ return True, None
120
+ else:
121
+ return False, (
122
+ f"Required commit {sha_to_check} not found in Git history. "
123
+ f"Please update to a branch that includes this commit."
124
+ )
125
+ except Exception as e:
126
+ return False, f"Git log search failed: {e}"
127
+
128
+
90
129
  def get_validation_error_message(required_sha: Optional[str] = None) -> str:
91
130
  """
92
131
  Get a user-friendly error message for SHA validation failure.