superset-showtime 0.2.9__tar.gz → 0.3.1__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 (31) hide show
  1. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/PKG-INFO +1 -1
  2. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/__init__.py +1 -1
  3. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/cli.py +25 -10
  4. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/.claude/settings.local.json +0 -0
  5. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/.gitignore +0 -0
  6. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/.pre-commit-config.yaml +0 -0
  7. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/CLAUDE.md +0 -0
  8. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/Makefile +0 -0
  9. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/README.md +0 -0
  10. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/dev-setup.sh +0 -0
  11. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/pypi-push.sh +0 -0
  12. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/pyproject.toml +0 -0
  13. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/requirements-dev.txt +0 -0
  14. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/requirements.txt +0 -0
  15. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/__main__.py +0 -0
  16. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/commands/__init__.py +0 -0
  17. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/commands/start.py +0 -0
  18. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/__init__.py +0 -0
  19. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/aws.py +0 -0
  20. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/circus.py +0 -0
  21. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/emojis.py +0 -0
  22. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/github.py +0 -0
  23. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/github_messages.py +0 -0
  24. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/core/label_colors.py +0 -0
  25. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/showtime/data/ecs-task-definition.json +0 -0
  26. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/tests/__init__.py +0 -0
  27. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/tests/unit/__init__.py +0 -0
  28. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/tests/unit/test_circus.py +0 -0
  29. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/uv.lock +0 -0
  30. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/workflows-reference/showtime-cleanup.yml +0 -0
  31. {superset_showtime-0.2.9 → superset_showtime-0.3.1}/workflows-reference/showtime-trigger.yml +7 -7
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: superset-showtime
3
- Version: 0.2.9
3
+ Version: 0.3.1
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.2.9"
7
+ __version__ = "0.3.1"
8
8
  __author__ = "Maxime Beauchemin"
9
9
  __email__ = "maximebeauchemin@gmail.com"
10
10
 
@@ -330,21 +330,36 @@ def _build_docker_image(pr_number: int, sha: str, dry_run: bool = False) -> bool
330
330
 
331
331
  try:
332
332
  console.print(f"🎪 Running: {' '.join(cmd)}")
333
- result = subprocess.run(cmd, capture_output=True, text=True, timeout=1800) # 30 min timeout
333
+ console.print("🎪 Streaming Docker build output...")
334
+
335
+ # Stream output in real-time for better user experience
336
+ process = subprocess.Popen(
337
+ cmd,
338
+ stdout=subprocess.PIPE,
339
+ stderr=subprocess.STDOUT,
340
+ text=True,
341
+ bufsize=1,
342
+ universal_newlines=True,
343
+ )
344
+
345
+ # Stream output line by line
346
+ for line in process.stdout:
347
+ console.print(f"🐳 {line.rstrip()}")
334
348
 
335
- if result.returncode == 0:
349
+ # Wait for completion with timeout
350
+ try:
351
+ return_code = process.wait(timeout=3600) # 60 min timeout
352
+ except subprocess.TimeoutExpired:
353
+ process.kill()
354
+ console.print("🎪 ❌ Docker build timed out after 60 minutes")
355
+ return False
356
+
357
+ if return_code == 0:
336
358
  console.print(f"🎪 ✅ Docker build succeeded: {tag}")
337
359
  return True
338
360
  else:
339
- console.print("🎪 ❌ Docker build failed:")
340
- console.print(f"Exit code: {result.returncode}")
341
- console.print(f"STDOUT: {result.stdout}")
342
- console.print(f"STDERR: {result.stderr}")
361
+ console.print(f"🎪 ❌ Docker build failed with exit code: {return_code}")
343
362
  return False
344
-
345
- except subprocess.TimeoutExpired:
346
- console.print("🎪 ❌ Docker build timed out after 30 minutes")
347
- return False
348
363
  except Exception as e:
349
364
  console.print(f"🎪 ❌ Docker build error: {e}")
350
365
  return False
@@ -77,6 +77,13 @@ jobs:
77
77
  echo "pr_number=$PR_NUM_OUT" >> $GITHUB_OUTPUT
78
78
  echo "target_sha=$TARGET_SHA" >> $GITHUB_OUTPUT
79
79
 
80
+ - name: Checkout PR code (only if build needed)
81
+ if: steps.check.outputs.build_needed == 'true'
82
+ uses: actions/checkout@v4
83
+ with:
84
+ ref: ${{ steps.check.outputs.target_sha }}
85
+ persist-credentials: false
86
+
80
87
  - name: Setup Docker Environment (only if build needed)
81
88
  if: steps.check.outputs.build_needed == 'true'
82
89
  uses: ./.github/actions/setup-docker
@@ -85,13 +92,6 @@ jobs:
85
92
  dockerhub-token: ${{ env.DOCKERHUB_TOKEN }}
86
93
  build: "true"
87
94
 
88
- - name: Checkout PR code (only if build needed)
89
- if: steps.check.outputs.build_needed == 'true'
90
- uses: actions/checkout@v4
91
- with:
92
- ref: ${{ steps.check.outputs.target_sha }}
93
- persist-credentials: false
94
-
95
95
  - name: Execute sync (handles everything)
96
96
  if: steps.check.outputs.sync_needed == 'true'
97
97
  run: |