Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Install XCode from the Mac App store (the command-line tools are not sufficient) and open it at least once so the developer tools can initialize. This will take a while. After installing, switch to the active developer directory:

    Code Block
    sudo xcode-select -switch /Applications/Xcode.app && sudo xcodebuild -license accept
  2. Install homebrew.

  3. Install the following brew packages:

    Code Block
    brew install autoconf cmake bazelisk make gpatch
  4. Optional: brew install git. macOS ships with git, but it's old. This has been a problem in the past, although currently there’s no problem using the version of git that comes with macOS. Once you install git via brew, relaunch your terminal to make sure your git version is up to date. You can confirm this by comparing the output of

    Code Block
    which git

    to the output of

    Code Block
    languagebash
    echo $(brew --prefix)/bin/git

    If they match, you're using brew's git!

  5. Install Go. (Note this is not technically a requirement if all you want to do is run builds and tests via Bazel, but generally you will also want to have a toolchain installed for development.)

    Code Block
    brew install go

    Other options include:

    1. Official installer via clicking (don't do this)

    2. Official installer via brew install --cask go (it's ok)

    3. from source (you already know what you're doing, right?)

  6. Install node and javascript tools. As with Go, this is not required to do builds, but if you touch Javascript code at all you’ll want them for development.

    Code Block
    brew install node@16 pnpm yarn
  7. Clone the repo using git and navigate into it

    Code Block
    mkdir -p $(go env GOPATH)/src/github.com/cockroachdb
    cd $(go env GOPATH)/src/github.com/cockroachdb 
    git clone https://github.com/cockroachdb/cockroach
    cd cockroach
  8. Add your fork as a remote (assuming you forked cockroach on GitHub)
    git remote add yourgithubusername git@github.com:yourgithubusername/cockroach.git

  9. You should be good to start developing. Begin by running ./dev doctor and following its suggestions to configure your workspace. When the doctor says you’re ready, you can run ./dev build to build the Cockroach binary, or ./dev build short to build the same Cockroach binary without the DB Console, which is faster to compile. See the Developing with Bazel Wiki page for more info.

Cross-compilation

These steps are only necessary if you wish to cross-compile, which requires Docker on macOS.

...

Ensure you have Docker installed.

Code Block
brew install --cask docker

...

Cross-compilation requires a Docker install on macOS, as you need to be able to run the Linux-host cross toolchains.

If you are a Cockroach Labs employee, you should not install Docker Desktop as it is restricted software. Rancher Desktop and Podman are open-source alternatives that you can use. See also /wiki/spaces/devinf/pages/3175022790 .

If you are not a CRL employee, feel free to use Docker Desktop for this purpose.

Building with make

Note: the Makefile is deleted as of master. You may find this content helpful for building very old versions of cockroach.

...