Caleb Cushing
06/21/2024, 6:51 PMVampire
06/23/2024, 9:24 PMCaleb Cushing
06/23/2024, 9:25 PMVampire
06/23/2024, 9:27 PMCaleb Cushing
06/23/2024, 9:29 PMCaleb Cushing
06/24/2024, 2:49 PMCaleb Cushing
06/24/2024, 2:49 PMVampire
06/24/2024, 3:01 PMCaleb Cushing
06/24/2024, 3:09 PMVampire
06/24/2024, 3:14 PMCaleb Cushing
06/24/2024, 3:17 PMCaleb Cushing
06/24/2024, 3:18 PMCaleb Cushing
06/24/2024, 3:19 PMVampire
06/24/2024, 3:21 PMCaleb Cushing
06/24/2024, 3:22 PMCaleb Cushing
06/24/2024, 3:22 PMCaleb Cushing
06/24/2024, 3:23 PMCaleb Cushing
06/24/2024, 3:24 PMCaleb Cushing
06/24/2024, 3:25 PMVampire
06/24/2024, 3:31 PMbecause it expects you to be using the gradlex stack... where module-info is used to define dependencies instead of gradle...That's total news to me, and probably more a bug. It has support for improving cooperation with that plugin. But it should not require that plugin at all. But sure, if you do not need the plugin / it's effects, don't use it, why should you?
Caleb Cushing
06/24/2024, 3:42 PMCaleb Cushing
06/24/2024, 3:43 PMCaleb Cushing
06/24/2024, 3:43 PMCaleb Cushing
06/24/2024, 3:44 PMVampire
06/24/2024, 3:44 PMCaleb Cushing
06/24/2024, 3:45 PMCaleb Cushing
06/24/2024, 3:45 PMCaleb Cushing
06/24/2024, 3:45 PMCaleb Cushing
06/24/2024, 3:46 PMCaleb Cushing
06/24/2024, 3:49 PMVampire
06/24/2024, 3:51 PMfeel free to comment on my open issues 😉
I've said itIt's in a closed issue. And Jendrik does not expect you to use that plugin or I did not see the comment you mean. He says that your problem is that you are inconsistent in what you declare in the module-info and in the Gradle file which causes your problem. And he said that with the dependencies plugin you can prevent such errors as you do not declare the dependencies twice anymore.
Caleb Cushing
06/24/2024, 3:54 PMrequires static ... I don't think I ever got an explanation for why that was inconsistent.Caleb Cushing
06/24/2024, 3:55 PMCaleb Cushing
06/24/2024, 3:55 PMCaleb Cushing
06/24/2024, 3:56 PMVampire
06/24/2024, 4:01 PMcompileOnlyApi which means it is available at compile time and at compile time of downstream consumers, but no at runtime of either.
But in your module info you had requires which means that it needs to be there always at runtime.
requires static is like compileOnly, in being an optional dependency that can be there at runtime or missing.
And requires transitive means that it is also automatically `require`d for downstream consumers that depend on that module.
So the according module info stanza for compileOnlyApi is require static transitive.Caleb Cushing
06/24/2024, 4:03 PMCaleb Cushing
06/24/2024, 4:04 PMVampire
06/24/2024, 4:20 PMCaleb Cushing
06/24/2024, 4:56 PMCaleb Cushing
06/24/2024, 4:58 PMVampire
06/24/2024, 8:19 PMand plugin is forcing me to have both or not use the pluginIt does not
right, but if blackbox is my need and gradle is not doing all the right things without itAs long as you do not have resources in your test source set, it should do the right enough things. If you do have resources even Jendrik recommended in one of those issues to just do that one configuration for the blackbox tests manually if you do not need the whitebox features.
Caleb Cushing
06/24/2024, 8:20 PM> and plugin is forcing me to have both or not use the plugin
Caleb Cushing
06/24/2024, 8:20 PMVampire
06/24/2024, 8:20 PMVampire
06/24/2024, 8:21 PMVampire
06/24/2024, 8:21 PMcompileOnlyApi on Gradle side with requires on module info side is wrong, no matter whether you use any Gradlex plugins or not.Caleb Cushing
06/24/2024, 8:21 PMVampire
06/24/2024, 8:22 PMVampire
06/24/2024, 8:22 PMCaleb Cushing
06/24/2024, 8:24 PMCaleb Cushing
06/24/2024, 8:24 PMCaleb Cushing
06/24/2024, 8:25 PMCaleb Cushing
06/24/2024, 8:25 PMVampire
06/24/2024, 8:25 PMVampire
06/24/2024, 8:25 PMCaleb Cushing
06/24/2024, 8:25 PMCaleb Cushing
06/24/2024, 8:26 PMCaleb Cushing
06/24/2024, 8:28 PMVampire
06/24/2024, 8:29 PMCaleb Cushing
06/24/2024, 8:31 PMCaleb Cushing
06/24/2024, 8:31 PMtestWhitebox but that name feels weirdCaleb Cushing
06/24/2024, 8:32 PMVampire
06/24/2024, 8:49 PMCaleb Cushing
06/25/2024, 2:46 PMVampire
06/26/2024, 6:37 AMCaleb Cushing
06/26/2024, 1:06 PMCaleb Cushing
06/26/2024, 1:06 PMCaleb Cushing
06/26/2024, 1:07 PMVampire
06/26/2024, 1:39 PMCaleb Cushing
06/26/2024, 2:20 PMCaleb Cushing
06/26/2024, 2:28 PMCaleb Cushing
06/26/2024, 3:15 PMVampire
06/26/2024, 3:25 PMtestCompileOnly does not extend from compileOnly. He blames Gradle, yes. I'm not sure I agree. It sounds correct to me that this connection is not drawn unless I miss some detail.Caleb Cushing
06/26/2024, 3:26 PMcompileOnlyApi... anywhays "I only work here"Vampire
06/26/2024, 3:30 PMcompileOnlyApi it does workCaleb Cushing
06/26/2024, 3:30 PMCaleb Cushing
06/26/2024, 3:31 PMCaleb Cushing
06/26/2024, 3:32 PMVampire
06/26/2024, 3:38 PMVampire
06/26/2024, 3:40 PM.tar.gz when it is a plain tar without zip though 😄Caleb Cushing
06/26/2024, 3:41 PMCaleb Cushing
06/26/2024, 3:41 PMVampire
06/26/2024, 3:42 PMz but still named it like that 🤷♂️Vampire
06/26/2024, 3:42 PMCaleb Cushing
06/26/2024, 3:42 PMCaleb Cushing
06/26/2024, 3:42 PMCaleb Cushing
06/26/2024, 3:43 PMCaleb Cushing
06/26/2024, 3:43 PMCaleb Cushing
06/26/2024, 3:44 PMVampire
06/26/2024, 3:47 PMtar is just the defaultVampire
06/26/2024, 3:48 PMVampire
06/26/2024, 3:48 PMCaleb Cushing
06/26/2024, 3:49 PMgit archive -o repro.tar.gz HEADVampire
06/27/2024, 9:27 AM--patch-module is used to pretend the test code is part of the production module.
By doing so, org.jspecify is needed for compilation as it is requires static in the module-info.gradle.
requires static means it is required at compilation time but optional at runtime, so exactly what compileOnly also expresses.
The problem is, that by using the --patch-module when compiling the test sources the compilation process then also needs that module in the module path. So imho the plugin when doing such a --patch-module should also add the testCompileOnly.extendsFrom(compileOnly) as it is the plugin that draws that connection after all.Vampire
06/27/2024, 9:29 AMCaleb Cushing
06/27/2024, 2:16 PM