feat: replace bash integration test script with Python version#77
Conversation
There was a problem hiding this comment.
Pull request overview
This PR replaces the bash-based integration test script (integration_test.sh) with a Python implementation (integration_test.py), modernizing the build infrastructure while maintaining the same functionality for building SCORE modules and tracking warning counts.
Changes:
- Removed the 356-line bash script and replaced it with a 393-line Python script
- Updated the GitHub Actions workflow to invoke the Python script instead of the bash script
- Maintained all existing functionality including module building, warning/deprecation counting, and build summary generation
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| scripts/integration_test.sh | Complete removal of the bash-based integration test script |
| scripts/integration_test.py | New Python implementation providing the same integration test functionality with improved maintainability |
| .github/workflows/reusable_integration-build.yml | Updated workflow to call the Python script instead of the bash script |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
The created documentation from the pull request is available at: docu-html |
…afety Refactored codebase based on review findings to improve maintainability, type safety, and code organization: - Reorganized directory structure: moved tools/ → scripts/known_good/ - Created proper package structure with __init__.py files - Extracted build configuration to external JSON file (build_config.json) - Introduced dataclass models for better type safety: * BuildModuleConfig for build configuration * Module for repository module metadata * KnownGood for known_good.json structure - Separated concerns into dedicated model files: * scripts/models/build_config.py * scripts/known_good/models/module.py * scripts/known_good/models/known_good.py - Refactored all scripts to use KnownGood dataclass: * integration_test.py * override_known_good_repo.py * update_module_latest.py * update_module_from_known_good.py * known_good_to_workspace_metadata.py - Removed duplicate functions (load_modules, load_known_good, write_known_good) - Moved timestamp update logic into KnownGood.write() method - Improved exception handling to catch SystemExit from validation errors - Removed unused get_module_info.py - Eliminated sys.path.insert usage through proper package imports All functionality preserved while improving code quality and type correctness.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 21 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
scripts/integration_test.py:1
- This line attempts to access the hash from the original known_good object, but at line 142, the hash has already been modified. This means old_hash will always equal the new hash. Store the original hash before modifying it at line 142 to correctly display the old -> new transition.
#!/usr/bin/env python3
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…se-score#77) - Reorganized directory structure: moved tools/ → scripts/known_good/ - Created proper package structure with __init__.py files - Extracted build configuration to external JSON file (build_config.json) - Introduced dataclass models for better type safety: * BuildModuleConfig for build configuration * Module for repository module metadata * KnownGood for known_good.json structure - Separated concerns into dedicated model files: * scripts/models/build_config.py * scripts/known_good/models/module.py * scripts/known_good/models/known_good.py - Refactored all scripts to use KnownGood dataclass: * integration_test.py * override_known_good_repo.py * update_module_latest.py * update_module_from_known_good.py * known_good_to_workspace_metadata.py - Removed duplicate functions (load_modules, load_known_good, write_known_good) - Moved timestamp update logic into KnownGood.write() method - Improved exception handling to catch SystemExit from validation errors - Removed unused get_module_info.py - Eliminated sys.path.insert usage through proper package imports All functionality preserved while improving code quality and type correctness.
No description provided.