Creating Toy Builds

Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History


Perhaps you're making some radical code changes. Perhaps you've embarked on a major redesign of ep-engine, mccouch, and couchdb in one large, brilliant cross-component refactoring.

You want to see if the RPM packaging still works with your changes.

And/or, you wish to provide a "work-in-progress" RPM build to your QE colleagues.

The solution is to kickoff a toy build.

A toy build is an RPM that's built using the same build/compilation libraries, environment and steps that a we use for official product builds.

How to make your own toy build

One time setup...

  • Checkout and build
    • Follow the manifest's README instructions to make sure you can successfully build couchbase. If your code doesn't build on your own dev box, it won't build on our buildslaves.
  • Copy the branch-2.0.xml manifest to toy/toy-YOURNAME.xml. For example...
    cd manifest && cp branch-2.0.xml toy/toy-steve.xml
    • Note, the toy build system looks for manifests that follow the naming pattern of "toy/toy-*.xml".
  • Modify your toy/toy-YOURNAME.xml to point to the work-in-progress branches where your changes live...
    • These git repositories (a.k.a, "remotes") need to be publically accessible.
    • For example, I might have my own personal github account and my own fork/branch of ep-engine, like at git://, "paxos-experimental" branch.
    • In my toy/toy-steve.xml file, I would then add a new <remote name="steve" fetch="git://"/> and change the ep-engine project to use that new, steveyen remote and paxos-experimental revision (<project name="ep-engine" path="ep-engine" remote="steve" revision="paxos-experimental"/>).
  • Commit your toy/toy-YOURNAME.xml changes and push it to gerrit.
    git push gerrit HEAD:refs/for/master
  • Send email to farshid/dustin/steve to reconfigure the buildbot.
    • (For farshid/dustin/steve, on the buildbot master, just run: cd Buildbot && make reconfig)

Whenever you want another toy build...

  • Browse to: and click into your builder
    • For example, click "ec2-centos-x64_toy-steve-builder".
  • Click the "Force Build" button.
  • Go get coffee/tea (15-20 minutes).
    • The first time, though, can be much, much longer (1 hour+).
  • You can watch your builder's log output pages for progress and for any build errors.
  • If your build successfully completed (it's green)...
    • You'll see a "git_describe" property that looks like: "2.0.0r-424-ga2cda1e"
    • Browse to:
    • Search for "toy-YOURNAME" and the 64-bit RPM with your particular git hash ("2.0.0r-424-ga2cda1e").
    • Download your RPM and go play with it.

If the first build fails

  • You will need to provide a fake git_describe value:

Have fun making and breaking your toys...


Toy builds are completely unsupported; they are not QA'ed; do not deploy them to production, etc.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.