bazelbuild / bzlmod Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Either as an override, or as a single-module registry.
This is about support for the subcommand currently known as bzlmod query
. It should be able to print out the dependency graph, show some path from one module to a (transitive) dependency, among other things.
To achieve this, we need to store more information in the lockfile (essentially, the entire dependency graph, even pre-selection).
bzlmod add [email protected]
bzlmod add -f [email protected]
bzlmod add X
bzlmod add --upgrade_all
bzlmod remove X
This involves programmatically modifying the MODULE.bazel file, so there could be minor challenges (for example, a user can technically use list comprehensions in MODULE.bazel)
Should be an easy fix; during discovery, instead of using starlark.ExecFile
, we should manually parse the file and inspect the AST and throw an error if control flow statements or function definitions exist.
Right now bzlmod doesn't deal with concurrent calls very well. All sorts of race conditions could happen if bzlmod resolve
and bzlmod fetch
are called concurrently, whether inside the same workspace or across different workspaces.
module
module_rule_exports
file of any referenced Bazel modules, after bazel_dep
s are resolved (i.e. post-discovery-and-selection)bfs
builtinattr
moduleNo checkboxes here, since all of this need to be done at once for module rules to have any semblance of working.
Right now, for the Archive fetcher, strip_prefix is implemented using strings.TrimPrefix
. This has two problems:
This entails throwing an error at selection time if different versions of a module were discovered, but they have different compatibility_level
s.
Currently we correctly parse and store this override, but don't use it properly. Changes need to be made in Selection.
We should collect the bazel_compatibility declarations of all modules in the dep graph, compute the intersection, and output that into the WORKSPACE file (or if we're definitely version-locking bzlmod and Bazel, fail outright).
Both need the Git fetcher to be implemented first.
The plumbing of patching information is already done (patch files, patch_strip, etc). The work left is to actually do the patching (mainly in the Archive fetcher; after Git support is in, in the Git fetcher too).
Reintroduce dev_dependency
to bazel_dep
.
We removed it because of potential BUILD breaks in situations like bazelbuild/bazel#12835. However, not having dev dependencies means that the dependency graph could be cluttered in an unbounded manner. For example, most rulesets depend on bazel_skylib, which uses rules_pkg to manage releases. Without dev dependencies, this means that most Bazel projects would depend on bazel_skylib -> rules_pkg -> rules_python -> {insert crapton of deps here}.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.