Start a "mini-annealing" builder publishing manifest snapshots |
||||||
Issue descriptionIn order to help unblock Findit integration, set up a luci-scheduler-triggered "mini-annealing" builder. This builder will just sync to ToT and publish a manifest snapshot; no uprevs or any other work needed. Lets push to the public chromiumos/manifest repo; I just created a "annealing-test" branch. Bonus points if we can work with Andrii to figure out how to make the "only snapshot if all the dependencies are synced" requirement work.
,
Dec 22
I would *de*prioritize starting Annealing in favor of higher priority tasks.
,
Dec 22
Correct, this is output of a meeting Lann and I had today. The post-submit builder work can't wait for Annealing and will progress independently.
,
Dec 22
What "SLoC" will findit bisect without the annealing snapshots?
,
Dec 23
The post-submit LKGM will trigger FindIt since that's the only one that will have "good" and "bad" signals to initiate the work. That will be true both before and after PCQ launch. Before the launch, FindIt will do temporal bisection of our repo tree with an understanding of our CQ-DEPEND added in. I don't know if FindIt already understands branch commits or not. After launch, the configuration is the same with the caveat the Post-Submit is doing the same thing, just using Recipes. The problem with just relying on Annealing is that kernel commits have hundreds of CL's in them and land at the same time. (So a single Annealing "step" would be hundreds of CL's.) We will need to bisect within that merge commit to identify the culprit. So, if we are building that capability, we might as well just use that logic throughout. If addition of CQ-DEPEND or merge bisection becomes too difficult, we can certainly start with the Annealing snapshots as a first step. We'd eventually have to sub-Annealing bisection, though.
,
Jan 2
Andrii, have you done any work on following our CQ-DEPEND commit message annotations? That might be reusable between LUCI CQ and Chromite, but it's not that hard a problem if we just want to do our own things (if CQ and our Recipe/Chromite code are too different). This is all work that must be done on the annealing builder irrespective of Findit, I don't see why it would be deprioritized.
,
Jan 2
athilenius@ i did only parsing CQ-Depends, but for old deprecated design. I didn't intend to write truly re-usable standalone component, but I could. I expect to do this work next week between meetings with CrOS folks. I'll cc you on the CLs. SG?
,
Jan 2
I thought more about whether we should do temporal bisection or rely on the annealing manifest over vacation. On further consideration, it seems like doing the annealing manifest would be easier and quicker than temporal bisection. We can have stgao@'s team look at temporal bisection as a follow-on, since we'll have to do both. So, I retract my objection to prioritizing this soonish.
,
Jan 4
tandrii@ That's alright, I think it's simple enough that it's fine to duplicate. Plus this use case is sufficiency different as to make reuse a pain anyway.
,
Jan 4
The following revision refers to this bug: https://chrome-internal.googlesource.com/chromeos/manifest-internal/+/d6b7ef85b2a4a262ea6e3d91d421cda3ace83667 commit d6b7ef85b2a4a262ea6e3d91d421cda3ace83667 Author: Alec Thilenius <athilenius@google.com> Date: Fri Jan 04 17:44:34 2019
,
Jan 4
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/9cdab5729d6b2ba659025b29b2399e824979b805 commit 9cdab5729d6b2ba659025b29b2399e824979b805 Author: Alec Thilenius <athilenius@google.com> Date: Fri Jan 04 17:51:37 2019 Cleaned up the annealing recipe. Cleaned up the annealing recipe a bit in prep for creating a mini-annealing recipe. Bug: 917525 Change-Id: I413dc4921730cdb14fc3d5da8e92d83d17ce4341 Reviewed-on: https://chromium-review.googlesource.com/c/1392739 Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> Reviewed-by: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/9cdab5729d6b2ba659025b29b2399e824979b805/recipes/annealing.py
,
Jan 4
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/84406d59a4c664b06be8e42f97af6d427ef7aade commit 84406d59a4c664b06be8e42f97af6d427ef7aade Author: Alec Thilenius <athilenius@google.com> Date: Fri Jan 04 17:51:38 2019 Add a mini-annealing recipe Add a mini-annealing recipe that is a stripped down annealing recipe. This is also running in dryrun but will be switched on once the LUCI scheduler is setup for it. Bug: 917525 Change-Id: I6233f053442b82bea7903881ff9aa66edfa94661 Reviewed-on: https://chromium-review.googlesource.com/c/1392740 Reviewed-by: Jason Clinton <jclinton@chromium.org> Tested-by: Alec Thilenius <athilenius@google.com> Commit-Queue: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/84406d59a4c664b06be8e42f97af6d427ef7aade/README.recipes.md [add] https://crrev.com/84406d59a4c664b06be8e42f97af6d427ef7aade/recipes/mini_annealing.expected/basic.json [add] https://crrev.com/84406d59a4c664b06be8e42f97af6d427ef7aade/recipes/mini_annealing.py
,
Jan 8
> I don't know if FindIt already understands branch commits or not No. Findit currently works on master branch only. athilenius@: do we have a build (running the mini-annealing recipe) that are triggered through buildbucket already?
,
Jan 8
,
Jan 8
stgao@ No but it's close (days). The plan is to trigger it from LUCI Scheduler though, which in turn creates Buildbucket builds. The last missing chunk is checking that CQ-DEPEND is met for all CLs before committing snapshots, which involves diffing the manifest, walking the commits in each repo, and checking with Gerrit to make sure their deps landed into the local checkout. Right now it's manually triggered and fails most of the time :p
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/2eb41f0e72ee0bbb5e40f30b7a5b296062dcabd8 commit 2eb41f0e72ee0bbb5e40f30b7a5b296062dcabd8 Author: Alec Thilenius <athilenius@google.com> Date: Wed Jan 09 20:25:51 2019 Add launch_mini_annealing script Bug: 917525 Change-Id: I539ffa564d07ba405b72abf828f0fed1af9e7154 Reviewed-on: https://chromium-review.googlesource.com/c/1403139 Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> Reviewed-by: Lann Martin <lannm@chromium.org> [add] https://crrev.com/2eb41f0e72ee0bbb5e40f30b7a5b296062dcabd8/contrib/launch_mini_annealing.sh
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0 commit 32e0be6d98dffa22801bd2c294bdf7c431ffdfa0 Author: Alec Thilenius <athilenius@google.com> Date: Wed Jan 09 20:59:24 2019 Fix git diff_check The git diff-index command didn't do what I thought it did. The git ls-files command seems to have been what I was after. Bug: 917525 Change-Id: I80c56d8ddbb231995becf50607a9806ae2c809e8 Reviewed-on: https://chromium-review.googlesource.com/c/1403135 Reviewed-by: Lann Martin <lannm@chromium.org> Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipes/annealing.expected/basic.json [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git_txn/examples/full.expected/basic.json [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipes/mini_annealing.expected/basic.json [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git_txn/examples/full.expected/retry succeed.json [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git_txn/examples/full.py [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/README.recipes.md [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git/examples/full.expected/basic.json [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git/api.py [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git_txn/examples/full.expected/update ref has diff.json [modify] https://crrev.com/32e0be6d98dffa22801bd2c294bdf7c431ffdfa0/recipe_modules/git/examples/full.expected/detached HEAD.json
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8 commit 2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8 Author: Alec Thilenius <athilenius@google.com> Date: Wed Jan 09 21:41:13 2019 Add log to git recipe module Add a log method to the git recipe module that returns the commit hash and messages for all commits between two refs. Bug: 917525 Change-Id: I2f282fb80e71712ce08a92a52ec1dae502fe956a Reviewed-on: https://chromium-review.googlesource.com/c/1403138 Reviewed-by: Alec Thilenius <athilenius@google.com> Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8/recipe_modules/git/examples/full.py [modify] https://crrev.com/2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8/README.recipes.md [modify] https://crrev.com/2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8/recipe_modules/git/examples/full.expected/basic.json [modify] https://crrev.com/2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8/recipe_modules/git/examples/full.expected/detached HEAD.json [modify] https://crrev.com/2f8ae8d35f064e51e458f61ee4ed6a4e22d162a8/recipe_modules/git/api.py
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/35c87fe018d5335c926bdd426353dfd03d02c614 commit 35c87fe018d5335c926bdd426353dfd03d02c614 Author: Alec Thilenius <athilenius@google.com> Date: Wed Jan 09 21:41:15 2019 Add an XML diff for manifest paths Add a diff_manifest method to repo recipe module to diff two manifests and return an array of changes. Also renamed the old `diffmanifest` to `diff_manifest_informational`. Bug: 917525 Change-Id: I2fc94df51d49bca211f2cd5c999d920f6c0b1887 Reviewed-on: https://chromium-review.googlesource.com/c/1403954 Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> Reviewed-by: Lann Martin <lannm@chromium.org> [modify] https://crrev.com/35c87fe018d5335c926bdd426353dfd03d02c614/README.recipes.md [modify] https://crrev.com/35c87fe018d5335c926bdd426353dfd03d02c614/recipe_modules/repo/examples/full.py [modify] https://crrev.com/35c87fe018d5335c926bdd426353dfd03d02c614/recipe_modules/repo/api.py
,
Jan 10
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/7c0ceb8de45cde097cc7387775fc5a14791211cb commit 7c0ceb8de45cde097cc7387775fc5a14791211cb Author: Alec Thilenius <athilenius@google.com> Date: Thu Jan 10 20:41:43 2019 Add a stage step to git Add a stage step to git recipe module called `add`. This is needed for adding new files before commit, like snapshot.xml on the first run. Bug: 917525 Change-Id: I777654678a8250621945d51fe8d70c8c9c2bfe1f Reviewed-on: https://chromium-review.googlesource.com/c/1403957 Reviewed-by: Lann Martin <lannm@chromium.org> Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/recipe_modules/git/examples/full.py [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/recipe_modules/git_txn/api.py [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/README.recipes.md [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/recipe_modules/git/examples/full.expected/basic.json [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/recipe_modules/git/api.py [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/recipe_modules/git_txn/examples/full.expected/update ref has diff.json [modify] https://crrev.com/7c0ceb8de45cde097cc7387775fc5a14791211cb/recipe_modules/git/examples/full.expected/detached HEAD.json
,
Jan 15
Quick update on this, once crrev.com/c/1412239, crrev.com/c/1412238, and crrev.com/c/1412237 land this "should" be very close to being completed. The last run (including patch crrev.com/c/1412684) was https://ci.chromium.org/swarming/task/426c3d29ab880810?server=chrome-swarming.appspot.com which looks close to correct, although concerned about the `git log` steps. TL;DR: 1-2 days assuming the last few issues are easy to iron out.
,
Jan 17
(5 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/f6812dea8baed1c929dbf61eef293d24c05b0246 commit f6812dea8baed1c929dbf61eef293d24c05b0246 Author: Alec Thilenius <athilenius@google.com> Date: Thu Jan 17 18:16:07 2019 Add ref_exists method to git recipe module Add `ref_exists` method to the git recipe module which checks if the given ref exists in the current branch. Also fixed `log` which was using an incorrect format for the `--pretty` flag. Bug: 917525 Change-Id: I0f4edfdcf418fd6139bf3327225cc2454731ff7e Reviewed-on: https://chromium-review.googlesource.com/c/1412237 Reviewed-by: Lann Martin <lannm@chromium.org> Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/f6812dea8baed1c929dbf61eef293d24c05b0246/recipe_modules/git/examples/full.py [modify] https://crrev.com/f6812dea8baed1c929dbf61eef293d24c05b0246/README.recipes.md [modify] https://crrev.com/f6812dea8baed1c929dbf61eef293d24c05b0246/recipe_modules/git/examples/full.expected/basic.json [modify] https://crrev.com/f6812dea8baed1c929dbf61eef293d24c05b0246/recipe_modules/git/examples/full.expected/detached HEAD.json [modify] https://crrev.com/f6812dea8baed1c929dbf61eef293d24c05b0246/recipe_modules/git/api.py
,
Jan 17
(5 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/f75ba06d39e9c8ac2b6b6108710777b7d503aeb2 commit f75ba06d39e9c8ac2b6b6108710777b7d503aeb2 Author: Alec Thilenius <athilenius@google.com> Date: Thu Jan 17 18:36:07 2019 Add test_output_data property to support call method. Add `test_output_data` property to the `call` method of the `support` recipe module. This allows an object to be passed back from the call in the case of unit testing. Bug: 917525 Change-Id: Ibbaf0161629cbc38562833b6b00e2db1054c52a3 Reviewed-on: https://chromium-review.googlesource.com/c/1412238 Reviewed-by: Lann Martin <lannm@chromium.org> Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> [modify] https://crrev.com/f75ba06d39e9c8ac2b6b6108710777b7d503aeb2/recipe_modules/support/api.py [modify] https://crrev.com/f75ba06d39e9c8ac2b6b6108710777b7d503aeb2/README.recipes.md
,
Today
(12 hours ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/22ad32bfcd4c61068c7b7e84c304bf3490a94deb commit 22ad32bfcd4c61068c7b7e84c304bf3490a94deb Author: Alec Thilenius <athilenius@google.com> Date: Tue Jan 22 18:41:15 2019 Add depends recipe module and update mini-annealing builder Add a `depends` recipe module which supports checking that all depends annotations (which I can't write out in this commit message or CQ barfs) in all CLs between two manifests are checked out locally. Updated the mini-annealing builder to use this check. This is the last chunk needed for the mini-annealing builder (modulo any oversights and/or bugs). Bug: 917525 Change-Id: I251fb4d687733d258e64feaa4d4545bb61caa2ab Reviewed-on: https://chromium-review.googlesource.com/c/1412239 Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> Reviewed-by: Lann Martin <lannm@chromium.org> [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipes/annealing.expected/basic.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/api.py [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/basic.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.py [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/repo/api.py [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/has fulfilled dep.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/__init__.py [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/README.recipes.md [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/repo/examples/full.expected/setup_repo.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/missing from XML.json [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/repo/examples/full.py [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/has missing dep.json [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipes/mini_annealing.expected/basic.json [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipes/mini_annealing.py
,
Today
(12 hours ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/infra/recipes/+/22ad32bfcd4c61068c7b7e84c304bf3490a94deb commit 22ad32bfcd4c61068c7b7e84c304bf3490a94deb Author: Alec Thilenius <athilenius@google.com> Date: Tue Jan 22 18:41:15 2019 Add depends recipe module and update mini-annealing builder Add a `depends` recipe module which supports checking that all depends annotations (which I can't write out in this commit message or CQ barfs) in all CLs between two manifests are checked out locally. Updated the mini-annealing builder to use this check. This is the last chunk needed for the mini-annealing builder (modulo any oversights and/or bugs). Bug: 917525 Change-Id: I251fb4d687733d258e64feaa4d4545bb61caa2ab Reviewed-on: https://chromium-review.googlesource.com/c/1412239 Commit-Queue: Alec Thilenius <athilenius@google.com> Tested-by: Alec Thilenius <athilenius@google.com> Reviewed-by: Lann Martin <lannm@chromium.org> [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipes/annealing.expected/basic.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/api.py [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/basic.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.py [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/repo/api.py [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/has fulfilled dep.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/__init__.py [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/README.recipes.md [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/repo/examples/full.expected/setup_repo.json [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/missing from XML.json [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/repo/examples/full.py [add] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipe_modules/depends/examples/full.expected/has missing dep.json [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipes/mini_annealing.expected/basic.json [modify] https://crrev.com/22ad32bfcd4c61068c7b7e84c304bf3490a94deb/recipes/mini_annealing.py |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by jclinton@chromium.org
, Dec 22Labels: Pri-2