Skip to content

Conversation

@Petrus-Han
Copy link
Collaborator

📋 Description

This PR introduces a feature-based architecture for version-specific configurations and improves CI testing capabilities.

✨ Changes

1. Feature-Based Architecture (modules/features/)

  • Added feature registry and auto-discovery system for version-specific config
  • Implemented semantic version comparison and constraint checking
  • New features for 3.7.0+:
    • Trigger Worker configuration
    • Plugin Metrics configuration
    • External Prometheus integration

2. Docker Registry Secret Generator

  • Added generate-image-repo-secret.sh for creating Kubernetes imagePullSecrets
  • Updated .gitignore with more precise sensitive file patterns
  • Added utils/secrets.py for secret key generation

3. CI Improvements

  • Added module import validation (all 20+ modules)
  • Added feature tests (test_features.py)
  • Added shell script validation with shellcheck
  • Updated GitHub Actions to v4/v5 versions
  • Added CI integration test plan documentation

4. Documentation

  • Updated README.md and README.zh.md with secret generator instructions
  • Added docs/CI-INTEGRATION-PLAN.md for future integration test roadmap

🔧 Type of Change

  • New feature (non-breaking change which adds functionality)
  • CI/CD improvement
  • Documentation update

✅ Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my feature works

🧪 Testing

  • CI passes with module import validation
  • Feature tests validate version parsing, comparison, and feature registry
  • Shell scripts validated with shellcheck

📝 Notes

  • test_services.py and test_s3_config.py are skipped in CI (require interactive input)
  • Will be enabled after implementing --ci mode (tracked in docs/CI-INTEGRATION-PLAN.md)

Introduces a feature registry and auto-discovery system under modules/features/ to manage version-specific configuration logic. Adds base classes and decorators for feature registration, semantic version comparison, and applies features in global, infrastructure, plugins, and services modules. Implements features for trigger worker, plugin metrics, and external Prometheus (3.7.0+). Updates i18n translations and documentation to reflect the new architecture and configuration options. Includes tests for feature registration, version parsing, and applicability.
Added generate-image-repo-secret.sh for interactively creating Kubernetes imagePullSecret for private Docker registries. Updated .gitignore to better exclude sensitive files. Added utils/secrets.py for secret key generation. Updated README files with instructions for using the new secret generator script.
- Add test job to validate all Python module imports
- Add feature tests, services tests, and S3 config tests
- Add shell script validation with shellcheck
- Update actions to v4/v5 versions
- Add CI integration test plan documentation
test_services.py and test_s3_config.py require interactive input,
skip them until --ci mode is implemented
@Petrus-Han Petrus-Han self-assigned this Jan 6, 2026
@Petrus-Han
Copy link
Collaborator Author

@sorphwer  Please review and let me know if you’d like any changes—happy to iterate.

- Add set_ci_mode() and is_ci_mode() to config.py
- Add --ci flag to generate-values-prd.py
- Update utils/prompts.py to return defaults in CI mode
- Update i18n/language.py to use English in CI mode
- Update utils/downloader.py to use latest version in CI mode
- Update version_manager.py to avoid variable shadowing
- Enable CI mode in test files for non-interactive testing
@Petrus-Han
Copy link
Collaborator Author

the feature test function has been added.

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