Skip to content
/ buck Public
forked from facebook/buck

A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.

License

Notifications You must be signed in to change notification settings

airbnb/buck

This branch is 25 commits ahead of, 10 commits behind facebook/buck:main.

Folders and files

NameName
Last commit message
Last commit date
Jan 7, 2021
Nov 18, 2021
Dec 17, 2019
Jun 10, 2019
Jan 6, 2020
Apr 10, 2019
Jun 28, 2021
Jan 30, 2020
Nov 18, 2021
Dec 17, 2019
Aug 12, 2020
Aug 23, 2022
Feb 14, 2020
Feb 15, 2022
Nov 18, 2021
Aug 23, 2022
Nov 10, 2020
Dec 17, 2019
Feb 14, 2020
Sep 30, 2016
Sep 1, 2020
Sep 4, 2019
Jul 31, 2018
Feb 14, 2020
Oct 31, 2018
Mar 28, 2019
Oct 19, 2018
May 16, 2019
Apr 30, 2013
Aug 17, 2020
Mar 15, 2017
Nov 18, 2021
Nov 18, 2021
Jul 20, 2020
Aug 28, 2020
Sep 9, 2020

logo

Buck

Buck is a build tool. To see what Buck can do for you, check out the documentation at http://buck.build/.

Build Status

Installation

Since Buck is used to build Buck, the initial build process involves 2 phases:

1. Clone the Buck repository and bootstrap it with ant:
git clone --depth 1 https://github.com/facebook/buck.git
cd buck
ant

You must be using Java 8 or 11 for this to compile successfully. If you see compilation errors from ant, check your JAVA_HOME is pointing at one of these versions.

2. Use bootstrapped version of Buck to build Buck:
./bin/buck build --show-output buck
# output will contain something like
# //programs:buck buck-out/gen/programs/buck.pex
buck-out/gen/programs/buck.pex --help
Prebuilt buck binaries

Pre-built binaries of buck for any buck sha can be downloaded from https://jitpack.io/com/github/facebook/buck/<sha>/buck-<sha>.pex. The very first time a version of buck is requested, it is built via jitpack. As a result, it could take a few minutes for this initial binary to become available. Every subsequent request will just serve the built artifact directly. This functionality is available for any fork of buck as well, so you can fetch https://jitpack.io/com/github/<github-user-or-org>/buck/<sha>/buck-<sha>.pex

For buck binaries built for JDK 11, modify end of the url to buck-<sha>-java11.pex.

Feature Deprecation

Buck tries to move fast with respect to its internals. However, for user facing features (build rules, command line interface, etc), the Buck team tries to have a graceful deprecation process. Note that this generally applies only to documented functionality, or functionality that is less documented, but appears to be in wide use. That process is:

  • An issue is opened on Github suggesting what will be deprecated, and when it will be removed. For larger features that are deprecated, there may be a period when the default is the new setting, and the old behavior may only be used with a configuration change.
  • A change is submitted to Buck that puts the old behavior behind a configuration flag and sets the default to the old behavior. These flags can be found at https://buck.build/concept/buckconfig.html#incompatible.
  • For larger features, a change eventually is put in place that sets the default to the new behavior. e.g. when Skylark becomes the default build file parser.
  • When the removal date is reached, a change is submitted to remove the feature. At this point, the configuration value will still parse, but will not be used by Buck internally.

License

Apache License 2.0

About

A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 90.5%
  • Starlark 3.8%
  • JavaScript 2.5%
  • Python 2.1%
  • C 0.7%
  • CSS 0.2%
  • Other 0.2%