Support for Modular Configuration Files in Codecov
Summary
Currently, Codecov supports only a single configuration file, codecov.yaml, for the entire repository. For our larger customers with extensive repositories, this presents a limitation. These organizations often have massive, complex codebases that would benefit from the ability to split configuration into multiple modules within the repository. By enabling each module to have its own set of configurations, teams can manage their sections independently and streamline the coverage management process.
Proposed Solution
- Introduce support for modular configuration files in Codecov.
- Allow repositories to define multiple configuration files within designated subdirectories (e.g.,
module1/codecov.yaml,module2/codecov.yaml). - Ensure that Codecov can merge or respect these module-specific configurations alongside or in place of the main codecov.yaml file.
Benefits
- Enhanced flexibility and scalability for large codebases.
- Independent module management, enabling teams to tailor configurations without interfering with the primary repository settings.
- Improved maintainability and clarity for complex projects.
Considerations
- Define clear rules for conflict resolution when multiple configuration files are present.
- Ensure backward compatibility for existing projects that rely solely on the primary codecov.yaml.
- Provide documentation and examples for users on how to structure and utilize modular configuration files effectively.
Implementing this feature would provide substantial value to organizations with large, modular codebases and improve the overall user experience in managing Codecov configurations at scale.
This is a feature request, and a quite large one. As such, it will need to go through a product definition, scoping, and prioritization process.
@rohan-at-sentry to take next steps of setting up kickoff call and initial product process.
https://github.com/codecov/engineering-team/issues/3209 implementation ticket