Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop failing on toolstate changes #64977

Closed

Conversation

Mark-Simulacrum
Copy link
Member

r? @kennytm

@Centril, @Manishearth, and I were discussing this on Discord today (there's probably some issues to cc, but I can't find them at a cursory search).

Previously, toolstate would always error the build if the tool regressed (or didn't improve to test-pass). This isn't great for rollups, in particular, as it means we basically can't viably rollup tool updates.

In most cases, when trying to land a submodule (tool) change, you mostly want to just bump the sub-commit, and don't care too much if that actually fully fixes the tool (according to @Manishearth).

This amends that logic to also fail the PR builder "as if" we were on beta, since a PR author changing a submodule likely does want some indication of failure rather than silent acceptance. Ideally, there'd be some way to provide a "warning" but I don't believe that's possible with current set of checks.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 1, 2019
@Manishearth
Copy link
Member

To be clear, the "according to @Manishearth" bit is specifically for Clippy. Other tools may disagree?

Clippy breaks often enough that being able to land a partial fix is nice to just prevent things from piling up and getting worse.

@Centril
Copy link
Contributor

Centril commented Oct 2, 2019

Very nice. I would also be fine with e.g. only doing this for rollups if that makes some folks happier but that might also be more complex to implement.

Copy link
Member

@kennytm kennytm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need a manual FCP from all maintainers listed in https://github.com/rust-lang/rust/blob/master/src/tools/publish_toolstate.py. Or maybe restrict this to clippy only.

src/ci/docker/x86_64-gnu-tools/checkregression.py Outdated Show resolved Hide resolved
@Manishearth
Copy link
Member

Should probably also check with some other clippy maintainers too @oli-obk @phansch @yaahc @flip1995

@Mark-Simulacrum
Copy link
Member Author

I will try to put together a manual FCP comment sometime today.

Previously, toolstate would always error the build if the tool regressed
(or didn't improve to test-pass). This isn't great for rollups, in
particular, as it means we basically can't viably rollup tool updates.

In most cases, when trying to land a submodule (tool) change, you mostly
want to just bump the sub-commit, and don't care too much if that
actually fully fixes the tool.
The previous commit changed toolstate to never fail the build (excluding
beta week and beta/stable branches). This amends that logic to also fail
the PR builder "as if" we were on beta, since a PR author changing a
submodule likely does want some indication of failure rather than silent
acceptance. Ideally, there'd be some way to provide a "warning" but I
don't believe that's possible with current set of checks.
@Mark-Simulacrum
Copy link
Member Author

#65000 is filed for the FCP.

I've also updated the PR with some changes, so r? @kennytm for another round of review

python2.7 "$CHECK_NOT" "$OS" "$TOOLSTATE_FILE" "_data/latest.json" regressed
fi
sed -i "1 a\\
sed -i "1 a\\
$COMMIT\t$(cat "$TOOLSTATE_FILE")
" "history/$OS.tsv"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we not even do the "changed" test any more? That had nothing to do with regressing or not.
If I read this correctly, this would commit a new toolstate to the repo even for commits that do not change any toolstate. Is this intentional? That would be useful for #60301 but I was under the impression that we deliberately reduced traffic for that repo.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh and also, doesn't this remove the check that tools do not regress in the beta week? We only run that check when submodules change now, instead of on all PRs, it seems.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, yeah, that might be right. To be honest I'm having a really hard time understanding this code - I thought we'd handled those cases up above but maybe not :)

@JohnCSimon
Copy link
Member

Ping from triage
@kennytm can you please review this PR?

Thank you.

@kennytm kennytm added S-blocked Status: Marked as blocked ❌ on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 12, 2019
@kennytm
Copy link
Member

kennytm commented Oct 12, 2019

Blocked on #65000.

@Mark-Simulacrum
Copy link
Member Author

Yes, I also need to do some work on this PR -- I'm pretty sure that the current PR diff is not actually correct. I've been meaning to put some time into understanding this but have not managed to allocate a continuous block of time yet :) Blocked is an appropriate status for now though -- I suspect that the FCP is essentially good enough, but we can say this is blocked on me for now. We can also close the PR for now? Not sure.

@bors
Copy link
Contributor

bors commented Oct 29, 2019

☔ The latest upstream changes (presumably #65943) made this pull request unmergeable. Please resolve the merge conflicts.

@hdhoang
Copy link
Contributor

hdhoang commented Nov 21, 2019

Because the FCP looks close to being accepted, I'll move this to inactive-closed as you suggested. Please reopen when you can continue to work on it, thanks!

@hdhoang hdhoang closed this Nov 21, 2019
@hdhoang hdhoang added S-inactive Status: Inactive and waiting on the author. This is often applied to closed PRs. and removed S-blocked Status: Marked as blocked ❌ on something else such as an RFC or other implementation work. labels Nov 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-inactive Status: Inactive and waiting on the author. This is often applied to closed PRs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants