This document explains the new CI requirements for geosPythonPackages contributors to ensure compatibility with GEOS.
Starting now, all PRs to geosPythonPackages MUST pass GEOS integration testing before they can be merged.
- ✅ Ensure standard CI tests pass first (semantic check, build, lint, test)
- ✅ Add the
test-geos-integrationlabel to your PR (only after standard tests pass) - ✅ Wait for GEOS integration tests to pass
- ✅ Fix any issues if GEOS tests fail
The CI now follows this strict sequence:
- ✅ Semantic PR title check
- ✅ Build and install all packages
- ✅ Lint with yapf
- ✅ Test with pytest
- 🏷️ Check for
test-geos-integrationlabel - ❌ FAIL if label is missing
- ✅ PROCEED if label is present
- 🔗 Trigger GEOS CI with your branch
- ⏱️ Wait for GEOS tests to complete (15-30 minutes)
- ✅ PASS if GEOS tests succeed
- ❌ FAIL if GEOS tests fail
- ✅ VALID = Standard tests ✅ + Label ✅ + GEOS tests ✅
- ❌ INVALID = Any step fails
# Create your branch and make changes
git checkout -b fix/my-awesome-feature
# ... make changes ...
git push origin fix/my-awesome-feature- Don't add the label yet!
- Let the standard CI tests run first
- Fix any issues with:
- PR title formatting
- Build errors
- Lint issues
- Test failures
- Push fixes and wait for tests to pass
- Go to your PR page
- In the right sidebar, find "Labels"
- Add the label:
test-geos-integration - This triggers the GEOS integration sequence
- The workflow will automatically trigger GEOS CI
- You'll see progress in the "geosPythonPackages CI" workflow
- Wait for results (can take 15-30 minutes)
If GEOS integration fails:
- Check the workflow logs for details
- Fix the issues in your branch
- Push the fixes
- The process will restart from step 1
The GEOS integration test validates:
- ✅ geosPythonPackages can be installed by GEOS
- ✅ Key tools work:
preprocess_xml,format_xml,mesh-doctor - ✅ Python packages can be imported:
geos_utils,geos_mesh, etc. - ✅ XML preprocessing functionality works
- ✅ No API breaking changes
All requirements met:
- Standard CI tests passed
test-geos-integrationlabel present- GEOS integration tests passed
- Ready for review/merge
One or more requirements failed:
- Standard CI tests failed
- Label missing
- GEOS integration tests failed
- Cannot be merged
❌ Standard CI Tests → ⏸️ Label Check Skipped → ⏸️ GEOS Tests Skipped
Action: Fix your code first, don't add the label yet
✅ Standard CI Tests → ❌ Label Missing → ⏸️ GEOS Tests Skipped
Action: Add the test-geos-integration label
✅ Standard CI Tests → ✅ Label Present → 🔄 GEOS Tests Running
Action: Wait for GEOS tests to complete
✅ Standard CI Tests → ✅ Label Present → ❌ GEOS Tests Failed
Action: Fix the breaking changes, push updates
✅ Standard CI Tests → ✅ Label Present → ✅ GEOS Tests Passed → ✅ READY
Action: Proceed with normal code review
- 🚀 Faster Iteration: Fix basic issues first without expensive GEOS testing
- 💰 Cost Efficient: Only run GEOS CI when standard tests pass
- 🎯 Clear Sequence: Developers know exactly when to add the label
- 🛡️ Protected GEOS: No breaking changes reach GEOS
- 📈 Better Feedback: Clear status at each step
- ✅ Let standard CI pass completely before adding the label
- ✅ Fix all basic issues (build, lint, test) first
- ✅ Add the label only when standard tests are green
- ✅ Monitor the GEOS integration progress
- ✅ Fix GEOS-related issues promptly
- ❌ Add the label immediately when creating the PR
- ❌ Add the label while standard tests are still failing
- ❌ Ignore GEOS test failures
- ❌ Remove and re-add the label unnecessarily
- Check the workflow logs for specific error messages
- Look at the detailed documentation
- Ask in the GEOS-DEV team channels
You can manually trigger GEOS integration testing:
- Go to GEOS Actions
- Find "Test GEOS Integration from geosPythonPackages"
- Click "Run workflow" and specify your branch
| Step | Status | Next Action |
|---|---|---|
| 1. Standard CI | ❌ Failed | Fix code issues |
| 1. Standard CI | ✅ Passed | Add test-geos-integration label |
| 2. Label Check | ❌ Missing | Add the label |
| 2. Label Check | ✅ Present | Wait for GEOS tests |
| 3. GEOS Tests | 🔄 Running | Wait (15-30 min) |
| 3. GEOS Tests | ❌ Failed | Fix breaking changes |
| 3. GEOS Tests | ✅ Passed | Ready for review! |
Remember: The sequence is strictly enforced - standard tests MUST pass before GEOS integration testing begins!