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

Add feature flags to ParcelOptions #9551

Merged
merged 17 commits into from
Mar 1, 2024
Merged

Conversation

marcins
Copy link
Contributor

@marcins marcins commented Feb 28, 2024

↪️ Pull Request

This PR is the first part of implementing #9539. It adds a strongly typed FeatureFlags to ParcelOptions, which are also available in PluginOptions.

Initially, this change also implemented the ability to set feature flags via .parcelrc, but this was removed as it was a) deemed initially unnecessary if CLI options are available, b) a philosophical shift in what .parcelrc is for, so now it's a lot smaller.

This change has an exampleFeature feature flag that doesn't get used in the code, but is mostly there to differentiate from an empty feature flags object, and to allow for some integration testing.

In the integration tests, it does appear that the RequestGraph correctly gets invalidated by feature flag changes because of invalidateOnOptionChange - however I'm not sure if that's only applying to transformations or other phases as well, I will validate this and follow up if required to ensure feature flags correctly invalidate other parts as well. Admittedly this is an area where I don't have a deep understanding.

A follow-up change will add support for setting feature flag values via CLI options.

💻 Examples

With trunk based development, feature flags will be used to merge changes to v2 that are not intended / ready for most people to use, but we want to test internally. This is as opposed to what might happen today which is a long running branch, and eventually merging when either ready, or behind some unstable options. See #9539 for more details.

🚨 Test instructions

There is an integration test.

✔️ PR Todo

  • Added/updated unit tests for this change
  • Filled out test instructions (In case there aren't any unit tests)
  • Included links to related issues/PRs

Copy link
Contributor

@mattcompiles mattcompiles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one bud

@marcins marcins merged commit 56e5f40 into v2 Mar 1, 2024
14 of 16 checks passed
@mischnic mischnic deleted the mszczepanski/add-feature-flag-system branch March 21, 2024 21:53
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.

3 participants