Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Projects" for Monorepos in Codecov #612

Open
vlad-ko opened this issue Dec 17, 2024 · 1 comment
Open

"Projects" for Monorepos in Codecov #612

vlad-ko opened this issue Dec 17, 2024 · 1 comment
Labels
Area: General UX Issues with general UX Feedback For gathering customer feedback Medium Medium Priority Issues (to be fixed or re-evaluated in 3 months Waiting for: Product Owner

Comments

@vlad-ko
Copy link

vlad-ko commented Dec 17, 2024

Context and Problem Statement

Currently, Codecov enforces a 1:1 mapping between a repository and Codecov’s reporting and configuration structure. This rigid model does not scale well for larger, enterprise customers who work with monorepos. In many cases:

  • Monorepos contain multiple, logically distinct projects worked on by separate teams.
  • Each project might use different programming languages, CI providers, and workflows.
  • Teams often require isolated reporting, settings, and access controls for their specific parts of the monorepo.

This inflexibility limits Codecov’s ability to accommodate complex monorepo structures and creates challenges for customers in terms of organization, visibility, and configuration.


Proposed Solution

Introduce a "Projects" concept within Codecov that allows users to:

  1. Define Projects Within a Monorepo

    • Customers can create multiple "projects" inside a single repository.
    • Each project can be associated with specific parts of the codebase (e.g., specific directories or modules).
  2. Flexible Reporting

    • Coverage reporting can be split by project, enabling teams to view and analyze results specific to their scope of work.
    • Reports can be generated and uploaded separately for each project (e.g., from different CI providers).
  3. Custom Configuration and Access Control

    • Unique settings can be applied to each project.
    • Access control can be scoped to teams responsible for a specific project, ensuring separation of concerns.

Goals and Benefits

  • Improved Flexibility: Customers can logically separate code coverage reporting, even if all the code lives in the same monorepo.
  • Enhanced Access Management: Teams can have access only to their relevant projects and reports.
  • Better Integration: Accommodates unique CI setups, workflows, and tooling for different modules within a monorepo.
  • Separation of Concerns: Allows better isolation of coverage reports, settings, and analysis for distinct parts of a monorepo.

Summary

By introducing the concept of projects within Codecov, customers gain the flexibility to treat specific parts of a large monorepo as independent entities. This improves coverage visibility, configuration flexibility, and access control while addressing the unique challenges faced by teams working within complex monorepos.

Note: while some granularity can be achieved via flags and components, it is still a limiting factor, when it comes to larger repos and features such as modular config and access control.

@covecod covecod bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 Dec 17, 2024
@vlad-ko vlad-ko added Area: General UX Issues with general UX and removed Waiting for: Product Owner labels Dec 17, 2024
@covecod covecod bot removed the status in GitHub Issues with 👀 Dec 17, 2024
@vlad-ko vlad-ko added Feedback For gathering customer feedback Medium Medium Priority Issues (to be fixed or re-evaluated in 3 months labels Dec 17, 2024
@covecod covecod bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 Dec 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: General UX Issues with general UX Feedback For gathering customer feedback Medium Medium Priority Issues (to be fixed or re-evaluated in 3 months Waiting for: Product Owner
Projects
Status: Waiting for: Product Owner
Development

No branches or pull requests

2 participants