-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Add command line flag to enable experimental features #8665
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
base: main
Are you sure you want to change the base?
Add command line flag to enable experimental features #8665
Conversation
@@ -130,6 +130,11 @@ struct TestEventStreamOptions: ParsableArguments { | |||
@Option(name: .customLong("attachments-path"), | |||
help: "Path where attachments should be written (Swift Testing only). This path must be an existing directory the current user can write to. If not specified, any attachments created during testing are discarded.") | |||
var attachmentsPath: AbsolutePath? | |||
|
|||
/// If experimental features should be enabled.. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit
/// If experimental features should be enabled.. | |
/// If experimental features should be enabled. |
/// If experimental features should be enabled.. | ||
@Option(name: .customLong("enable-experimental-features"), | ||
help: .private) | ||
var enableExperimentalFeatures: Bool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Offline, I made a suggestion that we scope this flag more narrowly, to only apply to one feature (singular instead of plural) and accept the name of that feature as an argument. The problem with having a single, catch-all “enable all the experimental features” flag is the next time someone adds some new experimental thing, if someone was already passing the flag then they will break.
/// Which testing experimental features should be enabled | ||
@Option(name: .customLong("enable-experimental-testing-feature"), | ||
help: .private) | ||
var enableExperimentalFeatures: String? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now that this has changed to be a singular, rather than plural, setting, I think the value should be an Array
of String
to allow for more than one experimental testing feature flag to be passed. I don't recall how exactly you do that using ArgumentParser
but I believe there's a way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For example, to allow someone to pass
--enable-experimental-testing-feature FeatureA --enable-experimental-testing-feature FeatureB
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will take a look
When this is set to merge, we'll need to regenerate the CLI docs for swift test that we recently added. Happy to do that, since it's a bit of messy process right now. Just wanted to call it out. /cc @bripeticca |
Add command line flag to enable experimental features
Motivation:
In order to support experimental features in Swift Testing we need a cli flag to enable them.
Modifications:
Added a command line flag called
enable-experimental-testing-feature
which can be used to enable specific Swift Testing experimental features.--enable-experimental-testing-feature <FeatureName>
Result:
Users will be able to specify the
enable-experimental-testing-feature
flag when running tests in the CLI to enable specific experimental Swift Testing features.