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

Verify that lint is wconfable #10756

Open
wants to merge 2 commits into
base: 2.13.x
Choose a base branch
from

Conversation

som-snytt
Copy link
Contributor

Fixes scala/bug#12985

Emits the warning in a lint category.

Adds an internal feature for partest: using test.option --recompile allows checking that a neg test turns pos when recompiled with an additional option (-Wconf:something).

toolArgs is teased apart to encourage using syntax, which is easier to parse (than checking for all the tool names).

@scala-jenkins scala-jenkins added this to the 2.13.15 milestone Apr 15, 2024
@som-snytt
Copy link
Contributor Author

som-snytt commented Apr 15, 2024

I think dotty test rig has a mechanism for "test with and without flag"; at some point it resulted in an explosion of test runs, which points to its facility.

Here, it would be nice to automate that neg test has -Xlint:foo so test with -Wconf:cat=lint-foo:s. But I grew fatigued.

Worth noting that I added a pos test from OP on another branch last week, so I added it locally and mistyped it: I forgot any is a filter not a category. After figuring that out, I wasn't sure it was worth adding the test file.

I know the useful actions s, w, and e, because I am a SWE.

@som-snytt som-snytt marked this pull request as ready for review April 15, 2024 23:25
src/partest/scala/tools/partest/nest/Runner.scala Outdated Show resolved Hide resolved
@@ -1,5 +1,6 @@

//> using options -Werror -Xlint:cloneable
//> using test.options --recompile=-Wconf:cat=lint-cloneable:s
Copy link
Contributor Author

Choose a reason for hiding this comment

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

how about //> using retest.options -Wconf:cat=lint-cloneable:s. Leverage the "scope"; don't pollute semantics of test.options which I assume means compile options for tests, which is technically redundant here; also avoids the awkward --recompile; but the semantics of retest are constrained, as it doesn't mean "retest as neg" but "as pos", or maybe it would also invert pos to neg on retest.

@som-snytt
Copy link
Contributor Author

@SethTisue java.io.IOException: No space left on device. Does this thing actually ring your phone?

This evening while watching the Great Courses disc on American History, I learned about the War of Jenkins' Ear, which must interest you for the obvious and only reason.

@lrytz
Copy link
Member

lrytz commented Apr 16, 2024

I deleted the coursier cache for now

/home/jenkins/.dbuild/cache-0.9.20 is 71 GB (the disk has 400)
Most usage is probably in jenkins workspaces (eg /home/jenkins/workspace/scala-2.12.x-jdk17-integrate-community-build/target-0.9.20/extraction/).

@SethTisue
Copy link
Member

Yeah the usual solution is to blow away community build workspaces. We do blow away the dbuild cache occasionally but it's needed less often.

@lrytz
Copy link
Member

lrytz commented Apr 18, 2024

Yeah the usual solution is to blow away community build workspaces

👍 can this be done at any time or does it cause more work for you right now close to the release?

@SethTisue
Copy link
Member

SethTisue commented Apr 18, 2024

can this be done at any time or does it cause more work for you right now close to the release?

if I'm unavailable (as I was for 24 hours or so in this case, though I'm now available again) you should feel free to just do it

if I'm available, I can sometimes be selective about only blowing away a workspace that doesn't have partial results that we'd prefer to keep in order to save time. but it's only about saving time waiting for results, rather than about whether it makes more work

one thing about blowing away a workspace is that the number of files involved is so large that sometimes the behemoth will shut down before the rm -rf job even has a chance to finish. so I usually first rename the workspace to something like trashme, then do rm -rf trashme & and disown %, and then hurry to trigger a new run before the behemoth has a chance to shut down, and then also check back the next day to make sure trashme did in fact entirely disppear

@lrytz
Copy link
Member

lrytz commented Apr 19, 2024

behemoth will shut down

I sometimes go into the node config and change the Idle delay. It's 5 minutes by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants