All Projects β†’ facebook β†’ Buck

facebook / Buck

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

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
Starlark
911 projects
javascript
184084 projects - #8 most used programming language
c
50402 projects - #5 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to Buck

Fastdex
πŸš€ 加快 apk ηš„ηΌ–θ―‘ι€ŸεΊ¦ πŸš€
Stars: ✭ 1,457 (-82.15%)
Mutual labels:  build-tool, buck
Please
High-performance extensible build system for reproducible multi-language builds.
Stars: ✭ 1,856 (-77.26%)
Mutual labels:  build-tool, buck
example-bazel-monorepo
πŸŒΏπŸ’š Example Bazel-ified monorepo, supporting Golang, Java, Python, Scala, and Typescript
Stars: ✭ 213 (-97.39%)
Mutual labels:  buck, build-tool
Javafx Maven Plugin
Maven plugin for JavaFX
Stars: ✭ 764 (-90.64%)
Mutual labels:  build-tool
Cargo Make
Rust task runner and build tool.
Stars: ✭ 895 (-89.03%)
Mutual labels:  build-tool
Yb
A new build tool optimized for local + remote development
Stars: ✭ 29 (-99.64%)
Mutual labels:  build-tool
Html Modules Toolkit
Transforming HTML standards of the future into JavaScript standards of the past
Stars: ✭ 45 (-99.45%)
Mutual labels:  build-tool
Toast
Containerize your development and continuous integration environments. πŸ₯‚
Stars: ✭ 748 (-90.84%)
Mutual labels:  build-tool
Forgemodbuilder
Build, setup, update and refresh your modding environment!
Stars: ✭ 37 (-99.55%)
Mutual labels:  build-tool
Houl
Full-contained static site workflow
Stars: ✭ 27 (-99.67%)
Mutual labels:  build-tool
Elm Kitchen
Easily bootstrap a new Elm SPA
Stars: ✭ 21 (-99.74%)
Mutual labels:  build-tool
Hopp
Crazy rapid build system.
Stars: ✭ 24 (-99.71%)
Mutual labels:  build-tool
Athena
O2前端桁程ε·₯ε…·
Stars: ✭ 959 (-88.25%)
Mutual labels:  build-tool
Swift Llbuild
A low-level build system, used by Xcode and the Swift Package Manager
Stars: ✭ 836 (-89.76%)
Mutual labels:  build-tool
Phaser Node Kit
Rapid Game Development with PhaserJS and Node for Modern Browsers
Stars: ✭ 39 (-99.52%)
Mutual labels:  build-tool
Proguard
ProGuard, Java optimizer and obfuscator
Stars: ✭ 744 (-90.88%)
Mutual labels:  build-tool
Doit
task management & automation tool
Stars: ✭ 972 (-88.09%)
Mutual labels:  build-tool
Wonderbuild
Wonderbuild is an extremely fast, extensible build tool
Stars: ✭ 9 (-99.89%)
Mutual labels:  build-tool
Gulp Boilerplate
A boilerplate for building web projects with Gulp.js.
Stars: ✭ 840 (-89.71%)
Mutual labels:  build-tool
Godo
godo is an improved `go run`
Stars: ✭ 28 (-99.66%)
Mutual labels:  build-tool

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].