V1 UX Branch
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.
- 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:
- Identify bugs
- Patryk + Steve triage to nom as blocking+, and prioritize the non-blockers.
- Submit patches for prioritized patches
- QA test
- 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!
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.
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`.
- 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.
- Status Whiteboard: uxbranch (all bugs targeted for, or merged into UX Branch)
- Status Whiteboard: uxbranch, qa-verified (all UX branch bugs that have been verified by QA)
- Status Whiteboard: landed in uxbranch (all bugs landed in UX Branch)
- Status Whiteboard: landed in uxbranch AND NOT qa-verified (everything yet to be verified by QA)
- Status Whiteboard: landed in uxbranch, qa-verified AND open (candidates for merge with master)
- 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 is doing weekly testing of UX Branch. Details:
Weekly QA for UX Branch
B2G Vidyo Room
Tues @ 1:00pm-2:00pm
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