Description
The main() function in .github/actions/linux-packages/scripts/package.py has been flagged as a "Brain Method" by CodeScene - a function that knows too much and has too many responsibilities.
Current state
The function is approximately 180 lines long and handles:
- Input validation and normalisation
- Path handling and configuration
- Binary verification and permission management
- Licence file handling
- Man page processing
- Dependency list normalisation
- nFPM configuration file generation
- Package building across multiple formats
- Error handling and retry logic
- Post-build package verification
Impact
This complexity makes the function:
- Difficult to test in isolation
- Hard to maintain and modify
- Prone to bugs when changes are made
- Challenging for new contributors to understand
Recommendation
Consider refactoring by extracting logical groups of operations into focused helper functions, such as:
- Input validation and normalisation
- Path resolution and directory setup
- Binary preparation
- Content entry generation
- Package configuration creation
- Package building orchestration
References
Description
The
main()function in.github/actions/linux-packages/scripts/package.pyhas been flagged as a "Brain Method" by CodeScene - a function that knows too much and has too many responsibilities.Current state
The function is approximately 180 lines long and handles:
Impact
This complexity makes the function:
Recommendation
Consider refactoring by extracting logical groups of operations into focused helper functions, such as:
References