-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
Bazel Build technical debt #10465
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
Comments
@cgv-wd, thank you for creating this issue. We will troubleshoot it as soon as we can. Info for maintainersTriage this issue by using labels.
If information is missing, add a helpful comment and then
If the issue is a question, add the
If the issue is valid but there is no time to troubleshoot it, consider adding the
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, W3C),
add the applicable
After troubleshooting the issue, please add the Thank you! |
thanks for the issue. This is a major blind spot for the team and could definitely do better. |
Unfortunately, moving away from the Bazel implementation is a non-starter. There are parts of the .NET bindings that are written in languages other than C#. As an example, see the automation atoms included as resources in the built assemblies that are loaded and executed at runtime, which are JavaScript, and which the build system "compiles" and minifies to reduce the traffic sent across the wire. I'm open to discussing areas where the existing build is failing and seeing where we can collaborate to smooth out those rough edges, but the Selenium project requires a cross-language build tool. Over the years, we've taken several approaches from writing our own (entirely unmaintainable) custom cross-language declarative build system; used Buck, which had shortcomings that could not be overcome when the product team rearchitected, and now moved to Bazel. As mentioned in the issue linked to and so thoughtfully quoted in the issue report, the Bazel ecosystem does not play nicely with the way .NET sees the projects it builds. Custom rules are needed to accomplish most things that need to be done in Bazel with .NET-based code, and those, like any other technical skill, require investment and practice. The .NET maintainers do not have the bandwidth to develop that set of technical skills to the level where it becomes "easy" to implement. |
This issue is looking for contributors. Please comment below or reach out to us through our IRC/Slack/Matrix channels if you are interested. |
@shs96c fyi looks like we have this ticket for tracking some of the .NET Bazel issues we've discussed. |
Hey @purkhusid — shot in the dark here, but do you have time to discuss the official dotnet bazel rules with us? We are using https://github.com/Brightspace/rules_csharp right now, and I see that you merged functionality from it into Thanks! |
This comment was marked as off-topic.
This comment was marked as off-topic.
@nvborisenko This issue is about how to address our Bazel issues, not whether to use Bazel in the first place. How about this: If there is anything you think should be done differently, open a new issue for it. We'll try to put pros and cons on there and we can record a decision and whether or not we want to revisit in the future. Then we can have something to reference whenever anyone has the same concern and we can avoid regularly discussing things in a way that can be aggravating to some. |
|
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
What happened?
Bazel build documentation outdated and unable to build dotnet sources using Bazel on Windows.
Steps like correctly setting up VCTools and MSBuild environment variables are unclear and there are either missing requirements or unclear specifications for portions of the Bazel build instructions. From what I understood after looking around for support on this topic it looks like this has been a long standing issue, as mention by @jimevans, due to a combination of factors:
I recently went through all of the steps in the documentation for a fresh setup, using the linked blog article for WIndows as a reference as well, and after spending a few hours trying to resolve it I was still ultimately unsuccessful in building even the dotnet project via VS command line.
Note: Building just the WebDriver, WebDriver.Support, and WebDriverBackedSelenium dotnet projects from within Visual Studio 2019 works and successfully builds the DLLs for each .NET standard and framework. Building the tests is a different story...
We should potentially consider moving away from the Bazel implementation for complete building via command line.
How can we reproduce the issue?
bazel build //dotnet/
Operating System
Windows 10 v19044.1586
Selenium version
Fresh checkout of Selenium 4 trunk
The text was updated successfully, but these errors were encountered: