Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upx/build: trybots should rebase when testing #9858
Comments
bradfitz
added
the
builder
label
Feb 12, 2015
This comment has been minimized.
This comment has been minimized.
We can always do git cherry-pick after git fetch the CL in trybot. Any
failures in merging is a build failure (the CL won't submit successfully
anyway)
Even if rebase the CL on gerrit, each time its author updates the CL, the
rebased patch set will be overwritten.
|
This comment has been minimized.
This comment has been minimized.
We could, except that the trybot doesn't use any git right now. It pulls tar.gz files from Gerrit of a commit. We don't even have the "git" command on the builders. |
This comment has been minimized.
This comment has been minimized.
Ahh, that makes the problem harder.
Could we add a patch primitive to the buildlet and send a patch for it to
apply on latest git master tarball?
We might be able to reuse golang.org/x/codereview/patch for that. But we
need to add fuzzy support to that package.
|
This comment has been minimized.
This comment has been minimized.
I wouldn't do anything to the buildlet for this. We could apply the patch using a new service in a Docker container under the coordinator, using real git and/or real patch, and then extract the resulting tarball to push to the buildlets, like normal. |
This comment has been minimized.
This comment has been minimized.
Yeah, that's better.
|
This comment has been minimized.
This comment has been minimized.
This'll need to respect the branch as well to keep trybot useful for release branch testing. |
This comment has been minimized.
This comment has been minimized.
@rsc says in email "Please keep using the exact commit. Thanks." Russ, can you elaborate on what you'd like to see long-term? Would it be useful to also try the commit cherry-picked on top of tip? |
This comment has been minimized.
This comment has been minimized.
Please see https://golang.org/cl/6802/ as an extreme example of why this All trybots are fine with that CL, but because the CL is not rebased to the |
This comment has been minimized.
This comment has been minimized.
Sorry for the false alert. The problem I mentioned in the last comment is Update: the actual reason is not me running on the wrong patch set. So again, trybot should use rebase to test the patch in order to catch this |
This comment has been minimized.
This comment has been minimized.
Trybot really should rebase before testing, two more cases:
|
rsc
added this to the Unplanned milestone
Apr 10, 2015
rsc
changed the title
build: trybots should rebase when testing
x/build: trybots should rebase when testing
Apr 14, 2015
rsc
modified the milestones:
Unreleased,
Unplanned
Apr 14, 2015
rsc
removed
the
builder
label
Apr 14, 2015
This comment has been minimized.
This comment has been minimized.
Attempting to rebase completely breaks any testing of multi-CL changes, since the CL will be considered in isolation instead of the work that has come before. And at least some of us do pretty much nothing but multi-CL changes. In the case of a commit hash where the parent is on origin/master (so it's either the bottom of or not part of a multi-CL change) then rebasing would be fine. But it's very important not to rebase otherwise, unless somehow you rebase the entire sequence. |
This comment has been minimized.
This comment has been minimized.
git fetch origin
git rebase origin/master
will rebase the whole sequence. In fact, that's how you manually rebase
your multi-CL
series to latest master.
|
This comment has been minimized.
This comment has been minimized.
Okay, this is now much easier. We're now using our own Git rev -> .tar.gz server, so we can do things like this more easily, since we don't depend on Gerrit to generate the .tar.gz. |
rsc
added
the
Builders
label
Jun 11, 2015
bradfitz
referenced this issue
Mar 22, 2017
Open
x/build: make trybots refuse to test a commit that's too old #19664
bradfitz
referenced this issue
May 12, 2017
Open
x/build: optional auto-submit on +2 when trybots (with rebase) pass #12482
bradfitz
referenced this issue
Dec 14, 2018
Open
x/build: trybots should include all platforms that can contribute release-blockers #29239
This comment has been minimized.
This comment has been minimized.
This would've helped catch a problem in CL 161497, where the tests passed with an older commit as a parent, but started to fail after being rebased on latest master. If there are concerns with always rebasing in all trybot configurations, we can add just one extra configuration that tests on Linux while performing the rebase (similar to how we test subrepos on previous Go releases via additional trybot configurations). /cc @bradfitz @stamblerre |
This comment has been minimized.
This comment has been minimized.
That's a good place to start. But any +1 TryBot-Result vote would kinda need to expire once anything was submitted. Better than nothing, though. Or we could just focus our effort on a submit queue instead, letting bots do merging. |
bradfitz commentedFeb 12, 2015
Currently with the trybot code, if Go's master is A and we have pending CLs B and C on A, currently we test B-on-A and C-on-A, but then when B is merged, we're still testing C on A, instead of C-on-B.
We should do:
https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#rebase-change
... which will add a patch set to the change, rebased. It could get spammy, though. Shawn says "don't complain when you have patch set 85 on a trivial one line change". So maybe we want to be careful when we do it. Maybe only for auto-submit.