A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.
philipjameson and facebook-github-bot Try to use c:\Python2.7\python.exe before defaulting to python.exe on…
… path

Summary:
Attempt to use python2 binary directly before falling back to 'python.exe' on the path

Fixes 2011

Reviewed By: styurin

fbshipit-source-id: 244e66f023
Latest commit e11805a Sep 24, 2018
Permalink
Failed to load latest commit information.
.idea Update jacoco to 0.8.2 (#2033) Sep 22, 2018
android Rename IntelliJ output directory to intellij-out. Aug 10, 2018
assets/android SHA256 Patch to V2 Signing Aug 10, 2018
bin Remove no longer maintained buckd entry point. May 25, 2018
config Move log.Logger to core.util.log Aug 16, 2018
docs Remove double-boxing in code snippets in Getting Started Sep 22, 2018
pmd Move log.Logger to core.util.log Aug 16, 2018
programs Update java path error message Sep 6, 2018
py Introduce export_files macro. Aug 2, 2018
python-dsl Improve error message for top-level rule_exists invocations. Sep 22, 2018
scripts Enable IntelliJ Python support for ideabuck scripts Sep 13, 2018
src-gen Send TraceID as metadata with every ExecuteRequest. Sep 12, 2018
src/com/facebook/buck Refactor BuildTarget.checkUnflavored Sep 24, 2018
test/com/facebook/buck Move Fake rule implementations from rules to core.rules.impl in tests Sep 24, 2018
third-party Update jacoco to 0.8.2 (#2033) Sep 22, 2018
tools Try to use c:\Python2.7\python.exe before defaulting to python.exe on… Sep 24, 2018
.buckconfig Add `.buckconfig` file for `bazel_skylib` cell Sep 4, 2018
.buckjavaargs Increase heap size. Sep 30, 2016
.buckrelease Prepare release v2018.06.25.01. Jun 25, 2018
.gitattributes Fix some Android resource tests. Jul 31, 2018
.gitignore Rename IntelliJ output directory to intellij-out. Aug 10, 2018
.inferconfig set com.android. as a prefix of external package Jul 10, 2018
.travis.yml Run tests with Android NDK 17 in Travis CI Jul 2, 2018
.watchmanconfig Rename build output directory to use Buck convention. Aug 10, 2018
BUCK Introduce export_files macro. Aug 2, 2018
CONTRIBUTING.md Move log.Logger to core.util.log Aug 16, 2018
LICENSE Try to make it easier to determine the license for Buck (Apache 2.0). Apr 30, 2013
README.md Add documentation about deprecating features to README Jul 10, 2018
appveyor.yml always -Djna.nosys=true for running buck Feb 27, 2018
buck-parser-py.iml Use typing module for PEP484 type annotations Mar 15, 2017
buck.iml Migrate to Bazel remote execution API v2 Aug 29, 2018
build.gradle Add support for building buck with Gradle. Nov 28, 2017
build.xml Update jacoco to 0.8.2 (#2033) Sep 22, 2018
jitpack.yml Download statically built python for jitpack builds (#2014) Aug 30, 2018
windows_cxx_support.txt Support for compiling cxx shared libraries on windows (DLLs) Oct 7, 2016
windows_failures.txt Move ActionGraph builders to core.model.actiongraph.computation May 11, 2018

README.md

Buck

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

Build Status Build status

Installation

First, clone the Buck repository:

git clone --depth 1 https://github.com/facebook/buck.git
cd buck

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

1. Bootstrap Buck with ant
git clone --depth 1 https://github.com/facebook/buck.git
cd buck
ant
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

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://buckbuild.com/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