Tệp MODULE.bazel

Báo cáo vấn đề Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Các phương thức có trong tệp MODULE.bazel.

Hội viên

archive_override

None archive_override(module_name, **kwargs)

Chỉ định rằng phần phụ thuộc này phải đến từ một tệp lưu trữ (zip, gzip, v.v.) ở một vị trí nhất định, thay vì từ một sổ đăng ký. Trên thực tế, phần phụ thuộc này sẽ được hỗ trợ bằng quy tắc http_archive.

Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được các mô-đun khác dùng làm phần phụ thuộc, thì các chế độ ghi đè riêng của mô-đun đó sẽ bị bỏ qua.

Thông số

Thông số Mô tả
module_name string; required
Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này.
kwargs required
Tất cả các đối số khác sẽ được chuyển tiếp đến quy tắc http_archive repo cơ bản. Xin lưu ý rằng bạn không nên chỉ định thuộc tính name; thay vào đó, hãy dùng module_name.

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

Khai báo một phần phụ thuộc trực tiếp vào một mô-đun Bazel khác.

Thông số

Thông số Mô tả
name string; required
Tên của mô-đun sẽ được thêm dưới dạng một phần phụ thuộc trực tiếp.
version string; mặc định là ''
Phiên bản của mô-đun sẽ được thêm dưới dạng phần phụ thuộc trực tiếp.
max_compatibility_level int; mặc định là -1
compatibility_level tối đa được hỗ trợ để mô-đun được thêm dưới dạng một phần phụ thuộc trực tiếp. Phiên bản của mô-đun ngụ ý compatibility_level tối thiểu được hỗ trợ, cũng như tối đa nếu bạn không chỉ định thuộc tính này.
repo_name string; hoặc None; mặc định là ''
Tên của kho lưu trữ bên ngoài đại diện cho phần phụ thuộc này. Theo mặc định, đây là tên của mô-đun. Có thể đặt thành None để biến phần phụ thuộc này thành phần phụ thuộc "nodep": trong trường hợp này, quy cách bazel_dep này chỉ được tuân thủ nếu mô-đun đích đã tồn tại trong biểu đồ phần phụ thuộc bằng một số phương tiện khác.
dev_dependency bool; mặc định là False
Nếu là true, phần phụ thuộc này sẽ bị bỏ qua nếu mô-đun hiện tại không phải là mô-đun gốc hoặc --ignore_dev_dependency được bật.

git_override

None git_override(module_name, **kwargs)

Chỉ định rằng phần phụ thuộc này phải đến từ một cam kết nhất định trong kho lưu trữ Git, thay vì từ một sổ đăng ký. Trên thực tế, phần phụ thuộc này sẽ được hỗ trợ bởi quy tắc git_repository.

Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được các mô-đun khác dùng làm phần phụ thuộc, thì các chế độ ghi đè riêng của mô-đun đó sẽ bị bỏ qua.

Thông số

Thông số Mô tả
module_name string; required
Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này.
kwargs bắt buộc
Tất cả các đối số khác sẽ được chuyển tiếp đến quy tắc git_repositoryrepo cơ bản. Xin lưu ý rằng bạn không nên chỉ định thuộc tính name; thay vào đó, hãy dùng module_name.

bao gồm

None include(label)

Bao gồm nội dung của một tệp khác tương tự như MODULE.bazel. Trên thực tế, include() hoạt động như thể tệp được đưa vào được đặt bằng văn bản tại vị trí của lệnh gọi include(), ngoại trừ việc các liên kết biến (chẳng hạn như các liên kết được dùng cho use_extension) chỉ xuất hiện trong tệp mà chúng xuất hiện, chứ không xuất hiện trong bất kỳ tệp nào được đưa vào hoặc đưa vào.

Chỉ mô-đun gốc mới có thể sử dụng include(); sẽ xảy ra lỗi nếu tệp MODULE của bazel_dep sử dụng include().

Bạn chỉ có thể đưa các tệp trong kho lưu trữ chính vào.

include() cho phép bạn phân đoạn tệp mô-đun gốc thành nhiều phần để tránh có tệp MODULE.bazel quá lớn hoặc để quản lý quyền kiểm soát truy cập tốt hơn cho từng phân đoạn ngữ nghĩa.

Thông số

Thông số Mô tả
label string; required
Nhãn trỏ đến tệp cần đưa vào. Nhãn phải trỏ đến một tệp trong kho lưu trữ chính; nói cách khác, nhãn phải bắt đầu bằng dấu gạch chéo kép (//). Tên của tệp phải kết thúc bằng .MODULE.bazel và không được bắt đầu bằng ..

inject_repo

None inject_repo(extension_proxy, *args, **kwargs)

Chèn một hoặc nhiều kho lưu trữ mới vào tiện ích mô-đun đã cho. Tham số này sẽ bị bỏ qua nếu mô-đun hiện tại không phải là mô-đun gốc hoặc --ignore_dev_dependency được bật.

Thay vào đó, hãy dùng override_repo để ghi đè một kho lưu trữ hiện có.

Thông số

Thông số Mô tả
extension_proxy module_extension_proxy; required
Một đối tượng proxy tiện ích mô-đun do lệnh gọi use_extension trả về.
args bắt buộc
Các kho lưu trữ mà mô-đun hiện tại có thể thấy và cần được chèn vào tiện ích có cùng tên.
kwargs bắt buộc
Các kho lưu trữ mới cần chèn vào tiện ích, trong đó các giá trị là tên của kho lưu trữ trong phạm vi của mô-đun hiện tại và các khoá là tên mà chúng sẽ xuất hiện trong tiện ích.

Bạn có thể chỉ định các khoá không phải là giá trị nhận dạng hợp lệ thông qua một dict theo nghĩa đen được truyền dưới dạng đối số từ khoá bổ sung, ví dụ: inject_repo(extension_proxy, **{"foo.2": "foo"}).

local_path_override

None local_path_override(module_name, path)

Chỉ định rằng phần phụ thuộc này phải đến từ một thư mục nhất định trên đĩa cục bộ, thay vì từ một sổ đăng ký. Trên thực tế, phần phụ thuộc này sẽ được hỗ trợ bởi quy tắc local_repository.

Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được các mô-đun khác dùng làm phần phụ thuộc, thì các chế độ ghi đè riêng của mô-đun đó sẽ bị bỏ qua.

Thông số

Thông số Mô tả
module_name string; required
Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này.
path string; required
Đường dẫn đến thư mục chứa mô-đun này.

mô-đun

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

Khai báo một số thuộc tính của mô-đun Bazel do kho lưu trữ Bazel hiện tại đại diện. Những thuộc tính này là siêu dữ liệu thiết yếu của mô-đun (chẳng hạn như tên và phiên bản) hoặc ảnh hưởng đến hành vi của mô-đun hiện tại và các mô-đun phụ thuộc.

Bạn chỉ nên gọi chỉ thị này tối đa một lần và nếu gọi, thì đây phải là chỉ thị đầu tiên trong tệp MODULE.bazel. Bạn chỉ có thể bỏ qua nếu mô-đun này là mô-đun gốc (tức là nếu không có mô-đun nào khác phụ thuộc vào mô-đun này).

Thông số

Thông số Mô tả
name string; mặc định là ''
Tên của mô-đun. Chỉ có thể bỏ qua nếu mô-đun này là mô-đun gốc (tức là nếu không có mô-đun nào khác phụ thuộc vào mô-đun này). Tên mô-đun hợp lệ phải: 1) chỉ chứa chữ cái viết thường (a-z), chữ số (0-9), dấu chấm (.), dấu gạch ngang (-) và dấu gạch dưới (_); 2) bắt đầu bằng chữ cái viết thường; 3) kết thúc bằng chữ cái viết thường hoặc chữ số.
version string; mặc định là ''
Phiên bản của mô-đun. Chỉ có thể bỏ qua nếu mô-đun này là mô-đun gốc (tức là nếu không có mô-đun nào khác phụ thuộc vào mô-đun này). Phiên bản phải ở định dạng SemVer linh hoạt; hãy xem tài liệu để biết thêm thông tin chi tiết.
compatibility_level int; mặc định là 0
Cấp độ tương thích của mô-đun; bạn nên thay đổi cấp độ này mỗi khi có một thay đổi lớn không tương thích. Về cơ bản, đây là "phiên bản chính" của mô-đun theo SemVer, ngoại trừ việc phiên bản này không được nhúng vào chính chuỗi phiên bản mà tồn tại dưới dạng một trường riêng biệt. Các mô-đun có cấp độ tương thích khác nhau sẽ tham gia vào quá trình phân giải phiên bản như thể chúng là các mô-đun có tên khác nhau, nhưng biểu đồ phần phụ thuộc cuối cùng không thể chứa nhiều mô-đun có cùng tên nhưng cấp độ tương thích khác nhau (trừ phi multiple_version_override có hiệu lực). Hãy xem tài liệu để biết thêm chi tiết.
repo_name string; default is ''
Tên của kho lưu trữ đại diện cho mô-đun này, do chính mô-đun đó nhìn thấy. Theo mặc định, tên của kho lưu trữ là tên của mô-đun. Bạn có thể chỉ định tên này để dễ dàng di chuyển cho các dự án đã sử dụng tên kho lưu trữ cho chính dự án đó, khác với tên mô-đun.
bazel_compatibility Có thể lặp lại strings; giá trị mặc định là []
Một danh sách các phiên bản bazel cho phép người dùng khai báo những phiên bản Bazel tương thích với mô-đun này. Thông tin này KHÔNG ảnh hưởng đến quá trình phân giải phần phụ thuộc, nhưng bzlmod sẽ sử dụng thông tin này để kiểm tra xem phiên bản Bazel hiện tại của bạn có tương thích hay không. Định dạng của giá trị này là một chuỗi gồm một số giá trị ràng buộc được phân tách bằng dấu phẩy. Có 3 quy tắc ràng buộc được hỗ trợ: <=X.X.X: Phiên bản Bazel phải bằng hoặc cũ hơn X.X.X. Được dùng khi có một thay đổi không tương thích đã biết trong phiên bản mới hơn. >=X.X.X: Phiên bản Bazel phải bằng hoặc mới hơn X.X.X.Được dùng khi bạn phụ thuộc vào một số tính năng chỉ có từ phiên bản X.X.X. -X.X.X: Phiên bản Bazel X.X.X không tương thích. Được dùng khi có lỗi trong X.X.X khiến bạn không thể sử dụng, nhưng đã được khắc phục trong các phiên bản sau.

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

Chỉ định rằng một phần phụ thuộc vẫn phải đến từ một sổ đăng ký, nhưng nhiều phiên bản của phần phụ thuộc đó được phép cùng tồn tại. Hãy xem tài liệu để biết thêm chi tiết. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được các mô-đun khác dùng làm phần phụ thuộc, thì các chế độ ghi đè của mô-đun đó sẽ bị bỏ qua.

Thông số

Thông số Mô tả
module_name string; required
Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này.
versions Có thể lặp lại strings; bắt buộc
Chỉ định rõ ràng các phiên bản được phép cùng tồn tại. Những phiên bản này phải có trong lựa chọn trước của biểu đồ phần phụ thuộc. Các phần phụ thuộc trên mô-đun này sẽ được "nâng cấp" lên phiên bản được phép cao hơn gần nhất ở cùng cấp độ tương thích, trong khi các phần phụ thuộc có phiên bản cao hơn bất kỳ phiên bản được phép nào ở cùng cấp độ tương thích sẽ gây ra lỗi.
registry string; default is ''
Ghi đè sổ đăng ký cho mô-đun này; thay vì tìm mô-đun này trong danh sách sổ đăng ký mặc định, bạn nên sử dụng sổ đăng ký đã cho.

override_repo

None override_repo(extension_proxy, *args, **kwargs)

Ghi đè một hoặc nhiều kho lưu trữ do tiện ích mô-đun đã cho xác định bằng các kho lưu trữ đã cho mà mô-đun hiện tại có thể nhìn thấy. Tham số này sẽ bị bỏ qua nếu mô-đun hiện tại không phải là mô-đun gốc hoặc nếu bạn bật `--ignore_dev_dependency`.

Thay vào đó, hãy dùng inject_repo để thêm một kho lưu trữ mới.

Thông số

Thông số Mô tả
extension_proxy module_extension_proxy; required
Một đối tượng proxy tiện ích mô-đun do lệnh gọi use_extension trả về.
args bắt buộc
Các kho lưu trữ trong tiện ích cần được ghi đè bằng các kho lưu trữ có cùng tên trong mô-đun hiện tại.
kwargs required
Các chế độ ghi đè cần áp dụng cho các kho lưu trữ do tiện ích tạo, trong đó các giá trị là tên của các kho lưu trữ trong phạm vi của mô-đun hiện tại và các khoá là tên của các kho lưu trữ mà chúng sẽ ghi đè trong tiện ích.

Bạn có thể chỉ định các khoá không phải là giá trị nhận dạng hợp lệ thông qua một dict theo nghĩa đen được truyền dưới dạng đối số từ khoá bổ sung, ví dụ: override_repo(extension_proxy, **{"foo.2": "foo"}).

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

Chỉ định các nền tảng thực thi đã xác định sẽ được đăng ký khi mô-đun này được chọn. Phải là mẫu mục tiêu tuyệt đối (tức là bắt đầu bằng @ hoặc //). Hãy xem độ phân giải chuỗi công cụ để biết thêm thông tin. Các mẫu mở rộng thành nhiều mục tiêu, chẳng hạn như :all, sẽ được đăng ký theo thứ tự từ điển theo tên.

Thông số

Thông số Mô tả
dev_dependency bool; mặc định là False
Nếu đúng, các nền tảng thực thi sẽ không được đăng ký nếu mô-đun hiện tại không phải là mô-đun gốc hoặc `--ignore_dev_dependency` được bật.
platform_labels sequence của strings; required
Các mẫu mục tiêu cần đăng ký.

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

Chỉ định các chuỗi công cụ đã xác định sẽ được đăng ký khi mô-đun này được chọn. Phải là mẫu mục tiêu tuyệt đối (tức là bắt đầu bằng @ hoặc //). Hãy xem độ phân giải chuỗi công cụ để biết thêm thông tin. Các mẫu mở rộng thành nhiều mục tiêu, chẳng hạn như :all, sẽ được đăng ký theo thứ tự từ điển theo tên mục tiêu (không phải tên của việc triển khai chuỗi công cụ).

Thông số

Thông số Mô tả
dev_dependency bool; mặc định là False
Nếu đúng, các chuỗi công cụ sẽ không được đăng ký nếu mô-đun hiện tại không phải là mô-đun gốc hoặc `--ignore_dev_dependency` được bật.
toolchain_labels sequence của strings; required
Các mẫu mục tiêu cần đăng ký.

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

Chỉ định rằng một phần phụ thuộc vẫn phải đến từ một sổ đăng ký, nhưng phiên bản của phần phụ thuộc đó phải được ghim, hoặc sổ đăng ký của phần phụ thuộc đó bị ghi đè, hoặc một danh sách các bản vá được áp dụng. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được các mô-đun khác dùng làm phần phụ thuộc, thì các chế độ ghi đè của mô-đun đó sẽ bị bỏ qua.

Thông số

Thông số Mô tả
module_name string; required
Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này.
version string; mặc định là ''
Ghi đè phiên bản đã khai báo của mô-đun này trong biểu đồ phần phụ thuộc. Nói cách khác, mô-đun này sẽ được "ghim" vào phiên bản ghi đè này. Bạn có thể bỏ qua thuộc tính này nếu bạn chỉ muốn ghi đè sổ đăng ký hoặc các bản vá.
registry string; default is ''
Ghi đè sổ đăng ký cho mô-đun này; thay vì tìm mô-đun này trong danh sách sổ đăng ký mặc định, bạn nên sử dụng sổ đăng ký đã cho.
patches Có thể lặp lại strings; giá trị mặc định là []
Một danh sách các nhãn trỏ đến các tệp vá để áp dụng cho mô-đun này. Các tệp vá phải có trong cây nguồn của dự án cấp cao nhất. Các quy tắc này được áp dụng theo thứ tự trong danh sách.

Nếu bản vá thực hiện thay đổi đối với tệp MODULE.bazel, thì những thay đổi này sẽ chỉ có hiệu lực nếu tệp bản vá do mô-đun gốc cung cấp.

patch_cmds Có thể lặp lại strings; giá trị mặc định là []
Trình tự các lệnh Bash sẽ được áp dụng trên Linux/MacOS sau khi các bản vá được áp dụng.

Các thay đổi đối với tệp MODULE.bazel sẽ không có hiệu lực.

patch_strip int; mặc định là 0
Tương tự như đối số --strip của bản vá Unix.

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

Trả về một đối tượng proxy đại diện cho một tiện ích mô-đun; bạn có thể gọi các phương thức của đối tượng này để tạo thẻ tiện ích mô-đun.

Thông số

Thông số Mô tả
extension_bzl_file string; required
Nhãn cho tệp Starlark xác định tiện ích mô-đun.
extension_name string; required
Tên của tiện ích mô-đun cần sử dụng. Tệp Starlark phải xuất một biểu tượng có tên này.
dev_dependency bool; default is False
Nếu đúng, việc sử dụng tiện ích mô-đun này sẽ bị bỏ qua nếu mô-đun hiện tại không phải là mô-đun gốc hoặc `--ignore_dev_dependency` được bật.
isolate bool; mặc định là False
Thử nghiệm. Đây là một thông số thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào thông tin này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách đặt --experimental_isolated_extension_usages
Nếu đúng, thì việc sử dụng tiện ích mô-đun này sẽ tách biệt với tất cả các cách sử dụng khác, cả trong mô-đun này và các mô-đun khác. Các thẻ được tạo cho mục đích sử dụng này không ảnh hưởng đến các mục đích sử dụng khác và các kho lưu trữ do tiện ích tạo cho mục đích sử dụng này sẽ khác biệt với tất cả các kho lưu trữ khác do tiện ích tạo.

Tham số này hiện đang trong giai đoạn thử nghiệm và chỉ có sẵn khi dùng cờ --experimental_isolated_extension_usages.

use_repo

None use_repo(extension_proxy, *args, **kwargs)

Nhập một hoặc nhiều kho lưu trữ do tiện ích mô-đun đã cho tạo vào phạm vi của mô-đun hiện tại.

Thông số

Thông số Mô tả
extension_proxy module_extension_proxy; required
Một đối tượng proxy tiện ích mô-đun do lệnh gọi use_extension trả về.
args required
Tên của các kho lưu trữ cần nhập.
kwargs required
Chỉ định một số kho lưu trữ nhất định để nhập vào phạm vi của mô-đun hiện tại bằng các tên khác nhau. Khoá phải là tên để sử dụng trong phạm vi hiện tại, trong khi các giá trị phải là tên ban đầu do tiện ích mô-đun xuất.

Bạn có thể chỉ định các khoá không phải là giá trị nhận dạng hợp lệ thông qua một dict theo nghĩa đen được truyền dưới dạng đối số từ khoá bổ sung, ví dụ: use_repo(extension_proxy, **{"foo.2": "foo"}).

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

Trả về một giá trị proxy có thể được gọi trực tiếp trong tệp MODULE.bazel dưới dạng một quy tắc kho lưu trữ, một hoặc nhiều lần. Các kho lưu trữ được tạo theo cách này chỉ hiển thị cho mô-đun hiện tại, theo tên được khai báo bằng thuộc tính name trên proxy. Bạn cũng có thể dùng thuộc tính Boolean dev_dependency ngầm trên proxy để biểu thị rằng một kho lưu trữ nhất định chỉ được tạo khi mô-đun hiện tại là mô-đun gốc.

Thông số

Thông số Mô tả
repo_rule_bzl_file string; required
Nhãn cho tệp Starlark xác định quy tắc kho lưu trữ.
repo_rule_name string; required
Tên của quy tắc repo cần sử dụng. Tệp Starlark phải xuất một biểu tượng có tên này.