Skip to content

Comments

fix: enable proper semantic versioning for breaking changes#61

Merged
deanq merged 10 commits intomainfrom
deanq/fix-release-please
Feb 4, 2026
Merged

fix: enable proper semantic versioning for breaking changes#61
deanq merged 10 commits intomainfrom
deanq/fix-release-please

Conversation

@deanq
Copy link
Contributor

@deanq deanq commented Feb 4, 2026

Summary

This PR improves the CI/CD pipeline, test infrastructure, and handler execution environment:

Release Management:

  • Enable proper semantic versioning for breaking changes by removing pre-major bump settings
  • Breaking changes now bump major version (0.8.0 → 1.0.0)

CI/CD Optimizations:

  • Consolidate deploy workflow into main CI/CD pipeline with workflow_dispatch
  • Optimize GitHub Actions workflow for 50% faster PR validation
  • Remove docker-main-* jobs (10-15 minute speedup)
  • Remove test-handler from non-Docker CI job

Test Infrastructure:

  • Enable parallel test execution with pytest-xdist
  • Fix test-handler.sh to use appropriate Python environment (system Python in Docker, uv run locally)
  • Improve test coverage for volume unpacking exception propagation

Handler Improvements:

  • Defer runpod import to allow local handler testing
  • Fix dependency environment isolation in Docker containers

Impact

  • PR chore(main): release 0.8.0 #60 (0.8.0 release) should be closed after this merges
  • Release Please will regenerate a new PR with 1.0.0
  • CI/CD pipeline runs faster with consolidated workflows
  • Handler testing now works reliably in both Docker and local environments

deanq added 2 commits February 3, 2026 20:42
Deploy workflow functionality has been integrated into ci.yml with
workflow_dispatch support. Updates documentation to reflect unified
CI/CD approach.
@deanq deanq requested review from KAJdev, Copilot and jhcipar February 4, 2026 05:19
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes pre-major versioning settings from Release Please configuration to enable proper semantic versioning for breaking changes, ensuring that breaking changes bump the major version (e.g., 0.8.0 → 1.0.0) instead of only the minor version.

Changes:

  • Removed bump-minor-pre-major and bump-patch-for-minor-pre-major settings from release-please-config.json
  • Deleted .github/workflows/deploy.yml workflow file
  • Updated documentation in CLAUDE.md to reflect consolidated CI/CD workflow

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
release-please-config.json Removed pre-major version bump settings to enable standard semantic versioning
CLAUDE.md Updated workflow documentation to reflect removal of separate deploy workflow and correction of Docker tag naming
.github/workflows/deploy.yml Removed entire deploy workflow file (functionality consolidated into ci.yml)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@deanq deanq requested review from Copilot and rambo-runpod February 4, 2026 05:20
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

deanq added 8 commits February 3, 2026 21:20
- Python matrix: 5 versions → 2 on PRs (60% reduction), 5 on main/release
- Test execution: Consolidated to single coverage run on PRs (66% reduction)
- Docker builds: Parallelize with lint dependency instead of test (saves ~3 min)
- Disk cleanup: Right-size for image type (CPU: manual, GPU: aggressive)
- Validation gate: Centralized quality control before release
- Cache optimization: Add explicit cache-dependency-glob for uv

Expected improvement: PR validation 12-17 min → 6-8 min (50-60% faster)
Mock the sleep function in test_maybe_unpack_propagates_exceptions to
prevent 60-second pause during test execution. The test was triggering
retry logic with real 30-second sleep calls. Matches pattern already used
in test_maybe_unpack_logs_error_on_failure. Test now completes in <1 second
instead of ~60 seconds.
Add pytest-xdist dependency and configure all test targets to run in parallel
using auto-detected worker count with loadscope distribution strategy. Reduces
test execution time while maintaining test isolation via fixture-aware scheduling.

- Add pytest-xdist>=3.5.0 to dev dependencies
- Update test, test-unit, and test-coverage targets to use -n auto --dist loadscope
- All 240 tests pass with parallel execution (12 workers on this system)
Move the import runpod statement into the if __name__ == "__main__"
block to defer it until actually running the handler on RunPod's
serverless platform. This allows the handler module to be imported
during local testing without requiring the runpod package to be available
in the test environment. The runpod.serverless.start() call is only
executed when the handler runs directly on the platform.

Fixes: Handler test failures when runpod package is unavailable during
local execution of test_handler.sh script.
Changed test-handler.sh to always use 'uv run' instead of trying to detect
whether system python is available. The previous logic checked for system
python and would use it directly, but in CI environments like GitHub Actions,
the system python doesn't have the project dependencies installed.

By using 'uv run', we ensure the virtual environment with all dependencies
is used, consistent with how the rest of the project runs tests and builds.
The test-handler.sh script requires root access for apt-get operations
to install system dependencies. This works in Docker containers but
fails in the GitHub Actions runner environment. Keep handler tests
running only in Docker jobs where they have proper permissions.
Removed all four docker-main-* jobs (gpu, cpu, lb, lb-cpu) that built :main tagged images on every main branch push. Docker images are now only built during releases with semantic versioning. This simplifies the workflow and reduces GitHub Actions minutes usage.
Fixed test_dependencies.json CI failure by detecting Docker environment
and using system Python instead of uv run. This ensures test handler
uses the same Python environment as dependency_installer.py, which
installs packages to system Python with --system flag in Docker.

In Docker: uses system Python with pre-installed packages
In local: uses uv run for proper dependency management
@deanq deanq requested a review from Copilot February 4, 2026 07:04
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@deanq deanq merged commit 7c4da51 into main Feb 4, 2026
12 checks passed
@deanq deanq deleted the deanq/fix-release-please branch February 4, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants