GithubHelp home page GithubHelp logo

Comments (3)

siggisim avatar siggisim commented on June 15, 2024 2

On the remote side, this should theoretically be possible with a platform property - thanks for the feature request!

from buildbuddy.

qzmfranklin avatar qzmfranklin commented on June 15, 2024 1

Hi, thanks for the prompt and positive feedback. @sluongng @siggisim

Also thanks for reaching out via DM in slack. @sluongng

The question I was asked by @sluongng in slack was this: what use case for it do you have in mind?

TLDR: I don't think my specific use case justifies a feature request of expressing mutual exclusivity via exec_properties or the like. But I do think there is general need for this.

The exact use case I had was like:

I am using rules_python's multi-version setup (https://github.com/bazelbuild/rules_python/tree/main/examples/multi_python_versions).

I build a C/C++-linked pip wheel with its py_wheel rule, published to test.pypi here (https://test.pypi.org/project/zhongming-pybind-multiversion-example/#files).

Then, I used different versions of Python vendored by rules_python (like this one https://github.com/bazelbuild/rules_python/blob/c72c7bcf4e0899c275042328e8233e3124ccae86/examples/multi_python_versions/tests/BUILD.bazel#L2), to run python3 -m pip install on my own wheels to see if they properly install and load.

Apparently, python3 -m pip install requires access to the current user's ~/.cache/pypi directory and modifies the site-packages directory inside it.

As such, running these python3 -m pip install tests are common dependent on a shared filesystem. So these tests must be mutually exclusive.

Per my understanding, there is probably ways to make pip use different directories than the default ~/.cache/pypi. So I did not include this lengthy description at first. But I still think that in general, being able to express the idea of mutually exclusive group (maybe via exec_properties, I thought) would be generally helpful.

from buildbuddy.

sluongng avatar sluongng commented on June 15, 2024

BuildBuddy currently only implements the server-side of Remote Execution API v2 https://github.com/bazelbuild/remote-apis/blob/main/build/bazel/remote/execution/v2/

The "scheduling" of actions, under the current API design, is still with the client side.
Today, Bazel implements the client side of the API and is in charge of telling BuildBuddy when to start executing an action.
That means the change you are looking for must happen on Bazel side before we could do anything on BuildBuddy side.

You could be interested in bazelbuild/bazel#6477 and the related commit bazelbuild/bazel@d7f0724

from buildbuddy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.