Migrate to Bzlmod#428
Conversation
These flags enable seeded synthesis runs, allowing users to introduce controlled variability to help explore the space of valid solutions.
Adds the copyright header & default license Conflicts: verilator/settings/BUILD.bazel
Conflicts: dependency_support/edu_berkeley_abc/bundled.BUILD.bazel
Conflicts: dependency_support/edu_berkeley_abc/bundled.BUILD.bazel
…#395) * Add missing genrule to com_github_ivmai_cudd/bundled.BUILD.bazel Signed-off-by: Matt Liberty <mliberty@precisioninno.com> * add build_test to cudd Signed-off-by: Matt Liberty <mliberty@precisioninno.com> * rm build_test from cudd Signed-off-by: Matt Liberty <mliberty@precisioninno.com> * correct package name in com_github_ivmai_cudd.bzl comments Signed-off-by: Matt Liberty <mliberty@precisioninno.com> * make cudd libraries public visibility Signed-off-by: Matt Liberty <mliberty@precisioninno.com> --------- Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Conflicts: dependency_support/edu_berkeley_abc/bundled.BUILD.bazel
Using archive links from github is dangerous as they can change any time, as they build them on-the-fly, so hashing the file can create unstable hashes: https://github.blog/open-source/git/update-on-the-future-stability-of-source-code-archives-and-hashes/ (Unlike for instance nix, bazel does not hash the content of a tar but the binary tar.gz itself, so it is prone to run into the issue) Fix that by using another source that is providing the tar.gz itself, so is stable. Note: this will change this dependency from `@com_github_ivmai_cudd` to `@com_github_davidkebo_cudd`
Conflicts: .gitignore MODULE.bazel
Conflicts: .bazelversion extensions.bzl
|
Note: |
|
Please do not spam YosysHQ projects with your build system PRs. They are not welcome and it is not appropriate to even send that many PRs without first asking the upstream project if they're interested in the maintenance burden of another build system. |
|
Hi @whitequark , I should have opened an issue to discuss this beforehand instead of sending multiple PRs directly. I respect your decision and will close these PRs immediately. Thank you for your work on YosysHQ. |
|
Thanks. |
|
@mikesinouye Given the reaction from the community, maintaining a separate fork seems to be the better choice. I plan to set up a CI pipeline to automatically merge changes from upstream on a monthly basis, as relying on patches would introduce too much maintenance overhead for me. |
|
@MrAMS have a look at this discussion: OpenROAD people seemed interested in the work I did. It would be amazing if you could continue there. If you feel like collaborating more, please let me know your preferred means of communication or just reach out. |
|
OpenROAD is slowly converting to having bazel be our main and eventually only build system. |
|
Hi @lromor @maliberty |
|
Here is a summary of my recent progress:
|
|
Hey, I noticed a number of PRs to BCR and am kinda confused. For these:
It looks like you're pointing to your private repo as the source of truth for builds? Also usurping ownership? The current state of those PRs makes me concerned so can you explain how they were generated and provide more context on the direction? |
|
Hi @UebelAndre , My forked repository will automatically pull and attempt to merge the latest upstream changes via CI every month. If upstream changes are detected and merged successfully, the CI will automatically submit a BCR update PR. You can check the CI status of these repositories. If you still think this approach is inappropriate, feel free to refuse to merge and close these PRs. |
|
Additionally, I have now decided not to continue trying to migrate rules_hdl to Bzlmod or publish it to BCR. After discussing with the open-source community, I found that rules_hdl is inconsistent with the minimal modularity concept of Bzlmod. I will focus on making further contributions to OpenROAD, bazel-orfs and rules_verilator in the future, so feel free to close this migration PR as well. Thank you again for your patience and guidance, as I’m still new to open-source contributions. |
Thanks! I'm not offended, just alarmed for security reasons by a bunch of changes that moved sources to private repos. I think contributing to OpenROAD would be great and to eventually see The-OpenROAD-Project/OpenROAD#8828 implemented. Thank you for all your work! |
|
Just to clarify as i was confused initially. These are the deps referred to above that are patched/modified versions that are not yet available in bcr. Adding the following to my Also @MrAMS I agree with the modularity argument, but i think bazel_rules_hdl should still collect/aggregate it all. For example the verilator block you have done as standalone is nice and bazel_rules_hdl should depend on it instead of having a parallel implementation. The rules hdl idea with bazel was essential with the WORKSPACE as dependencies were a nightmare, but perhaps splitting sections off into separate repos makes sense now? Before BCR it was very hard to discover repos/projects. Thoughts from maintainers? @UebelAndre @QuantamHD |
|
@stridge-tnp For new projects, it is highly recommended to use MODULE.bazel (Bzlmod) instead of WORKSPACE. I personally suggest checking out bazel-orfs as a reference. |
Yeah, I have been using my draft pr for bazel 8. I was just suggesting that with the transition to bazel 8 I think there is still a place for rules HDL but maybe it should be structured differently. |
|
For anyone interested in the Chisel support within |
|
For anyone interested in the |
|
Superseded by #430 |
Description:
This PR introduces Bzlmod support to the project. It builds mainly upon the groundwork laid by @lromor in this comment.
Changes:
mainbranch.Verification:
I have validated the changes using my minimal working project (specifically, see rules_hdl_overrides.MODULE.bazel).
The following rules have been tested and verified to work, covering Verilator simulation, Yosys synthesize and the OpenROAD full EDA flow:
verilog_libraryverilator_cc_librarysynthesize_rtlplace_and_routegds_writeGiven the long-standing discussions(issue#336, issue#332, issue#210, pull#405) regarding this migration since 2023, I believe now is the right time to move forward with Bzlmod.