summaryrefslogtreecommitdiffstats
path: root/docs/platform/working-on-the-master-branch.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/platform/working-on-the-master-branch.md')
-rw-r--r--docs/platform/working-on-the-master-branch.md122
1 files changed, 122 insertions, 0 deletions
diff --git a/docs/platform/working-on-the-master-branch.md b/docs/platform/working-on-the-master-branch.md
new file mode 100644
index 0000000..31f0c04
--- /dev/null
+++ b/docs/platform/working-on-the-master-branch.md
@@ -0,0 +1,122 @@
+# Working on the master branch
+
+## Intro
+
+This is a quick howto for working on the 'master' branch. Working on the branch
+is easy as we maintain all changes through gerrit.automotivelinux.org.
+If you are unfamiliar with gerrit, please read these fine how-to pages were put together from the
+Mediawiki community here: <https://www.mediawiki.org/wiki/Gerrit/Tutorial> . This covers the basics very well. Of course we'll work with gerrit.automotivelinux.org instead so apply likewise.
+
+## Installation of tools
+
+Install `git` with your distributions package manager.
+A very useful tool is "git-review" (cmdline is then `git review`).
+Install it from your distro or with `sudo pip install git-review`.
+
+## Prerequisites
+
+It is important to setup git and gerrit properly (see the Tutorial page mentioned above):
+
+* prereq #1) make sure git is properly setup with name/email
+* prereq #2) make sure your ssh key is in gerrit.automotivelinux.org
+
+## Cloning, editing and submitting for review
+
+Follow these steps to submit a change to the 'master' branch:
+
+1. cloning the (tip of the) branch
+
+ ```bash
+ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+ repo sync
+ ```
+
+1. Change the recipe in question (one change at a time - small is better)
+
+ ```bash
+ vi meta-xyz/recipe-foo/bar/baz.bb
+ ```
+
+1. Do a a few builds and tests (try 2 architectures if possible)
+
+ ```bash
+ source meta-agl/scripts/aglsetup.sh .... agl-all-features
+ bitbake agl-demo-platform
+ ```
+
+1. once satisfied do commit your change as usual in git
+ Make sure to do a proper commit message:
+ <http://chris.beams.io/posts/git-commit/>
+
+ ```bash
+ git commit -s
+ <enter proper commit message>
+ ```
+
+1. All repos have .gitreview files already, so now it is just
+
+ ```bash
+ git review
+ ```
+
+1. (optional, but highly recommended!) Reset to gerrit/master
+
+ ```bash
+ git checkout master
+ git reset --hard gerrit/master
+ ```
+
+ It helps during the review process as gerrit would otherwise enforce
+ the whole series of patches to be reviewed/merged together (2nd depends on 1st patch).
+
+1. Rinse (=6) and repeat (=2-5)
+
+## Using git review to review/test-build a specific change in gerrit
+
+'git review' is also useful if you want to review a change.
+Example for meta-agl:
+
+```bash
+ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+ repo sync
+ cd meta-agl/
+ git review -d 8233
+```
+
+This will pull-down change 8233. Now we can build with it applied:
+
+```bash
+ cd ..
+ source ...
+ bitbake ...
+```
+
+## Using gerrit to amend a changeset while in review
+
+The same workflow applies if you want to _amend_ a changeset while it is in review (not merged, yet):
+
+```bash
+cd meta-agl/
+git review -d 8233
+```
+
+This will pull-down change 8233. You can now edit a file:
+
+```bash
+vi meta-xyz/recipes-foo/bar/baz.bb
+git commit -s --amend
+```
+
+ Don't forget a test build
+
+```bash
+cd ..
+source meta-agl/scripts/aglsetup.sh ..... agl-all-features
+bitbake ... # e.g. agl-demo-platform
+```
+
+ Finally call git review to upload the change
+
+```bash
+git review
+``` \ No newline at end of file