Gaia/UX Branch

From MozillaWiki
Jump to: navigation, search

V1 UX Branch

Background:

As of Nov 8, it has been hard to get UX fixes into `mozilla-b2g/gaia` because engineers are trying hard to get stability up and bug counts down. UX improvements/fixes are difficult to get merged because the review process is focused first on blocking and broken issues.

As a temporary approach, we've set up a UX branch at https://github.com/gordonbrander/gaia/tree/ux to keep the needle moving forward on UX fixes. Engineering can cherry-pick fixes from this branch into master. The goal is to show a significant improvement in this branch and to get QA signing off on it.

How:

  • Primary: get bugs flagged blocking+ and dev assigned.
  • Secondary: for bugs that do not qualify as blocking+, prioritize and build on UX branch, then apply to merge to main branch.

High level process for UX branch:

  1. Identify bugs
  2. Patryk + Steve triage to nom as blocking+, and prioritize the non-blockers.
  3. Submit patches for prioritized patches
  4. QA test
  5. Pull request once weekly

How to do Development

Ok, now that you have gordonbrander and upstream set up as remotes to your local copy, here's how you use them.

All your development should be done in feature branches. Let's create one now. Start by checkout out master. Always branch from master, not from ux branch.

   git checkout master

Update master to the latest from mozilla-b2g/gaia:

   git fetch upstream
   git merge upstream/master

Create your branch. It's best to name the branch after the bug.

   git branch bug-777077
   git checkout bug-777077

...hack, hack, hack... Commit your changes. Don't forget to rebase if you've made more than one commit. Ok, Done!

Now you'll want to push your new branch to your fork.

   git push -u origin bug-777077

Next, you'll want to issue a pull request to my UX branch. Copy/paste the link below, and change "yourusername:bug-777077" to your github username and your actual branch name. Then hit enter!

https://github.com/gordonbrander/gaia/pull/new/gordonbrander:ux...yourusername:bug-777077

The pull request screen should load up with all the correct settings. Click "send pull request".

That's it! I'll review your pull request, then fast-track it in.

Etiquette

We want to be model citizens when it comes to doing development.

  • File a bug for the issue. Describe it in detail.
  • Create a local branch for each bug: `git branch bug-xxxxx`.
  • Each commit message must start with the bug #: `Bug xxxxx - My Message`.
  • Rebase changes in your bug branch before issuing a pull request to `gordonbrander/ux`. See https://help.github.com/articles/interactive-rebase. We should be merging one commit per fix so that fixes can be easily cherry-picked.
  • Create a patch (diff file): `git diff > bug-xxxxx.diff`. Attach it to the bug.
  • Follow any code style guidelines.
  • Issue pull request to `gordonbrander/ux`.
  • Changing JavaScript or working on any non-trivial commit? Go through the normal submission channels first. Issue a pull request from your bug branch to mozilla-b2g/gaia, then also issue a pull request to gordonbrander/ux. Moral of the story: if you need it smoketested, pull request to mozilla-b2g/gaia.
  • Please add `uxbranch` in the bugzilla whiteboard for tracking
  • If your bug has been merged into UX branch, don't mark it as fixed. It ain't fixed until it merges with master.

Bugzilla

Schedule

  • UX branch is updated daily.
  • Pull requests are reviewed several times a week
  • UX Branch is tested by QA weekly
  • QA-verified fixes are merged with master weekly

QA

QA is doing weekly testing of UX Branch. Details:

Weekly QA for UX Branch
B2G Vidyo Room
Tues @ 1:00pm-2:00pm

For Maintainers

Further details on UX branch process are available here: Gaia/UX_Branch/Maintenance

Previewing UX Branch

Instructions for flashing UX branch to your phone. Note that you should never merge into or from the UX branch for development. You should always branch from master. These instructions are only for getting a local branch that you can flash to your phone.

Sign into Github, fork http://github.com/mozilla-b2g/gaia (if you haven't already).

Add my repository as a remote to the local copy of your fork:

   git remote add gordonbrander https://github.com/gordonbrander/gaia.git

Create a new local branch and set it up to track the remote branch:

   git checkout -b ux gordonbrander/ux

If you need to update your copy of the ux branch with the latest from gordonbrander/ux:

   git fetch gordonbrander
   git merge gordonbrander/ux