Skip to content

A way to enforce composite's rules without using incrementalΒ #61085

Open
@maschwenk

Description

@maschwenk

πŸ” Search Terms

composite
incremental
composite without incremental
turborepo caching

βœ… Viability Checklist

⭐ Suggestion

Sometimes when debugging performance issues with badly specified includess globs, the composite flag can be really helpful because it will enumerate all the code that you are referencing and need to put in the includes, and then you can add paths incrementally instead of just having something like **/*.ts.

There are some reasons why I'm a little bit uneasy about enabling composite and incremental, mainly that we use Turborepo to cache package builds, and I'm a little bit worried about having two different caching mechanisms.

You can see this issue:

To get an idea of why it can be a problem.

Similar to how --isolatedDeclarations enforces certain rules without actually affecting build output, it'd be nice if there was a way to use composite's rules without being forced to set incremental too.

πŸ“ƒ Motivating Example

Maybe something like:

--enforceCompositeRules

πŸ’» Use Cases

Right now there's no real workaround, composite and incremental have to go together. You can have incremental without composite but you run the risk of having caching bugs.

In CI one could probably just run a typecheck with the flags turned on manually I suppose, and not use it in other contexts

Metadata

Metadata

Assignees

No one assigned

    Labels

    In DiscussionNot yet reached consensusSuggestionAn idea for TypeScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions