New issue
Advanced search Search tips

Issue 703840 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 707332
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

External overlay COMMIT-QUEUE.ini files ignored.

Project Member Reported by dgarr...@chromium.org, Mar 21 2017

Issue description

We have a single git repository for all external overlays, checked out as:

REPO/src/overlays

It contains a large number of board overlays, as well as a large number of COMMIT-QUEUE.ini files of the form:


REPO/src/overlays/overlay-amd64-generic/COMMIT-QUEUE.ini

However, since these files aren't at the root of the git repository, they are ignored.
 
Cc: vapier@chromium.org
Here is an example CL that broke the CQ, which could have been caught before that if the PreCQ respected the proper ini files.

https://chromium-review.googlesource.com/c/455296/
Owner: akes...@chromium.org
The pre-cq walks up to the nearest parent directory of all modified files, then looks for an ini file from that or above.

in this case, the nearest parent was above any of the ini files.

I think this is WAI
This file was in the CL, but didn't trigger the ini listed above.

overlay-amd64-generic/profiles/base/make.defaults
		overlay-amd64-generic/profiles/base/make.defaults				+2, -0	
	A	overlay-arm-generic/profiles/base/make.defaults				7 lines	
	A	overlay-arm64-generic/profiles/base/make.defaults				7 lines	
		overlay-x32-generic/profiles/base/make.defaults				+5, -0	
		overlay-x86-generic/profiles/base/make.defaults				+5, -0	
+26, -0	

Nearest common parent of those files = the root directory of the repo.

There is no .ini file in the root directory of the repo.
Basically, there is no logic for combining multiple .ini files (how would we combine them? intersect? union? lots of non-trivial behaviors that might not be desired based on the pre-cq configurations, ignorable stages, etc). So instead the feature intentionally gives up on picking an .ini file in that case.
Maybe we want a catch-all ini file for the overlay repo, or maybe we want some .ini-file combining logic, to get the behavior that you seem to expect?
I suspect that if we got rid of ignorable stages, the rest is reasonably joinable.

IE: union of all builders. submit only if all agree.


Here is the full list of ini's that ignore stages. I suspect that most of them are more properly serviced by creating specialized builders that only test what's needed, and skipping the CQ.

./src/repohooks/COMMIT-QUEUE.ini:ignored-stages: UNitTest HWTest VMTest UploadPrebuilts Archive
./src/private-overlays/project-goofy-private/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/platform/ec/COMMIT-QUEUE.ini:ignored-stages: HWTest ImageTest VMTest
./src/platform/factory_installer/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/platform/depthcharge/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/platform/factory/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/third_party/coreboot/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/third_party/intel-framework/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/third_party/u-boot/files/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/third_party/seabios/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest
./src/third_party/qca-framework/COMMIT-QUEUE.ini:ignored-stages: HWTest UnitTest VMTest
./src/platform2/login_manager/COMMIT-QUEUE.ini:ignored-stages: UploadPrebuilts Archive
./crostools/COMMIT-QUEUE.ini:ignored-stages: HWTest VMTest

fair enough.

My only concern would be CLs that touch a huge number of files with a huge number of independent INI files, but we could put a cap on the union or something.

Comment 10 by aut...@google.com, Mar 28 2017

Labels: -current-issue
Mergedinto: 707332
Status: Duplicate (was: Untriaged)
Duping into a sustainable fix idea that could also apply to this repo.

Sign in to add a comment