Skip to content

Package request: buck2 #226677

@nickgerace

Description

@nickgerace

Project description

"Buck2, a large scale, fast, reliable, and extensible build tool developed and used by Meta. Buck2 supports a variety of languages on many platforms.

Buck2's core is written in Rust. Starlark, which is a deterministic, immutable dialect of Python, is used to extend the Buck2 build system, enabling Buck2 to be language-agnostic. With Starlark, users can define their own custom rules.

Buck2 leverages the Bazel spec of Remote Build Execution as the primary means of parallelization and caching, which increases the importance of idempotency (no matter how many times an operation is performed, it yields the same result) and hermeticity (code is sealed off from the world), giving the right results, reliably.

Buck2 multi-language support includes C++, Python, Java, Go, Rust, Erlang, OCaml, and more."

-- https://buck2.build/docs/

Metadata

Additional Notes

It's worth noting that buck2 appears to be updating off the latest branch with a re-created git tag upon each "release". It may be the case that buck2 doesn't make sense to be in nixpkgs right now, but perhaps folks have ideas on what it could look like to update buck2 automatically.

EDIT (17 Apr 2023): I suspect the package will go in pkgs/development/tools/build-managers. It's also worth adding the following note from the source URL's README...

"Build uses prebuilt protoc binary from protoc-bin-vendored crate. If these binaries to do not work on your machine (for example, when building for NixOS), path to protoc binary and protobuf include path can be specified via BUCK2_BUILD_PROTOC and BUCK2_BUILD_PROTOC_INCLUDE environment variables."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions