| {namespace buck.buckversion} |
| |
| /***/ |
| {template .soyweb} |
| |
| {call buck.header} |
| {param title: '.buckversion' /} |
| {/call} |
| |
| <div class="{css overview}"> |
| |
| If the root of your project contains a file named <code>.buckversion</code>, |
| then Buck will expect that file to contain a Git hash and an optional branch |
| that specifies the version of Buck that should be used to build your project. |
| |
| <p> |
| |
| The contents of <code>.buckversion</code> are expected to be in the format |
| |
| {literal}<pre> |
| [Buck git hash]:[Optional Remote branch] |
| {/literal}</pre> |
| |
| <p> |
| |
| For example, the following would both be valid <code>.buckversion</code> files: |
| |
| <ul> |
| <li><code>abcdef1234567890</code> |
| <li><code>abcdef1234567890:refs/releases/release-01-10-2013</code> |
| </ul> |
| |
| <p> |
| |
| If <code>.buckversion</code> is present, then <code>bin/buck</code> will |
| compare the value in <code>.buckversion</code> with the value of |
| {sp}<code>git rev-parse HEAD</code> in the directory where you checked out |
| Buck from Git. If the values differ, then Buck will update itself to the |
| revision that you specified (using <code>git fetch</code>, tracking the remote |
| branch if needed, and <code>git checkout</code>), and then rebuild itself. |
| |
| <p> |
| |
| If <code>.buckversion</code> is not present, then Buck assumes it is at |
| the correct revision. In that scenario, <code>bin/buck</code> will only |
| rebuild Buck if the compiled <code>.class</code> files for Buck are not present. |
| |
| <p> |
| |
| At Facebook, Buck has undergone rapid change, so if a new version of |
| a binary version of Buck needed to be checked to the projects that use it |
| every time Buck were updated, then those projects' version control histories |
| would be littered with Buck binaries. Relying on this |
| {sp}<code>.buckversion</code> scheme has made it possible to keep those |
| repositories free of Buck binaries while iterating quickly on Buck. |
| |
| <p> |
| |
| To disable this behavior, you can either: |
| |
| <ul> |
| <li>Remove the <code>.buckversion</code> file. |
| <li>Add a <code>.nobuckcheck</code> file. |
| See the article on{sp} |
| <a href="{ROOT}concept/nobuckcheck.html"><code>.nobuckcheck</code></a>{sp} |
| for details |
| </ul> |
| |
| Note that normally, a Git hash in <code>.buckversion</code> will be one |
| on the master branch of Buck as hosted by Facebook on GitHub. |
| However, if you create your own fork of Buck that developers check out, |
| then this scheme should work just as well with the hashes from your forked repo. |
| |
| |
| </div> // close overview |
| |
| {call buck.footer /} |
| |
| {/template} |