flatbuffers/tests/bazel_repository_test_dir
Philipp Schrader 7106d86685
Remove npm/rules_js dependency for C++ only use cases (#7990)
When flatbuffers is being used from a project that has no use for
JavaScript, users encounter an error similar to the following:

    ERROR: Skipping '@com_github_google_flatbuffers//:flatbuffers': error loading package '@com_github_google_flatbuffers//': Unable to find package for @npm//:defs.bzl: The repository '@npm' could not be resolved: Repository '@npm' is not defined.
    WARNING: Target pattern parsing failed.
    ERROR: error loading package '@com_github_google_flatbuffers//': Unable to find package for @npm//:defs.bzl: The repository '@npm' could not be resolved: Repository '@npm' is not defined.
    INFO: Elapsed time: 0.023s
    INFO: 0 processes.
    FAILED: Build did NOT complete successfully (0 packages loaded)
        currently loading: @com_github_google_flatbuffers//

That's not ideal. Users that only care about C++ for example
shouldn't be forced to deal with rules_js and friends.

This patch attempts to fix that by moving the rules_js-specific things
into the `ts` and `tests/ts` directories. This should allow
non-JavaScript projects to ignore rules_js and friends completely.

Here I basically followed the `rules_foo` example from rules_js:
https://github.com/aspect-build/rules_js/tree/main/e2e/rules_foo

The idea is that flatbuffers has its own npm dependencies regardless
of what other projects may have. This means we should not force the
user to import flatbuffers's npm dependencies. The new
`ts/repositories.bzl` file is used by dependents to import
flatbuffers's dependencies. They can still import their own
dependencies. This cleanup allowed me to move all
JavaScript-specific stuff from the top-level directory into
subdirectories.

There should be no changes in this patch in terms of functionality.
It's just a refactor of the rules_js call sites. Users will have to
add a call to the function in `ts/repositories.bzl` in their own
`WORKSPACE` file. They can use
`tests/ts/bazel_repository_test/WORKSPACE` as an example.

Co-authored-by: Derek Bailey <derekbailey@google.com>
2024-04-18 05:06:06 +00:00
..
.bazelrc Remove npm/rules_js dependency for C++ only use cases (#7990) 2024-04-18 05:06:06 +00:00
.gitignore Remove npm/rules_js dependency for C++ only use cases (#7990) 2024-04-18 05:06:06 +00:00
BUILD Remove npm/rules_js dependency for C++ only use cases (#7990) 2024-04-18 05:06:06 +00:00
README.md Remove npm/rules_js dependency for C++ only use cases (#7990) 2024-04-18 05:06:06 +00:00
WORKSPACE Remove npm/rules_js dependency for C++ only use cases (#7990) 2024-04-18 05:06:06 +00:00
pulls_in_flatbuffers_test.cpp Remove npm/rules_js dependency for C++ only use cases (#7990) 2024-04-18 05:06:06 +00:00

README.md

This directory is not intended to be used independently of the flatbuffers repository. Instead, this whole directory serves as a unit test for the C++ integration in the flatbuffers repo.

Run this test from the top-level of the flatbuffers repo.

$ bazel test //tests:bazel_repository_test