Clone this repo:

Branches

  1. 8747c1e Update README.md with new manifest name, add cross-repo workflow by Christopher Lane · 9 years ago master
  2. 776726f Sync up with domokit at 0e34ee926b140853b6d8ae4f317affc7caffe672 by Christopher Lane · 9 years ago
  3. c421a5b Update manifest to reflect mojo 9b62f4c721ac8366f36402d80641fc99f9738f89 by James Robinson · 9 years ago
  4. 5f3444a Update instructions for `jiri import` to include --name flag by Christopher Lane · 9 years ago
  5. f8daf34 Add mojo-manifest to manifest by Christopher Lane · 9 years ago

mojo-manifest

Contains the jiri manifest for the Mojo project

Creating a new checkout

Mojo uses the jiri tool to manage repositories https://github.com/vanadium/go.jiri. This tool manages a set of repositories specified by a manifest. The bootstrap procedure requires that you have Go 1.4 or newer and Git installed and on your PATH. To create a new Mojo checkout in a directory called ‘mojo’ run the following commands. The ‘mojo’ directory should not exist before running these steps.

curl -s https://raw.githubusercontent.com/vanadium/go.jiri/master/scripts/bootstrap_jiri | bash -s mojo
export PATH=`pwd`/mojo/.jiri_root/scripts:`pwd`/mojo/depot_tools:$PATH
cd mojo
jiri import --name manifest mojo https://mojo.googlesource.com/manifest
jiri update

Setting up your environment

Mojo requires several libraries and tools to build and run. Many are placed within the checkout and updated whenever jiri update runs, but some must be installed on the system. Run

mojo/src/build/install-build-deps.sh

to install these packages.

See https://github.com/domokit/mojo for instructions on building and running tests for Mojo.

Submitting changes

To submit a patch in the Mojo repo do the following

cd mojo/src

# create a new change (makes a new local branch, checks it out)
jiri cl new branch_name

# write some awesome stuff, commit to branch_name
vim some_file ...
git commit ...

# upload the patch to gerrit
jiri cl mail

# once the change is landed, clean up the branch
jiri cl cleanup branch_name

Cross-repo changes

Changes in two separate repos will be automatically tracked for you by jiri if you use the same branch name.

cd mojo/src
jiri cl new add_feature_foo
vim foo_related_files ...
git commit ...

cd mojo/src/base
jiri cl new add_feature_foo
vim more_foo_related_files ...
git commit ...

# upload both changes to gerrit
jiri cl mail

# cleanup the branch after the changes land
jiri cl cleanup add_feature_foo

Multipart changes are tracked in gerrit via topics, are tested together, and can be landed in gerrit at the same time with submit whole topic.