-
Notifications
You must be signed in to change notification settings - Fork 0
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
Restructure repository layout #67
Comments
…r `@rules_prerender/declarative_shadow_dom`. Refs #67.
Refs #67. This just better organizes the code a bit, given that there's three Starlark files here related to Jasmine.
Refs #67. This is just for better organization and to split the implementation into multiple files.
…tation_extractor/...`. Refs #67. This move is because it is an executed tool, not a package installed by the user.
…..`. Refs #67. This is because this is a tool executed at build time, not a package installed by the user.
Refs #67. This is because the renderer is invoked as a tool, not installed as a package by the user. This is a slight misnomer as `//tools/binaries/renderer/...` does not export a `js_binary()`, however it does export a library which gets wrapped into a `js_binary()` under the hood, and treated as _effectively_ a tool, even if technically it isn't.
…e_injector/...`. Refs #67. This is because the resource injector is invoked as a tool at build time, not a package installed by the user.
…e_packager/...`. Refs #67. This is because the resource packager is a tool invoked at build time, not a package installed by users.
…ript_entry_generator/...`. Refs #67. This is because the script entry generator is a tool invoked at build time, not a package installed by the user.
Refs #67. This package existed to provide a single abstraction for both the workspace source code and the published NPM package workspace in a `@build_bazel_rules_nodejs` world. However, under `@aspect_rules_js`, there is only the source workspace. This means there's no value in this layer of indirection, and all the Starlark rules can just depend directly on their associated tools.
Refs #67. This does not attempt to refactor to the new `defs.bzl` convention just yet.
I managed to move all the tools from I tried moving I think the correct solution is to vendor One other thing we should look at as part of this issue is restricting target dependencies as much as possible. Two other things to consider are:
|
I played around some more with |
Marking this as a 1.0.0 blocker for the move of Starlark rules into |
Since starting the repository I think I have a better understanding of how it should be laid out. I propose:
//tools/binaries/...
contains all the individual tool implementations.//packages/...
contains individual@rules_prerender/*
packages.//common/...
should also be included here, and exporting a linkednpm_package()
though it would be listed aprivate: true
in thepackage.json
.//prerender/...
contains all the Starlark definitions, mostly aligning with the way Aspect repos organize things. I think this will avoid pulling in unnecessary dev dependencies into user workspaces if noBUILD
fileload()
s such a dependency.Probably some other smaller changes to consider like the difference between an example and an e2e test, but we'll start with these changes.
The text was updated successfully, but these errors were encountered: