New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 715501 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

factory: easy bundle creation: Decide if test image should be selected form factory branch of FSI branch.

Project Member Reported by hungte@chromium.org, Apr 26 2017

Issue description

This is inspired by recent discussion of Reef factory branch strategy.

Currently we allow two different strategies for getting test image for factory process -
 use the one from factory branch, or
 use the one from release branch (same as FSI).

There are always pros and cons for each decision.

[factory branch]
pros:
 Can be really stabilized. can add any hacks or workarounds.

cons:
 For new projects sharing same factory branch, they usually find it pretty hard to figure out what's missing on factory branch because most work are done on ToT & release branch.
 Sometimes developers will keep saying "why are you using a very old image?"
 The recommended way to support new projects is using "fast-forward kernel". However sometimes the dependency in userland may cause new builds fail to work -- and this did happened before.

[release branch]
pros:
 Same as FSI. Believed to be stable without problem.
 Less cherry-pick work.
 If we always use release branch in future, factory branch can stop building test images and would be blazing fast (only need to build toolkit) just like firmware branch.

cons:
 No way to add dirty hacks or workarounds since release images are restricted.
 Builder will stop building old release branches and hard to get new builds.


I personally believe having a "working factory branch" is still the better model, but just like what we've seen on Reef, that can be pretty difficult to maintain, especially that partners will keep saying "these issues must be caused by missing CLs between factory branch and release branch".
And according to Bernie, (1) Infra team prefers to prevent cutting new branches if possible, that each chipset family should share same factory branch (2) There's no way to fast-forward all repos.

Any thoughts for how to deal with that?

Or should we just split factory branches to factory-$BOARD-toolkit-XXX and factory-$BOARD-test-XXX ? (or factory-$BOARD-XXX and test-$BOARD-XXX)
 

Comment 1 by hungte@chromium.org, Apr 26 2017

Maybe it's not bad to create a dedicated branches like 'toolkit-$BOARD-XXX'.

However, unfortunately the factory branches still have to build netboot & factory shim.

So having 'factory-*' and 'test-*' branches may be more close to what we need today -- with the cost of doubling branches and builders (maybe not a problem in future if we have unified builds).

Comment 2 by hungte@chromium.org, Jul 26 2017

Cc: -youcheng@chromium.org -phoenixshen@chromium.org -stimim@chromium.org chromeos-factory-eng@google.com
Owner: phoenixshen@chromium.org
Status: Assigned (was: Untriaged)

Sign in to add a comment