aboutsummaryrefslogtreecommitdiff
path: root/llvm_tools
AgeCommit message (Collapse)Author
2020-06-24llvm_tools: fix up namingGeorge Burgess IV
This replaces `master` with `main` where possible, per the linked bug. Since upstream LLVM has a `master` branch, and there appears to be general support in FOSS for swapping to a different naming convention (`main`), this also makes LLVM's upstream branch name into a constant that we can easily flip if needed. BUG=chromium:1099035 TEST=Unittests Change-Id: I0844cfb4fec00f761e39b0443299daa918fa37ab Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2265047 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2020-05-21llvm_tool: update README of cherrypick_cl.pyJian Cai
Update its README now that we made changes to the script. BUG=chromium:1057428 TEST=none. Change-Id: I62e198892bc9fff2a0f930705f9451d46b50b31d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2212423 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-05-21llvm_tool: add an option to create CLs for cherry-picks.Jian Cai
Add an option to create a CL for cherry-picking patches of LLVM projects. BUG=chromium:1057428 TEST=local tests. Change-Id: I769c9de7112e521af0bf1d701aa4ac2959994658 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2163957 Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2020-05-06llvm_tools: Remove unused verbose argsManoj Gupta
RunTryJobs does not take a verbose arg anymore. Fix modify_a_tryjob.py to not pass it. BUG=None TEST=llvm_bisection works Change-Id: Ief59aa5f8df2ed9364e506df2b066a02167ee6bd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2185710 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2020-05-04llvm_tools: add logging to the revert checkerGeorge Burgess IV
Somehow this revert checker is dropping reverts on the floor, which is confusing to me. Log the 'last run' state so it's easier to understand what this checker was thinking. BUG=None TEST=Ran the script Change-Id: I586bbbd35f7d414faebda9068c04f552152891de Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2180842 Tested-by: George Burgess <gbiv@chromium.org> Reviewed-by: Tiancong Wang <tcwang@google.com>
2020-05-02llvm_tool: cherry-pick multiple patches at onceJian Cai
This change will allow cherrypick_cl.py to take in multiple SHAs at once and create local patches accordingly. All these SHAs will be applied to the same starting SHA. The package a patch applies to will be inferred automatically, so users no longer have to specify the package name. If a patch changes files in more than one package, it will be split into smaller patches by package and applied accordingly. The patch information will be added to PATCHES.json of each affected package. BUG=chromium:1057428 TEST=local tests. Change-Id: I8c4d93716b7682b42c8202e8b939ca2175775fdf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2175675 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-05-01llvm_tools: add commit subjects to revert emailsGeorge Burgess IV
I got a piece of feedback that adding subjects inline would likely make revert emails easier to read 'at a glance'. This CL adds those. New email revert lines will look like: - r385979 (appears to revert r383879): Revert "[NFC][ARM] Update test" BUG=None TEST=unittests; looked at a --dry_run email Change-Id: I5fb5ea12fa1d4a6b2601fbd5c244935662dc4270 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2174823 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2020-05-01llvm_tools: add Android support to the revert checkerGeorge Burgess IV
BUG=None TEST=Ran; received an email Change-Id: I3db8d2e4a81fbb4e16ab1b212113c675bd0811b7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2173675 Reviewed-by: Pirama Arumuga Nainar <pirama@google.com> Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-05-01llvm_tools: refactor to support multiple SHA sourcesGeorge Burgess IV
This refactors code a bit and tweaks our CLI so we can more easily support various sources of 'interesting' SHAs. The intent going forward is to have one program invocation per SHA source (e.g., one Android, one CrOS, etc). BUG=None TEST=Ran the script Change-Id: Ic3c682985ca688aa0e0ac38902d88f8b6dd2a223 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2173674 Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-04-28llvm_tools: don't check the same SHA for reverts twiceGeorge Burgess IV
It occurred to me that there are times where llvm-next == llvm-stable. If that's the case, we shouldn't generate two emails with (nearly) identical contents. BUG=chromium:1046988 TEST=unittests Change-Id: Ib19db46daf95e73c64cc958d57c4220fc957bb51 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2171297 Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-04-28llvm_tools: mail the mage from the revert checkerGeorge Burgess IV
I accidentally removed this in an earlier CL. BUG=chromium:1046988 TEST=unittests Change-Id: Iebf0c282383d1e99ddeb0cafa7ffa93f1dc27abc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2171296 Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: Tiancong Wang <tcwang@google.com>
2020-04-28llvm_tools: use tiny_render in the nightly revert checkerGeorge Burgess IV
Now that we have `tiny_render` imported into `cros_utils`, we can use it. This lets us easily linkify and stylize our emails, and makes comments like tcwang's in Ibc3ef1d2e3b5a3301366e971cacf53396a6ca2aa much easier to address. BUG=chromium:1046988 TEST=unittests; sent an email Change-Id: I538efd2e349a48bd433c826359eb0dd94b422966 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2169010 Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-04-28llvm_tools: add a nightly revert checkerGeorge Burgess IV
This CL adds a script that uses our new revert checker bits to send nightly emails about newly-discovered reverts in LLVM. It should be directly usable from a crontab. BUG=chromium:1046988 TEST=unittests; a few dry-run emails Change-Id: I361d3e214c5d563e71cc4120b76b78e5b3e63f40 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2165514 Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-04-28llvm_tools: add a revert checkerGeorge Burgess IV
This CL adds a revert checker script. The intent is to build on it for later automation, but it's also usable on its own. Please see the new docs for details on usage. BUG=chromium:1046988 TEST=unittests Change-Id: Ibc3ef1d2e3b5a3301366e971cacf53396a6ca2aa Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2165513 Reviewed-by: Tiancong Wang <tcwang@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-04-28llvm_tools: make an llvm_project module for testsGeorge Burgess IV
I'd like to reuse these functions in an upcoming revert checker. This refactors them into their own module, so we don't have tests relying on tests. BUG=chromium:1046988 TEST=unittests Change-Id: I8766f03b3ee8b0cf5b0c128df0d0531aee5c0339 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2165512 Reviewed-by: Luis Lozano <llozano@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2020-04-23llvm_tools: Add --cq_trybot option to specify cq trybots using cqTiancong Wang
The users now can specify one of {llvm,llvm-next,llvm-tot} when using cq to run the tests with this patch. Invalid cq trybots will be denied. BUG=chromium:1072063 TEST=Unittest pass TEST=crrev.com/c/2163157 Change-Id: Ib1f57267a2e37ebe0e71042e8b24cb2281380f3c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2163257 Commit-Queue: Tiancong Wang <tcwang@google.com> Tested-by: Tiancong Wang <tcwang@google.com> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-21llvm_tot: add an option for recipe builders.Jian Cai
Add an option to launch LLVM TOT builders with recipe builders to update_packages_and_run_tests.py. The builders launched will not run hwtests for now. BUG=chromium:1072063 TEST=local tests. Change-Id: I1c34090f2d2ea6d9b7efab0a0dccf795396c96d1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2157624 Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-17llvm_tools: cherry pick CLs in addition to LLVMJian Cai
Add support to cherrypick_cl module to cherry pick CLs for other packages in addition to LLVM. BUG=chromium:1057428 TEST=local tests. Change-Id: I8dfbb3d57032525dd19d0461f0943c370f987e17 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2154004 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-04-17llvm_tools: move common functions into standalone modulesJian Cai
Move common functions into separate modules and update dependencies accordingly. BUG=chromium:1057428 TEST=local tests. Change-Id: I40f1b613f0a41f1fc478c811379c851479aff7c3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2151708 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-04-14llvm_tools: merge update_packages_*.py filesJian Cai
Merge update_packages_and_run_tryjobs.py and update_packages_and_test_cq.py as the two modules share much command code. BUG=chromium:1001602 TEST=local tests. Change-Id: Iac957ea77af4257e454fec99ff13424e778ec51a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2148478 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-04-13llvm_tools: check more arguments when launching LLVM TOT tryjobsJian Cai
update_packages_and_run_tryjobs.py currently only check LLVM SVN revision to decide if we should launch tryjobs. This change includes more factors to consider, including builders, extra CLs, tryjob options, and ebuild versions of the packages. BUG=chromium:1001602 TEST=local tests. Change-Id: Id0ba762558f8df3386936f0c797a61c437b97c9f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2143383 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2020-04-13llvm_tools: Add default value for dependent CLsManoj Gupta
Use [] as a default value to avoid non-iterable type errors. BUG=chromium:1067029 TEST=unit tests Change-Id: Ibc4c76c2dcda8e3846d323345aeea49ac2e9acaf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2148005 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2020-04-13llvm_tools: Stop marking CL as WIPManoj Gupta
WIP CLs are not handled by gwsq to find oncall reviewer. We already pass "--ne" so the emails are not sent out for anyone monitoring this repo which is probably enough. BUG=chromium:1067029 TEST=unit tests, gswq assigned reviewer in CL:2146298 Change-Id: I962d6201482a5ba9bc3a0db2ba6db4fc4f0841de Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2148000 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-10llvm_tools: fix the naming of ebuilds for LLVM rollsJian Cai
Use LLVM SVN version in the name ebuilds in LLVM roll CLs. BUG=chromium:1041590 TEST=local tests. Change-Id: I61d45b166968d4081f11dd9838b6774d2502250b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2145671 Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2020-04-09llvm_tools: test_cq: Fix when no reviewers are specifiedManoj Gupta
If no reviewers are specified, the tool errors out because 'None' is not iterable. Also update unit test to use mock.call to verify function arguments. BUG=chromium:1067029 TEST=unit tests Change-Id: I542f897ec876211f7fa898550364fa2878691aad Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2142923 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-09llvm_tools: Fix bug in creating symlinkManoj Gupta
Pass "-r" to ln to keep the symlink relative rather than absolute. BUG=chromium:1041590 TEST=unit tests. Change-Id: I925df430abd0d25a94e17a06186ee9f503efa264 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2142920 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
2020-04-08llvm_tools: uprev ebuilds for LLVM roll CLsJian Cai
Currently update_chromeos_llvm_hash.py uprevs ebuild files by increasing the -r*.ebuild by 1. This patch renames the ebuild files with the new SVN reversion and date for LLVM roll CLs. BUG=chromium:1041590 TEST=local tests. Change-Id: I209191f7d34594010914afb54d4c346e3f13c6fa Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2139094 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-04-02llvm_tools: test_cq: Add more featuresManoj Gupta
Add more features: 1. Choose between llvn and llvm-next 2. Specify list of reviewers for the update CL. BUG=chromium:1067029 TEST=unit tests Change-Id: I512c5b5fe944dc49954f9ab82faaf86c8eab983f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2134284 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-02llvm_tools: Add tool for CQ dry run for update CLManoj Gupta
Add tool to update packages and start a CQ dry run on the CL and its dependencies. BUG=chromium:1067029 TEST=unit tests Change-Id: I593b7ee40985d9146f9d16f3e3e7d64bdeb8727a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2133242 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-02llvm_tools: Add feature to specify a terminating commit messageManoj Gupta
Allow sepcifying a terminating commit message. This will be useful to specify CL dependency information e.g. "Cq-Depend: chromium:NNN". BUG=chromium:1067029 TEST=unit tests Change-Id: I2dfa751b28f64df50169cd424d39a3f3f4f1de6a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2133241 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-04-01llvm_tools: Switch to "git -F"Manoj Gupta
Use git commit -F to get a better formatted commit message for the created CLs. BUG=chromium:1067029 TEST=unit tests Change-Id: I72918274d7b565013697201ee2872b8ad33e2648 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2133227 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org>
2020-03-26llvm_tools: rename update_chromeos_llvm_next_hash.pyJian Cai
Now that update_chromeos_llvm_next_hash.py can be used to create LLVM roll CLs too, rename it to update_chromeos_llvm_hash.py to avoid confusion. BUG=chromium:1041590 TEST=local tests Change-Id: I18df7c2fe1f73566d053e963e606d28562637c6b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2119808 Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2020-03-25llvm_tools: parameterize update_chromeos_llvm_next_hash.pyJian Cai
Currently update_chromeos_llvm_next_hash.py can only be used to create CLs that update LLVM_NEXT_HASH in toolchain-related ebuild files, as it hardcoded which git hash to update. This change allows users to choose betwen LLVM_HASH and LLVM_NEXT_HASH, and therefore can be used to create LLVM roll CLs automatically. BUG=chromium:1057428 TEST=local tests Change-Id: Ifc0cadb7b618d4780aceb92dcc8891941c612ecb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2112250 Reviewed-by: Bob Haarman <inglorion@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-03-20llvm_tools: add git_llvm_rev notes.George Burgess IV
BUG=None TEST=None Change-Id: I64dd7b2e8a5e5210d3a53bb1de5c510072715aa4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2113170 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2020-03-10llvm_tools: add a simple cherrypick scriptGeorge Burgess IV
Given a SHA, this script will cherrypick the CL from LLVM, add it to the appropriate filesdir, and update PATCHES.json with an appropriate comment. No testing is included, since the code is pretty straightline, and it's expected to be used interactively. In other words, if it breaks, *shrug*. BUG=chromium:1057428 TEST=Ran on a few test-cases. Change-Id: I8cb361bb29ec239316847a781a1edfd7941c7551 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2095772 Tested-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2020-02-28llvm_tools: Uploaded CL as WIP and do not send emails.Manoj Gupta
Mark CL as wip and do not send emails to avoid unnecessary email churns for people monitoring the changes. BUG=None TEST=CL uploaded as wip and with no emails sent. Change-Id: I8577fb8a149b5511bc27df2a7e79901b1c778721 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2080652 Tested-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Jian Cai <jiancai@google.com> Reviewed-by: George Burgess <gbiv@chromium.org> Commit-Queue: Manoj Gupta <manojgupta@chromium.org>
2020-02-13toolchain-utils: migrate all in-use projects to python 3Zhizhou Yang
This patch migrates all in-use projects left to python 3. BUG=chromium:1011676 TEST=Passed unittests and launched scripts manually. Change-Id: I7f2de4e1131c05bacfac80667f3064da8adaebfd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2051397 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Zhizhou Yang <zhizhouy@google.com> Auto-Submit: Zhizhou Yang <zhizhouy@google.com>
2020-02-05Add --use_src_head.Chih-Hung Hsieh
This flag is used in non-bisecting mode by Android llvm builder, to use the HEAD of src_path directory as is, without calling git_llvm_rev or get_llvm_hash. BUG=None TEST=None Change-Id: I99f75936d85b969009df3648d4759ff98e63bd4c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2037149 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Chih-Hung Hsieh <chh@google.com> Commit-Queue: Chih-Hung Hsieh <chh@google.com> Auto-Submit: Chih-Hung Hsieh <chh@google.com>
2020-01-27llvm_tools: remove unused importGeorge Burgess IV
`requests` is an artifact of an old way of doing things, and breaks things on Android bots. Best to just remove it. This also fixes other misc lints in that file BUG=b:147699825 TEST=unittests Change-Id: I3f465f9a129679b104e328ab8307298af1df651b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2023775 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Pirama Arumuga Nainar <pirama@google.com> Tested-by: George Burgess <gbiv@chromium.org>
2020-01-17patch_manager_unittest: rename variables to be more meaningfulJian Cai
BUG=chromium:1042953 TEST=verified locally. Change-Id: I1a452c2756491e69121a161a32ab007c4e79629d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2006728 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-01-17patch_manager: appease pylintJian Cai
Fix unused-argument complaints in unit tests. BUG=chromium:1042953 TEST=verified locally. Change-Id: I7037fc10f8160a5f1f8929a3256e91255dd125ac Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2006330 Reviewed-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: Jian Cai <jiancai@google.com>
2020-01-11git_llvm_rev: auto-update llvm-project-copy in testsGeorge Burgess IV
My local llvm-project-copy was out-of-date. It's nice if we can automatically handle that. This also fixes lints and such that weren't able to fire when this was originally landed. BUG=chromium:1041016 TEST=Wiped out my LLVM tree; it synced without issue. Tried syncing with a timedelta of seconds=2; everything WAI. Change-Id: I4a4811bb1500db0b00c924eec0be12dc57499fc6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1995316 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2020-01-11git_llvm_rev: handle merge commits more gracefullyGeorge Burgess IV
llvm grew a relatively large merge commit recently, which broke this script noticeably. There's analysis of why this happened in the bug. tl;dr is that `rev-parse ${sha}~${N}` and `rev-list --count` don't do the same thing without extra flags. BUG=chromium:1041016 TEST=Unit tests. A few random runs in my LLVM tree. Change-Id: I393d1ada842b5f19846d961b403641bc958b191f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1995315 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
2019-12-10llvm_tools: update commit messageJian Cai
We should mention git hashes in the CLs automatically created for LLVM roll now that the hashes become the only revision numbers LLVM uses. BUG=chromium:1027950 TEST=local tests. Change-Id: Iaec59599d4fa0d133e09d2a31db45c777a2d1e60 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1959439 Commit-Queue: Jian Cai <jiancai@google.com> Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: George Burgess <gbiv@chromium.org>
2019-12-10llvm_tools: add git_llvm_rev to the copy/paste listGeorge Burgess IV
BUG=None TEST=./copy_helpers_to_chromiumos_overlay.py Change-Id: I8296968ac8e51b48c84c877e0f8610832721bcc2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1957896 Tested-by: George Burgess <gbiv@chromium.org> Auto-Submit: George Burgess <gbiv@chromium.org> Reviewed-by: Caroline Tice <cmtice@chromium.org> Commit-Queue: George Burgess <gbiv@chromium.org>
2019-12-09Remove trailing newline from sha/git hash.Caroline Tice
Currently there is a trailing newline no the git has that is causing git rev-parse to fail. This CL removes the trailing newline. BUG=None TEST=None Change-Id: I509871fda6bc7ec77bf088d54490b68d3b58e268 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1957891 Reviewed-by: George Burgess <gbiv@chromium.org> Commit-Queue: Caroline Tice <cmtice@chromium.org> Tested-by: Caroline Tice <cmtice@chromium.org>
2019-12-07LLVM tools: sync python scriptsJian Cai
Sync python scripts from sys-devel/llvm/files/patch_manager that fixed broken LLVM roll builders. BUG=chromium:1027950 TEST=local builds. Change-Id: I0f1c7147e937d59dfe859d36aa8cfcfcbfd1fdb9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1949693 Reviewed-by: George Burgess <gbiv@chromium.org> Commit-Queue: Jian Cai <jiancai@google.com> Tested-by: Jian Cai <jiancai@google.com>
2019-11-24toolchain-utils: use LLVM git hashes to track version numbers.Jian Cai
LLVM has stopped issuing SVN version numbers in its commits. This patch adds a way to track SVN-style version number based on a LLVM git hash. BUG=Chromium:1027950 TEST=local tests. Change-Id: Idd8055ea7deb3bcd17c18ab5b642ce8b389e446a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1915373 Tested-by: Jian Cai <jiancai@google.com> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-11-20Add a git-llvm-rev toolGeorge Burgess IV
The main down-side to this is sort of inherent in any git-based numbering scheme: as time goes on, our distance from r375505 is going to increase, so any tool that takes this approach will take progressively longer. To get an idea of what that means in practice, I set `base_llvm_revision = 199999` (from 2014) and messed around. Converting a near-ToT SHA to a rev took 250ms, and converting that rev back into a SHA took 191ms. For reference, at their current settings, they take 83ms and 106ms to perform those same options, respectively. Hence, I doubt this will become a problem in the next 5 years. If it does start to bite us, we can add complexity to bound our searches. The only op known to take quite a while on this is converting a branch-only commit to a rev, because `git branch -r --contains ${X}` takes quite a while. I don't think that's a common op, so we can worry about that later. BUG=None TEST=A few random commits round-tripped. Tests passed. `mypy --strict` was happy. Change-Id: If093f3593a9f1aa3c6275d9dcd2785864dbfce1d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1907408 Tested-by: George Burgess <gbiv@chromium.org> Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
2019-09-30llvm_tools: Fix error in getting a fixed SVN version.Manoj Gupta
llvm_hash was not initialized when using a fixed SVN version. Fixes the error: UnboundLocalError: local variable 'llvm_hash' referenced before assignment BUG=None TEST=Unit tests pass Change-Id: I83d68908801325c7827b090e6bb472bc54bb3d75 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1831791 Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>