-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Lintcheck: Update crates and expand CI testset to 200 crates #13124
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
Conversation
Could we just cut down the most popular crates to 100-150 to achieve that? 15 minutes is a long time for a CI run. I think all other jobs finish in about 5-7 minutes usually. |
I think it's fine if lintcheck takes a bit longer, since it will usually pass unless, there are ICEs. I intentionally aimed for the top 200 crates due to this comment from
Also, I'm guessing that it's usually the reviewer or triage that looks at the lintcheck output. Then it's better if we have more data. This is also usually async to the PR author. |
d7123b2
to
01ea926
Compare
Yeah there'll be a whole bunch Getting |
01ea926
to
813df2e
Compare
Is this because cargo doesn't always respect the lock files? Then let's not block the PR on that, but keep that as a hopeful performance boost in the future |
Some things didn't have |
Should I check that in this branch ? |
Nah doesn't have to be done here |
I had a look and yeah many libraries don't include How long are we talking for 100/150 crates? |
We could try to hack around that by having a crate in our repo that includes all of them with a |
|
Without cargo and deno, w#re at slightly below 10 minutes. Does that sound like a better CI time? |
Could we start a parallel job for the binaries? |
We would need to modify lintcheck to be able to load and compare multiple json files (To keep the uniform output in a single step). I still don't think it's worth it, though. As mentioned, I'm guessing that it will be mostly us as reviewers that look at lintcheck and regular contributors that know about our CI. And since this only runs on PRs, it's less a thing which you check during development, but instead in the PR once you feel like the implementation is mostly done. So based on this, I think having a longer run time of now 9 minutes (or 10 with cargo) is totally fine. |
73e707b
to
243a2a3
Compare
You could run
Oh, it doesn't run on bors? In that case it would not slow down merging PRs, which was my main concern. |
Yeah, 9 or 10 minutes are fine. Just tried to figure out how we could manage to not drop binaries you planned to include, without increasing CI time. |
10 minutes including cargo sounds good to me too, cargo catches a lot since it's a nice large codebase |
It only runs on PRs and is meant as input for discussions. The CI is always green, unless there is an ICE. So we assume that an ICE would be caught by the reviewer, but otherwise there is little reason to run it with bors I'd say.
Awesome, then I'll squash the testing commits :D |
243a2a3
to
8940bc3
Compare
I've only squashed and reordered the commits. The content should be the same :D |
🚀 @bors r+ |
☀️ Test successful - checks-action_dev_test, checks-action_remark_test, checks-action_test |
Nice! Lintcheck is getting better every day. Now there are like one or two more small things I want to add, and that should be it for now =^.^= |
Thank you both for all the work on our tooling recently! ❤️ |
This PR adds a new
ci_crates.toml
to lintcheck for our CI. The 200 crates take about 14 minutes, which is slightly more than the 10 I aimed for but still reasonable. The testset is constructed from:lintcheck_crates.toml
During testing, I noticed a few panics in lintcheck. I've fixed them where possible, or at least improved the error message.
The new test set generates 500+ MB of json lints, which are compressed to a ~24mb artifact.
This PR also updates our
lintcheck_crates.toml
. I mainly updated the versions, removed some very outdated crates, and added some new ones. I targeted 25 crates as those are pretty fast to lint and a good precursor for our CI.Optional TODO:
--recursive
in our CI.This is something I want to investigate, but it shouldn't be a blocker for this PR.
r? @Alexendoo
changelog: none