UpstreamDevelopment

Differences between revisions 1 and 2
Revision 1 as of 2011-10-04 07:44:03
Size: 2933
Comment:
Revision 2 as of 2011-10-04 07:49:53
Size: 3086
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Line 8: Line 7:
 * distro
Line 12: Line 12:
 * only reviewed branches merged in
 * always builds into a PPA
 * only code-reviewed branches merged in
 * always builds into a PPA automatically
Line 19: Line 19:
 * inlcudes new tests for the feature  * feature is signed off as ready to merge (by product manager, for example)
 * includes new tests for the feature
Line 21: Line 22:
 * if a branch breaks trunk, it gets reverted

components

  • branches
  • trunk
  • tests
  • sign off
  • bug reports
  • distro

branches

trunk

  • typically lp:project-name
  • only code-reviewed branches merged in
  • always builds into a PPA automatically
  • all tests pass
  • distro can take at any point

branches

  • "feature branches" because where features are built
  • feature is signed off as ready to merge (by product manager, for example)
  • includes new tests for the feature
  • is code reviewed and all tests pass before merged into trunk
  • if a branch breaks trunk, it gets reverted

distro

  • where all trunks go to be used
  • trunks reviewed by distro team before merging
  • always installs
  • tests run automatically

tests

test plans

  • trunk automated testing
  • distro readiness

trunk tests

  • Constantly improving test suite
  • bugs have new regression tests added before fixing
  • tests are run automatically
  • trunk always passes all tests, branches that cause trunk tests to fail are reverted

distro tests

  • automated integration tests run daily
  • manual test plans
  • may require additional testing above and beyong trunk automated testing (for example manual tests in different hardware configurations)

sign off

== trunk tests readiness ===

  • each team has someone to vouch for the quality of their trunk tests

branch code review

  • every merge into trunk is vouched for by someone who is not the developer

distro readiness

  • someone on the distro team vouches fo the readiness of a trunk to be merged into the distro, requires upstream bug tracker to be free of High and Critical bugs
  • trunks that break Ubuntu will be rolled back

bug reports

upstream

  • upstream team is responsible for triaging and fixing upstream bug reports
  • distro will not accept a trunk with High or Critical bugs

Ubuntu

  • someone needs to be responsible for triaging and linking bugs reports in Ubuntu, upstream of Ubuntu Engineering DA
  • Trunks that break Ubuntu will be rolled back

workflow

Pre-Development

upstream

  • define specific trunk
  • identify trunk test owner: who signs off that trunk tests are sufficient
  • write trunk tests, make them run automatically
  • fix bugs until all tests pass
  • make trunk build PPA automatically
  • set up branch code review workflow

distro

  • identify distro-readiness sign off person for each upstream
  • define distro readiness tests

Development

  • starts out with a "clean" trunk for each upstream (all tests pass)*
  • distro integrates trunk into Ubuntu*
  • branches are reviewed, tests written, bugs fixed until trunk passes all tests*
  • distro readiness tests run on trunk
  • if distro readiness tests fail, bugs are logged upstream
  • bugs are fixed in trunk *without new branches merged*, all High and Critical bugs fixed
  • distro readiness tests re-run
  • distro integrates new branch*

* denotes a step that requires sign off

UbuntuEngineering/12.04/UpstreamDevelopment (last edited 2011-10-20 13:54:08 by rick-rickspencer3)