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

[6.4.0] Add --incompatible_merge_fixed_and_default_shell_env #19319

Conversation

fmeum
Copy link
Collaborator

@fmeum fmeum commented Aug 24, 2023

With the new flag, Starlark actions that specify both env and use_default_shell_env will no longer have env ignored. Instead, the values of env will override the default shell environment.

This allows Starlark actions to both pick up user-configured variables such as PATH from the shell environment as well as set variables to fixed values required for the action, e.g., variables provided by the C++ toolchain.

Rationale for having env override the default shell env: The rules know best which values they have to set specific environment variables to in order to successfully execute an action, so a situation where users break an action by a globally applied --action_env is prevented. If users really do have to be able to modify an environment variables fixed by the rule, the rule can always make this configurable via an attribute.

Work towards #5980
Fixes #12049

Closes #18235.

Commit d1fdc53

PiperOrigin-RevId: 559506535
Change-Id: I7ec6ae17b076bbca72fab8394f3a8b3e4f9ea9d8

Fixes #19312

@fmeum fmeum marked this pull request as ready for review August 24, 2023 08:38
@fmeum fmeum requested a review from a team as a code owner August 24, 2023 08:38
@Pavank1992 Pavank1992 added team-Rules-CPP Issues for C++ rules awaiting-review PR is awaiting review from an assigned reviewer labels Aug 24, 2023
@brentleyjones brentleyjones changed the title Add --incompatible_merge_fixed_and_default_shell_env [6.4.0] Add --incompatible_merge_fixed_and_default_shell_env Aug 24, 2023
@fmeum fmeum added team-Rules-API API for writing rules/aspects: providers, runfiles, actions, artifacts and removed team-Rules-CPP Issues for C++ rules labels Aug 24, 2023
@fmeum fmeum requested a review from comius August 24, 2023 12:30
@fmeum
Copy link
Collaborator Author

fmeum commented Aug 24, 2023

@comius The cherry pick didn't apply cleanly and I had to make minor modifications (a new if branch). Let me know if you think that this is too complex for a cherry pick.

@iancha1992 iancha1992 enabled auto-merge (squash) August 24, 2023 17:06
Copy link
Contributor

@comius comius left a comment

Choose a reason for hiding this comment

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

Can you also cherry-pick d5a963e?
That's where the actionEnvironment was removed from SpawnAction. I think cherry-picking is safer than adding an if branch. I suspect everything is fine, but tests after cherry-pick will show if there are any users.

@fmeum
Copy link
Collaborator Author

fmeum commented Aug 29, 2023

@iancha1992 If cherry-picking d5a963e isn't straightforward let me know and I can try.

@iancha1992
Copy link
Member

iancha1992 commented Aug 29, 2023

@fmeum There's conflicts when d5a963e cherry-pick was attempted.

  1. src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
    In release-6.4.0 branch currently, public SpawnAction build(ActionOwner owner, BuildConfigurationValue configuration) returns
return buildSpawnAction(
          owner, commandLines, configuration.getCommandLineLimits(), configuration, env);

but we expected below before the cherry-pick

return buildSpawnAction(owner, commandLines, configuration, env);

Also,
SpawnAction buildForActionTemplate(ActionOwner owner) returns in release-6.4.0

return buildSpawnAction(
          owner,
          result.build(),
          CommandLineLimits.UNLIMITED,
          null,
          ActionEnvironment.create(environment, inheritedEnvironment));

but we expected below before the cherry-pick

return buildSpawnAction(
          owner,
          result.build(),
          null,
          ActionEnvironment.create(environment, inheritedEnvironment));

Also, in the release-6.4.0 branch, we have

@CanIgnoreReturnValue
    private Builder setJavaExecutable(
        PathFragment javaExecutable,
        Artifact deployJar,
        NestedSet<String> jvmArgs,
        String... launchArgs) {
      this.executableArgs =
          CustomCommandLine.builder()
              .addPath(javaExecutable)
              .addAll(jvmArgs)
              .addAll(ImmutableList.copyOf(launchArgs));
      this.executableArg = null;
      toolsBuilder.add(deployJar);
      this.isShellCommand = false;
      return this;
    }

but we expected below to not be there before the cherry-pick
this.isShellCommand = false;

  1. src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java
    In public void testWelcomeArtifactIsInput() function, in the current release-6.4.0 branch, we have:
    Iterable<Artifact> inputs = copyFromWelcomeToDestination.getInputs().toList();

We expected:
ImmutableList<Artifact> inputs = copyFromWelcomeToDestination.getInputs().toList();

cc: @bazelbuild/triage

@fmeum
Copy link
Collaborator Author

fmeum commented Aug 29, 2023

Thanks for trying!

@comius Looks like the original cherry-pick will be cleaner even though it has an additional branch. What do you think?

@comius
Copy link
Contributor

comius commented Sep 6, 2023

Thanks for trying!

@comius Looks like the original cherry-pick will be cleaner even though it has an additional branch. What do you think?

Yes, probably.

Is there a guarantee that actionEnvironment is always null in 6.4.0 branch? I think that's the case, right?

@comius comius added awaiting-user-response Awaiting a response from the author and removed awaiting-review PR is awaiting review from an assigned reviewer labels Sep 6, 2023
With the new flag, Starlark actions that specify both `env` and `use_default_shell_env` will no longer have `env` ignored. Instead, the values of `env` will override the default shell environment.

This allows Starlark actions to both pick up user-configured variables such as `PATH` from the shell environment as well as set variables to fixed values required for the action, e.g., variables provided by the C++ toolchain.

Rationale for having `env` override the default shell env: The rules know best which values they have to set specific environment variables to in order to successfully execute an action, so a situation where users break an action by a globally applied `--action_env` is prevented. If users really do have to be able to modify an environment variables fixed by the rule, the rule can always make this configurable via an attribute.

Work towards bazelbuild#5980
Fixes bazelbuild#12049

Closes bazelbuild#18235.

PiperOrigin-RevId: 559506535
Change-Id: I7ec6ae17b076bbca72fab8394f3a8b3e4f9ea9d8
auto-merge was automatically disabled September 6, 2023 11:03

Head branch was pushed to by a user without write access

@fmeum fmeum force-pushed the 19312-incompatible_merge_fixed_and_default_shell_env branch from 463f83a to 988bca1 Compare September 6, 2023 11:03
@fmeum
Copy link
Collaborator Author

fmeum commented Sep 6, 2023

@comius Looks like it. I pushed a new commit that removes it, if all tests pass with that the cherry-pick will be even cleaner.

@comius comius added awaiting-PR-merge PR has been approved by a reviewer and is ready to be merge internally and removed awaiting-user-response Awaiting a response from the author labels Sep 6, 2023
@iancha1992 iancha1992 removed the awaiting-PR-merge PR has been approved by a reviewer and is ready to be merge internally label Sep 6, 2023
@iancha1992 iancha1992 enabled auto-merge (squash) September 6, 2023 17:44
@iancha1992 iancha1992 added the awaiting-user-response Awaiting a response from the author label Sep 7, 2023
@iancha1992
Copy link
Member

@fmeum can you please resolve the conflicts? Thanks!

auto-merge was automatically disabled September 8, 2023 21:13

Head branch was pushed to by a user without write access

@fmeum
Copy link
Collaborator Author

fmeum commented Sep 8, 2023

@iancha1992 Done

@iancha1992 iancha1992 enabled auto-merge (squash) September 8, 2023 21:26
@iancha1992 iancha1992 merged commit 6052b8b into bazelbuild:release-6.4.0 Sep 8, 2023
1 check passed
@iancha1992 iancha1992 removed the awaiting-user-response Awaiting a response from the author label Sep 8, 2023
@fmeum fmeum deleted the 19312-incompatible_merge_fixed_and_default_shell_env branch September 10, 2023 09:19
copybara-service bot pushed a commit that referenced this pull request Oct 19, 2023
Baseline:  0f231ac

Release Notes:

+ Support multiple remote execution digest functions (#19042)
+ Release 6.4.0 remote (#18959)
+ Move BazelFileSystemModule into bazel package (#19043)
+ Fix a bug where frozen targets list was mutated while expanding env attribute (#19053)
+ Mark isolated extension usages as experimental (#19065)
+ Add the remote_require_cached flag (#19075)
+ Advertise CcInfo from cc_import (#19086) (#19088)
+ Update java_tools version to 12.6 (#19092)
+ Set the digest_function field as part of all relevant gRPC requests (#19049)
+ Merge `use_repo` buildifier fixups into a single command (#19134)
+ Ensure that extension unique names followed by `~` are prefix-free (#19164)
+ Lockfile updates & fixes (#19153)
+ Switch xcode_autoconf to use 'configure = True' (#19174)
+ Cherry pick Add a Starlark flag that allows disabling proguard. This will be useful for testing later. (#19179)
+ Update CODEOWNERS for 6.4.0 (#19194)
+ Friendlier error message for `bazel_dep`s without `version` (#19196)
+ Always check `$config_dependencies` visibility at use (#19197)
+ Add support for the BLAKE3 digest function (#19191)
+ Enable cc toolchain resolution when cross compiling to windows arm64. (#19198)
+ Ensure disk cache root exists (#19225)
+ Fix valid json when using jsonproto output in queries  with new `--ouput=streamed_jsonproto` implementation. (#19226)
+ Add toolchain type for Java bootstrap runtime (#19220)
+ Add Starlark implementation for several CcCommon methods. (#19076)
+ Rename `cc_test_wrapper` to `cc_test` (#19231)
+ Cherry-pick commits to fix a Windows issue (#19232)
+ Add support for more workspace boundary files to bash completion (#19281)
+ Use `debugPrint` instead of `str` for `fail` arguments (#19283)
+ Include name in `repr` of exported `rule`s (#19229)
+ Download `BazelRegistryJson` only once per registry (#19300)
+ Make module extension tag's `debugPrint` useful for error messages (#19285)
+ Intern repository mapping entries (#19293)
+ Add `additional_linker_inputs` option to `cc_library` rule (#19264)
+ Do not rerun module extensions when only imports or locations change (#19284)
+ Add profiling for Bzlmod operations (#19313)
+ Retry on javax.net.ssl.SSLException ... BAD_DECRYPT (#19346)
+ Fetch `RepoSpecs` in parallel (#19354)
+ Make `MODULE.bazel.lock` deterministic (#19370)
+ Ensure lockfile is updated after reset to pre-build state (#19371)
+ build-runfiles: remove temporary file prior to creating it (#19386)
+ Always fail on unknown attributes (#19404)
+ Ignore Starlark options on commands with `allowResidue = False` (#19417)
+ Separate PackageSpecificationProvider from its target (PackageGroupConfiguredTarget) (#19420)
+ Expose PackageSpecificationInfo provider as a top level symbol (#19422)
+ Revert "Report remote execution messages as events" (#19415)
+ [6.4] Add --incompatible_disable_objc_library_transition (#19393)
+ Create .bazelversion to address postsubmit timeout issues (#19435)
+ Add `contains` method inside `PackageSpecificationProvider`  (#19425)
+ Wrong include path to Clang 16 on Windows (#19430)
+ Simplify release notes by just printing the first line of the commit … (#19448)
+ Remove PackageGroupConfiguredTarget.isAvailableFor function (#19444)
+ Remove default -s flag from macOS libtool invocation (#19454)
+ Turn off lockfile feature by default (#19462)
+ Take the no-remote-exec tag into account when computing the action salt (#19457)
+ Add `--incompatible_merge_fixed_and_default_shell_env` (#19319)
+ Improve error when a label is provided in `config_setting`'s `values` (#19484)
+ Mark tool inputs in the execution log. (#19483)
+ Add visionOS support (#19436)
+ Intern empty `Depset`s (#19443)
+ Do not allow applicable_licenses on platform. (#19426)
+ Cherry pick Bzlmod fixes (#19494)
+ Optimize classpath pre-processing in java_stub_template.txt (#19491)
+ Add output name to CacheNotFoundException (#19452)
+ feat: add option to exit early if analysis cache is discarded (#19503)
+ Cherry pick platform dependent lockfile (#19498)
+ Print Passed and Failed methods in detailed test summary (#19505)
+ Add formatted timestamp entries to volatile workspace status file. (#19499)
+ Write an explicit line ending to the lockfile (#19519)
+ Only use `/showIncludes` if supported (#19521)
+ Also apply `NestedSet` optimizations to `Depset` (#19492)
+ Add diff_against_dynamic_baseline option to experimental_output_direc… (#19514)
+ Update java_tools to v12.7 (#19522)
+ Advertise CcInfo from cc_proto_library (#19534)
+ Update unknown Xcode version error message and provide an environment variable to force re-evaluation (#19540)
+ Print dep chain leading to a module that is in error (#19543)
+ Show fetch progress for the `mod` command (#19542)
+ Revert "Switch xcode_autoconf to use 'configure = True' (#19174)" (#19550)
+ Explain the use of `str(Label(...))` in the docs (#19554)
+ Add `--consistent_labels` flag to all query commands (#19567)
+ Inject builtin modules at the end of the MODULE.bazel file (#19573)
+ Disable bzlmod_query_test for RBE build (#19585)
+ Clear runfiles environment variables for `bazel run` (#19606)
+ cc_library: propagate data dependencies via implementation_deps. (#19590)
+ Error on potential unsupported `/showIncludes` lines (#19611)
+ Use case-insensitive comparison for Windows paths in `runfiles.bash`  (#19626)
+ Show test labels in summaries in display form (#19625)
+ Remove stale extension entries from lockfile (#19683)
+ Keep leading zero in formatted date (#19694)
+ Bzlmod lockfile: fix pretty printing for attributes  (#19691)
+ MODULE.bazel.lock file contains user specific paths (#19698)
+ Consider RCs equivalent to release for `bazel_compatibility` (#19689)
+ Use `Label` in `@bazel_tools//tools/jdk` macros (#19675)
+ Remove stale extension entries from lockfile if module order changes (#19730)
+ Update rules_java 5.5.1 (#19701)
+ Fix Java compilation for jdk21 (#19735)
+ Fix output materialized as symlink when building without the bytes. (#19739)
+ Make lockfile's `RepoSpec` attributes more readable (#19748)
+ Merge rule and aspect validation output groups (#19745)
+ Fix handling of non-ASCII characters in archive entry file names (#19765)
+ Raise an early error on invalid labels in transitions inputs/outputs (#19764)
+ Handle synthetic method parameters entries that don't have names (#19758)
+ Bazel release process: Fix push justification. (#19768)
+ Flip --experimental_cc_implementation_deps (#19751)
+ Add blake3 NEON instructions on linux arm64 (#19804)
+ Fix crash when `environ` contains duplicate entries (#19827)
+ Bump c++ standard to c++14 per default (#19794)
+ Collect debug info context from implementation deps (#19836)
+ Fix unconditional Skyframe invalidation with --lockfile_mode=… (#19848)

Acknowledgements:

This release contains contributions from many people at Google, as well as Andreas Herrmann, bazel.build machine account, Brentley Jones, buildbreaker2021, Chirag Ramani, David Ostrovsky, Ed Schouten, Fabian Meumertzheim, George Gensure, Greg, John Laxson, Julio Merino, Keith Smiley, Matt Mackay, Mauricio G, NelsonLi0701, nglevin, Nicholas Junge, oquenchil, Orion Hodson, Roman Salvador, Ted Kaplan, Thi Doan, Thi Don, Tyler Williams, Xùdōng Yáng.
tdibattista pushed a commit to SibrosTech/bazel that referenced this pull request Oct 19, 2023
Baseline:  0f231ac

Release Notes:

+ Support multiple remote execution digest functions (bazelbuild#19042)
+ Release 6.4.0 remote (bazelbuild#18959)
+ Move BazelFileSystemModule into bazel package (bazelbuild#19043)
+ Fix a bug where frozen targets list was mutated while expanding env attribute (bazelbuild#19053)
+ Mark isolated extension usages as experimental (bazelbuild#19065)
+ Add the remote_require_cached flag (bazelbuild#19075)
+ Advertise CcInfo from cc_import (bazelbuild#19086) (bazelbuild#19088)
+ Update java_tools version to 12.6 (bazelbuild#19092)
+ Set the digest_function field as part of all relevant gRPC requests (bazelbuild#19049)
+ Merge `use_repo` buildifier fixups into a single command (bazelbuild#19134)
+ Ensure that extension unique names followed by `~` are prefix-free (bazelbuild#19164)
+ Lockfile updates & fixes (bazelbuild#19153)
+ Switch xcode_autoconf to use 'configure = True' (bazelbuild#19174)
+ Cherry pick Add a Starlark flag that allows disabling proguard. This will be useful for testing later. (bazelbuild#19179)
+ Update CODEOWNERS for 6.4.0 (bazelbuild#19194)
+ Friendlier error message for `bazel_dep`s without `version` (bazelbuild#19196)
+ Always check `$config_dependencies` visibility at use (bazelbuild#19197)
+ Add support for the BLAKE3 digest function (bazelbuild#19191)
+ Enable cc toolchain resolution when cross compiling to windows arm64. (bazelbuild#19198)
+ Ensure disk cache root exists (bazelbuild#19225)
+ Fix valid json when using jsonproto output in queries  with new `--ouput=streamed_jsonproto` implementation. (bazelbuild#19226)
+ Add toolchain type for Java bootstrap runtime (bazelbuild#19220)
+ Add Starlark implementation for several CcCommon methods. (bazelbuild#19076)
+ Rename `cc_test_wrapper` to `cc_test` (bazelbuild#19231)
+ Cherry-pick commits to fix a Windows issue (bazelbuild#19232)
+ Add support for more workspace boundary files to bash completion (bazelbuild#19281)
+ Use `debugPrint` instead of `str` for `fail` arguments (bazelbuild#19283)
+ Include name in `repr` of exported `rule`s (bazelbuild#19229)
+ Download `BazelRegistryJson` only once per registry (bazelbuild#19300)
+ Make module extension tag's `debugPrint` useful for error messages (bazelbuild#19285)
+ Intern repository mapping entries (bazelbuild#19293)
+ Add `additional_linker_inputs` option to `cc_library` rule (bazelbuild#19264)
+ Do not rerun module extensions when only imports or locations change (bazelbuild#19284)
+ Add profiling for Bzlmod operations (bazelbuild#19313)
+ Retry on javax.net.ssl.SSLException ... BAD_DECRYPT (bazelbuild#19346)
+ Fetch `RepoSpecs` in parallel (bazelbuild#19354)
+ Make `MODULE.bazel.lock` deterministic (bazelbuild#19370)
+ Ensure lockfile is updated after reset to pre-build state (bazelbuild#19371)
+ build-runfiles: remove temporary file prior to creating it (bazelbuild#19386)
+ Always fail on unknown attributes (bazelbuild#19404)
+ Ignore Starlark options on commands with `allowResidue = False` (bazelbuild#19417)
+ Separate PackageSpecificationProvider from its target (PackageGroupConfiguredTarget) (bazelbuild#19420)
+ Expose PackageSpecificationInfo provider as a top level symbol (bazelbuild#19422)
+ Revert "Report remote execution messages as events" (bazelbuild#19415)
+ [6.4] Add --incompatible_disable_objc_library_transition (bazelbuild#19393)
+ Create .bazelversion to address postsubmit timeout issues (bazelbuild#19435)
+ Add `contains` method inside `PackageSpecificationProvider`  (bazelbuild#19425)
+ Wrong include path to Clang 16 on Windows (bazelbuild#19430)
+ Simplify release notes by just printing the first line of the commit … (bazelbuild#19448)
+ Remove PackageGroupConfiguredTarget.isAvailableFor function (bazelbuild#19444)
+ Remove default -s flag from macOS libtool invocation (bazelbuild#19454)
+ Turn off lockfile feature by default (bazelbuild#19462)
+ Take the no-remote-exec tag into account when computing the action salt (bazelbuild#19457)
+ Add `--incompatible_merge_fixed_and_default_shell_env` (bazelbuild#19319)
+ Improve error when a label is provided in `config_setting`'s `values` (bazelbuild#19484)
+ Mark tool inputs in the execution log. (bazelbuild#19483)
+ Add visionOS support (bazelbuild#19436)
+ Intern empty `Depset`s (bazelbuild#19443)
+ Do not allow applicable_licenses on platform. (bazelbuild#19426)
+ Cherry pick Bzlmod fixes (bazelbuild#19494)
+ Optimize classpath pre-processing in java_stub_template.txt (bazelbuild#19491)
+ Add output name to CacheNotFoundException (bazelbuild#19452)
+ feat: add option to exit early if analysis cache is discarded (bazelbuild#19503)
+ Cherry pick platform dependent lockfile (bazelbuild#19498)
+ Print Passed and Failed methods in detailed test summary (bazelbuild#19505)
+ Add formatted timestamp entries to volatile workspace status file. (bazelbuild#19499)
+ Write an explicit line ending to the lockfile (bazelbuild#19519)
+ Only use `/showIncludes` if supported (bazelbuild#19521)
+ Also apply `NestedSet` optimizations to `Depset` (bazelbuild#19492)
+ Add diff_against_dynamic_baseline option to experimental_output_direc… (bazelbuild#19514)
+ Update java_tools to v12.7 (bazelbuild#19522)
+ Advertise CcInfo from cc_proto_library (bazelbuild#19534)
+ Update unknown Xcode version error message and provide an environment variable to force re-evaluation (bazelbuild#19540)
+ Print dep chain leading to a module that is in error (bazelbuild#19543)
+ Show fetch progress for the `mod` command (bazelbuild#19542)
+ Revert "Switch xcode_autoconf to use 'configure = True' (bazelbuild#19174)" (bazelbuild#19550)
+ Explain the use of `str(Label(...))` in the docs (bazelbuild#19554)
+ Add `--consistent_labels` flag to all query commands (bazelbuild#19567)
+ Inject builtin modules at the end of the MODULE.bazel file (bazelbuild#19573)
+ Disable bzlmod_query_test for RBE build (bazelbuild#19585)
+ Clear runfiles environment variables for `bazel run` (bazelbuild#19606)
+ cc_library: propagate data dependencies via implementation_deps. (bazelbuild#19590)
+ Error on potential unsupported `/showIncludes` lines (bazelbuild#19611)
+ Use case-insensitive comparison for Windows paths in `runfiles.bash`  (bazelbuild#19626)
+ Show test labels in summaries in display form (bazelbuild#19625)
+ Remove stale extension entries from lockfile (bazelbuild#19683)
+ Keep leading zero in formatted date (bazelbuild#19694)
+ Bzlmod lockfile: fix pretty printing for attributes  (bazelbuild#19691)
+ MODULE.bazel.lock file contains user specific paths (bazelbuild#19698)
+ Consider RCs equivalent to release for `bazel_compatibility` (bazelbuild#19689)
+ Use `Label` in `@bazel_tools//tools/jdk` macros (bazelbuild#19675)
+ Remove stale extension entries from lockfile if module order changes (bazelbuild#19730)
+ Update rules_java 5.5.1 (bazelbuild#19701)
+ Fix Java compilation for jdk21 (bazelbuild#19735)
+ Fix output materialized as symlink when building without the bytes. (bazelbuild#19739)
+ Make lockfile's `RepoSpec` attributes more readable (bazelbuild#19748)
+ Merge rule and aspect validation output groups (bazelbuild#19745)
+ Fix handling of non-ASCII characters in archive entry file names (bazelbuild#19765)
+ Raise an early error on invalid labels in transitions inputs/outputs (bazelbuild#19764)
+ Handle synthetic method parameters entries that don't have names (bazelbuild#19758)
+ Bazel release process: Fix push justification. (bazelbuild#19768)
+ Flip --experimental_cc_implementation_deps (bazelbuild#19751)
+ Add blake3 NEON instructions on linux arm64 (bazelbuild#19804)
+ Fix crash when `environ` contains duplicate entries (bazelbuild#19827)
+ Bump c++ standard to c++14 per default (bazelbuild#19794)
+ Collect debug info context from implementation deps (bazelbuild#19836)
+ Fix unconditional Skyframe invalidation with --lockfile_mode=… (bazelbuild#19848)

Acknowledgements:

This release contains contributions from many people at Google, as well as Andreas Herrmann, bazel.build machine account, Brentley Jones, buildbreaker2021, Chirag Ramani, David Ostrovsky, Ed Schouten, Fabian Meumertzheim, George Gensure, Greg, John Laxson, Julio Merino, Keith Smiley, Matt Mackay, Mauricio G, NelsonLi0701, nglevin, Nicholas Junge, oquenchil, Orion Hodson, Roman Salvador, Ted Kaplan, Thi Doan, Thi Don, Tyler Williams, Xùdōng Yáng.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-Rules-API API for writing rules/aspects: providers, runfiles, actions, artifacts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants