Terasology / ModuleTestingEnvironment

3 stars 15 forks source link

SimpleFarming transitive dependencies irregularities #63

Closed keturn closed 2 years ago

keturn commented 2 years ago
testRuntimeClasspath dependency report - org.terasology.modules:CoreAssets:[2.0.1,3.0.0) ➡ 2.3.0-SNAPSHOT - org.terasology.modules:Inventory:[1.1.0,2.0.0) ➡ 1.5.0-SNAPSHOT - org.terasology.modules:ModuleTestingEnvironment:[0.3.0,0.4.0) ➡ 0.3.2-SNAPSHOT - org.terasology.modules:Genome:[1.0.0,2.0.0) ➡ 1.0.1-SNAPSHOT - org.terasology.modules:Inventory:[1.1.0,2.0.0) ➡ 1.5.0-SNAPSHOT - org.terasology.modules:BasicCrafting:[1.0.0,2.0.0) ➡ 1.1.0-SNAPSHOT - org.terasology.modules:Inventory:[1.1.0,2.0.0) ➡ 1.5.0-SNAPSHOT - org.terasology.modules:SubstanceMatters:[2.0.0,3.0.0) ➡ 2.1.0-SNAPSHOT - org.terasology.modules:CoreAssets:[2.0.1-SNAPSHOT,3.0.0) ➡ 2.3.0-SNAPSHOT - org.terasology.modules:Fluid:[2.0.0-SNAPSHOT,2.0.0) ➡ 2.0.0-SNAPSHOT + org.terasology.modules:Inventory:+ ➡ 1.5.0-SNAPSHOT + org.terasology.modules:FlowingLiquids:+ ➡ 1.4.0-SNAPSHOT - org.terasology.modules:Inventory:[1.1.0-SNAPSHOT,2.0.0) ➡ 1.5.0-SNAPSHOT - org.terasology.modules:ItemRendering:[1.1.0-SNAPSHOT,2.0.0) ➡ 1.2.0-SNAPSHOT + org.terasology.modules:Inventory:[1.1.0-SNAPSHOT,2.0.0) ➡ 1.5.0-SNAPSHOT - org.terasology.modules:Workstation:[1.1.0-SNAPSHOT,2.0.0) ➡ 1.2.0-SNAPSHOT + org.terasology.modules:Fluid:[2.0.0-SNAPSHOT,) ➡ 2.0.0-SNAPSHOT + org.terasology.modules:Inventory:[1.1.0-SNAPSHOT,) ➡ 1.5.0-SNAPSHOT
loading classpath modules ```log 22:47:28.245 [Test worker] INFO o.t.engine.core.module.ModuleManager - Loaded SimpleFarming from /home/jenkins/agent/workspace/_Modules_S_SimpleFarming_develop 22:47:28.250 [Test worker] INFO o.t.engine.core.module.ModuleManager - Loaded SubstanceMatters from /home/jenkins/.gradle/caches/modules-2/files-2.1/org.terasology.modules/SubstanceMatters/2.1.0-SNAPSHOT/9f35192aa8af83452c8e76a8ac001d2dec871d3b/SubstanceMatters-2.1.0-SNAPSHOT.jar 22:47:28.253 [Test worker] INFO o.t.engine.core.module.ModuleManager - Loaded CoreAssets from /home/jenkins/.gradle/caches/modules-2/files-2.1/org.terasology.modules/CoreAssets/2.3.0-SNAPSHOT/2d3268349e1e678827ba8a4ae67b301f0c598363/CoreAssets-2.3.0-SNAPSHOT.jar 22:47:28.257 [Test worker] INFO o.t.engine.core.module.ModuleManager - Loaded Genome from /home/jenkins/.gradle/caches/modules-2/files-2.1/org.terasology.modules/Genome/1.0.1-SNAPSHOT/11fc4fb72553da2563c1864245e4a5b1692cb3ed/Genome-1.0.1-SNAPSHOT.jar 22:47:28.261 [Test worker] INFO o.t.engine.core.module.ModuleManager - Loaded BasicCrafting from /home/jenkins/.gradle/caches/modules-2/files-2.1/org.terasology.modules/BasicCrafting/1.1.0-SNAPSHOT/37fa36bb0ab2d79dab18628e0476240b39d5f81e/BasicCrafting-1.1.0-SNAPSHOT.jar 22:47:28.268 [Test worker] INFO o.t.engine.core.module.ModuleManager - Loaded Workstation from /home/jenkins/.gradle/caches/modules-2/files-2.1/org.terasology.modules/Workstation/1.2.0-SNAPSHOT/c1de4f87c39e014960528af396c64ae1297c81df/Workstation-1.2.0-SNAPSHOT.jar 22:47:28.273 [Test worker] WARN org.reflections.Reflections - could not get type for name org.terasology.logic.inventory.ItemDifferentiating from any class loader org.reflections.ReflectionsException: could not get type for name org.terasology.logic.inventory.ItemDifferentiating at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:387) at org.reflections.Reflections.expandSuperTypes(Reflections.java:387) at org.reflections.Reflections.(Reflections.java:126) at org.terasology.gestalt.module.ModuleFactory.scanContents(ModuleFactory.java:237) at org.terasology.gestalt.module.ModuleFactory.scanOrLoadArchiveManifest(ModuleFactory.java:260) at org.terasology.gestalt.module.ModuleFactory.createArchiveModule(ModuleFactory.java:406) at org.terasology.engine.core.module.ClasspathCompromisingModuleFactory.createArchiveModule(ClasspathCompromisingModuleFactory.java:59) at org.terasology.gestalt.module.ModuleFactory.createArchiveModule(ModuleFactory.java:383) at org.terasology.gestalt.module.ModuleFactory.createModule(ModuleFactory.java:441) at org.terasology.engine.core.module.ModuleManager.loadModulesFromClassPath(ModuleManager.java:164) at org.terasology.engine.core.module.ModuleManager.(ModuleManager.java:80) ```
later, in loadProcesses.RegisterMods ```log 22:47:31.346 [Test worker] INFO o.t.e.c.m.loadProcesses.RegisterMods - Activating module: engine:5.2.0-SNAPSHOT 22:47:31.347 [Test worker] INFO o.t.e.c.m.loadProcesses.RegisterMods - Activating module: CoreAssets:2.3.0-SNAPSHOT 22:47:31.347 [Test worker] INFO o.t.e.c.m.loadProcesses.RegisterMods - Activating module: ModuleTestingEnvironment:0.3.2-SNAPSHOT 22:47:31.347 [Test worker] INFO o.t.e.c.m.loadProcesses.RegisterMods - Activating module: Inventory:1.5.0-SNAPSHOT 22:47:31.347 [Test worker] INFO o.t.e.c.m.loadProcesses.RegisterMods - Activating module: SimpleFarming:2.2.0-SNAPSHOT 22:47:31.355 [Thread-17] WARN org.reflections.Reflections - could not create Vfs.Dir from url. ignoring the exception and continuing org.reflections.ReflectionsException: could not create Vfs.Dir from url, no matching UrlType was found [file:/home/jenkins/agent/workspace/_Modules_S_SimpleFarming_develop/build/resources/main] either use fromURL(final URL url, final List urlTypes) or use the static setDefaultURLTypes(final List urlTypes) or addDefaultURLTypes(UrlType urlType) with your specialized UrlType. at org.reflections.vfs.Vfs.fromURL(Vfs.java:111) at org.reflections.vfs.Vfs.fromURL(Vfs.java:93) at org.reflections.Reflections.scan(Reflections.java:244) at org.reflections.Reflections.scan(Reflections.java:204) at org.reflections.Reflections.(Reflections.java:123) at org.terasology.reflection.TypeRegistry.initializeReflections(TypeRegistry.java:104) at org.terasology.reflection.ModuleTypeRegistry.initializeReflections(ModuleTypeRegistry.java:24) at org.terasology.reflection.ModuleTypeRegistry.reload(ModuleTypeRegistry.java:20) at org.terasology.engine.core.bootstrap.EnvironmentSwitchHandler.handleSwitchToGameEnvironment(EnvironmentSwitchHandler.java:76) at org.terasology.engine.core.modes.loadProcesses.RegisterMods.lambda$step$0(RegisterMods.java:75) ```
keturn commented 2 years ago

Things that look odd about this:

Questions:

keturn commented 2 years ago

the test failures are reproducible locally. I tried with a modules/ containing only SimpleFarming and MTE.

I don't know if the things noted previously are related to the test failures,
because PlantAuthoritySystemTest has three passing cases and one of the four BushAuthoritySystemTests are passing.

keturn commented 2 years ago

The test is erring with an NPE here: https://github.com/Terasology/SimpleFarming/blob/b3c691b0cc50c74cdcbdafbf39cb0e82da589460/src/main/java/org/terasology/simpleFarming/systems/GenomeAuthoritySystem.java#L70

            genomeComponent.genomeId = producer.getParentPrefab().getName();

so getParentPrefab() must be returning null?

keturn commented 2 years ago

despite that stuff looking weird, I'm doubting this failure is from an MTE bug. Moving to https://github.com/Terasology/SimpleFarming/issues/118