The aspect_rules_js, rules_nodejs, and their use_extension calls
(node toolchain, npm translate_lock) exist solely for JavaScript
unit tests in src/web/test/. No production cc_library target
depends on npm packages — the JS files are served from disk by
the C++ web server.
Changes:
- Mark bazel_dep entries for aspect_rules_js and rules_nodejs as
dev_dependency = True in MODULE.bazel
- Mark node and npm use_extension calls as dev_dependency = True
- Remove isolate = True from npm extension (unnecessary when
dev_dependency, and it required --experimental_isolated_extension_usages
in downstream consumers)
- Move package.json and pnpm-lock.yaml from src/web/ to src/web/test/
- Move npm_link_all_packages from src/web/BUILD to src/web/test/BUILD
- Replace js_library with a plain filegroup for cross-package JS
file references (no @aspect_rules_js dependency in production BUILD)
Downstream Bazel consumers no longer inherit npm/node infrastructure,
eliminating the need for patches like openroad-remove-isolate.patch.
Tested:
- All 10 js_test targets in //src/web/test pass
- Downstream consumer builds without any npm-related patches
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
* For Tcl9, all relevant system tcl files, the tcl library and
readline library, are packed in a zip file, compiled into the
binary mounted on the virtual filesystem //zipfs:/
* On Tcl 8, which does not allow to do that quite yet, we
take the same directory structure (unpacked), and use them
via runfiles as before; however, since this is now a single
directory the runfile symbolic links are reduced to one.
Default for now is to use the runfile method, as we're still on
Tcl8; The code is prepared for Tcl9, awaiting some changes in
STA to be merged, then we can change the default.
Fixes: #9962#9980
Signed-off-by: Henner Zeller <h.zeller@acm.org>
src/web uses @npm for bundled assets, so aspect_rules_js, rules_nodejs,
and their extensions (node, npm) must be non-dev for downstream consumers.
Add .bazelrc to test/downstream for --experimental_isolated_extension_usages.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Add missing buildifier disable comment for fix_lint sh_binary and
regenerate lockfile after dev_dependency and rules_chisel patch changes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
bazel-orfs moved generate.bzl and verilog.bzl into the
bazel-orfs-verilog submodule.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
The local bazel-orfs moved chisel support from
@bazel-orfs//toolchains/scala:chisel.bzl to the standalone
@rules_chisel//chisel:defs.bzl package. Add rules_chisel as a
dev dependency, configure the chisel extension toolchain, and
update the mock-array BUILD load path accordingly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
use_repo_rule() does not accept dev_dependency as a keyword argument;
that parameter is only valid for use_extension(). Remove it and
consolidate the duplicate http_archive definition.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Remove scala_deps.scalatest() as it is not used in any BUILD file.
Add comment documenting that rules_scala is used by chisel_binary
from @bazel-orfs in test/orfs/mock-array.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Use the tcl library from bazel central repository (BCR)
instead of the version from rules_hdl. The bcr version
is compatible with MacOS and is managed via
MODULE.bazel instead of WORKSPACE.
Signed-off-by: Friedrich Beckmann <friedrich.beckmann@tha.de>
BCR version is a fairly recent implementation from the
actively maintained Yosys branch. It comes with its
own BUILD file that we don't have to maintain here.
Putting third-party/abc into bazelignore so that we don't
process that part anymore.
With that, we now can also get rid of the very outdated
`readline` and `ncurses` dependencies in `WORKSPACE`,
as they now all come (much newer) from BCR.
(both of them I updated recently upstream in BCR)
Signed-off-by: Henner Zeller <h.zeller@acm.org>
The qt library was using xcb headers, but they were not
declared in the dependencies
(fixed in
https://github.com/The-OpenROAD-Project/qt_bazel_prebuilts/pull/6 )
Also, update harfbuzz and glib dependencies that I've fixed
upstream and work better with with Nix (glib) and don't have
missing symbols (harfbuzz).
Signed-off-by: Henner Zeller <h.zeller@acm.org>
This gets the "compatibility_level = 0" fix discussed in bazelbuild#6511.
This should enable us to sync up the cmake versions in another PR.
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>