summaryrefslogtreecommitdiffstats
path: root/platform/working-on-the-master-branch.md
diff options
context:
space:
mode:
Diffstat (limited to 'platform/working-on-the-master-branch.md')
-rw-r--r--platform/working-on-the-master-branch.md103
1 files changed, 103 insertions, 0 deletions
diff --git a/platform/working-on-the-master-branch.md b/platform/working-on-the-master-branch.md
new file mode 100644
index 0000000..0f91eaf
--- /dev/null
+++ b/platform/working-on-the-master-branch.md
@@ -0,0 +1,103 @@
+# 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
+ ```
+ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+ repo sync
+ ```
+
+2) Change the recipe in question (one change at a time - small is better)
+ ```
+ vi meta-xyz/recipe-foo/bar/baz.bb
+ ```
+
+3) Do a a few builds and tests (try 2 architectures if possible)
+ ```
+ source meta-agl/scripts/aglsetup.sh .... agl-all-features
+ bitbake agl-demo-platform
+ ```
+
+4) 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/
+ ```
+ git commit -s
+ <enter proper commit message>
+ ```
+
+5) All repos have .gitreview files already, so now it is just
+ ```
+ git review
+ ```
+
+6) (optional, but highly recommended!) Reset to gerrit/master
+ ```
+ 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).
+
+7) 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:
+```
+ 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:
+```
+ 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):
+```
+cd meta-agl/
+git review -d 8233
+```
+This will pull-down change 8233. You can now edit a file:
+```
+vi meta-xyz/recipes-foo/bar/baz.bb
+git commit -s --amend
+```
+
+ Don't forget a test build
+```
+cd ..
+source meta-agl/scripts/aglsetup.sh ..... agl-all-features
+bitbake ... # e.g. agl-demo-platform
+```
+
+ Finally call git review to upload the change
+```
+git review
+```
+