Set up Linaro Android branching scheme and conventions

Registered by Paul Sokolovsky

We now have structured set up for our Android tree: it is AOSP mirror with Linaro code in separate branches. Needs to formalize naming scheme for Linaro branches (topic vs developers vs etc.), and enforce it on Gerrit level (so it wasn't possible to submit/merge patch against upstream branch).

Blueprint information

Status:
Complete
Approver:
James Westby
Priority:
Medium
Drafter:
Paul Sokolovsky
Direction:
Needs approval
Assignee:
Zach Pfeffer
Definition:
Drafting
Series goal:
Accepted for 2011q2
Implementation:
Implemented
Milestone target:
milestone icon 11.10
Started by
Zach Pfeffer
Completed by
Zach Pfeffer

Related branches

Sprints

Whiteboard

Notes:
[2011/10/20 pfefferz] Created https://wiki.linaro.org/Platform/Android/CreatingBranchesInMirroredGits to communicate the recommendations in the BP.

Headline:
Naming conventions for branches are now formalized and enforced in Gerrit.

Acceptance:
Gerrit will not accept changes for a branch not complying with the rules on <Linaro wiki page>.

Moved:
Moving from 11.09 to 11.10 because of an enforceable minimal branch naming scheme in Gerrit is not yet implemented.

Gerrit enforcement is blocked due to Gerrit deficiencies: http://groups.google.com/group/repo-discuss/t/31140275d1cbf57f

Branch revamp postponed until consolidation in Gerrit is finished (or almost finished).

Ideas:
[2011/9/26 pfefferz] At this point in time, I think we can defer branch enforcement. I also think we should keep things simple.

Ideally, the user prefixes the branch their tracking with linaro_

We won't allow developers branches in any branch we mirror. Developer's should move their gits to git.linaro.org and update manually.

Anything that conflicts will be removed in favor of the upstream name.

pfalcon, does this work?

[pfalcon]
1. Have Linaro development topic branches as "linaro-*". Problem: we use dashes and underscores inconsistently, so to start with, it should be "linaro*", and to follow, we should revamp and use one of separators consistently. (We can also make convention to, say, use "-" for branches and "_" for tags).
2. Have develepers' personal branches as linaro/<username>/*. But do we need such? In normal Gerrit workflow - no. But they might be needed when working on in-house software.
3. Any other branch is not committable by Linaro developers. (That the primary aim of the endeavor - to protect upstream branches).

Projects for revamp:
toolchain/cloog - actually hosts pristine tarballs, so no linaro-master needed
toolchain/ppl - actually hosts pristine tarballs, so no linaro-master needed
platform/external/ffmpeg: rename android-0.8 to linaro-0.8 [berolinux]: DONE
platform/external/libvpx: add our version from separate repository in linaro-master branch [berolinux]: DONE

(?)

Work Items

Work items:
Formalize naming scheme for Linaro branches: DONE
Publish/circulate official Linaro branching scheme: DONE
[pfalcon] Enforce minimal branch naming scheme in Gerrit: BLOCKED
[pfalcon] Revamp any non-compliant branches: POSTPONED

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.