-
Notifications
You must be signed in to change notification settings - Fork 119
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
Platform standardization #288
Comments
Even though I'm a fan of strong typing and proper schemas, I'm not convinced that doing the above is feasible. What if I want to use the protocol to build something on a Windows system? Should we also provide a There are also some implementation level concerns about such an approach. A scheduler/worker might use an older schema of the protocol, meaning it ends up ignoring these options. That would cause the action to be routed incorrectly. If the issue is:
Then this is something that should be discussed with the Bazel maintainers. Maybe they can patch up platform(
name = "linux_x86_64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
],
remote_execution_properties = """
properties: {
name: "arch"
value: "x86_64"
}
properties: {
name: "os"
value: "ubuntu"
}
properties: {
name: "os_version"
value: "jammy"
}
properties: {
name: "required_network"
value: "${tags_of_the_target.requires_network}" <----- Notice this here.
}
""",
) |
Currently, folks are leveraging the generic key-value in Platform.properties to attach various forms of metadata to an Action execution. This could be as simple as requesting for a specific container image to run the action on, to a whole encoded JSON to give special instructions to the RBE worker.
Without taking away Platform.properties, I think we should try to consolidate some of these common use cases in specific fields. Clients could decide to set these specific fields to request a specific feature on the RBE worker.
For example: today, Bazel supports several tags https://bazel.build/reference/be/common-definitions#common-attributes. In which, we have:
requires-network
andblock-network
requires-fakeroot
Instead of deciding on a specific "key" to use for these Platform properties, let's add concrete fields for the client and server to both agree on using
The text was updated successfully, but these errors were encountered: