emilyploszaj / emi

A featureful and accessible item and recipe viewer
MIT License
220 stars 46 forks source link

Missing sources from the source jar #469

Closed pupnewfster closed 3 months ago

pupnewfster commented 3 months ago

When trying to hit download sources with Intellij for EMI version 1.1.3 neoforge 1.20.4 it fails, and from trying to manually attach the sources I believe that is because the majority of directories (especially the api related ones) seem to be empty. I downloaded the source jar from https://maven.terraformersmc.com/releases/dev/emi/emi-neoforge/1.1.3+1.20.4 and viewing it with a zip viewer and navigating to dev/emi/emi shows this for the sizes of different directories. image

Is there some way this could be fixed, as it makes getting used to a new API and figuring things out quite difficult when having to browse the source files on github to see the javadocs rather than being able to see them natively in my IDE.

emilyploszaj commented 3 months ago

Wonderful, this error again...

Loom, and consequentially Arch Loom, have a peculiar remapping issue where certain symbols cause an NPE when remapping sources that will silently fail and print no debuggable information. It'll also stop the remapping process wherever it was, and since the order in which it iterates classes and folders is random, it's really hard to tell what actually causes it. Resolving this is basically trial and error, and will likely take some time. Furthermore, resolving this actually involves manually excluding files from the sources, so it's a "pick your poison" moment of choosing which files to be excluded instead of having an arbitrary amount go missing. From a quick look, the fabric artifact seems fine still, so this is something relating to Neo specifically.

I looked at the latest handful of releases, and 1.1.1 seems to have the most complete sources, having at least all of the api package and subpackages mapped. As a mod dev I don't think you'll suffer any consequences while this is being resolved if you depend on that slightly older version. Hopefully the next release has this fixed, but depending on release timelines it might take 2 versions. Thanks for pointing this out.

pupnewfster commented 3 months ago

Nice thanks, using 1.1.1 does seem to allow the sources to attach and allows me to view the docs from my IDE

pupnewfster commented 3 months ago

I did some investigating locally, and it seems to be because the remap fails as JEI isn't on the classpath in neoforge, and is only on it for fabric, so when trying to remap a jemi file it crashes and stops remapping. Exlcluding jemi from the source jar for neo rather than just the filtered source jar seems to allow it to remap properly

emilyploszaj commented 3 months ago

Fixed in EMI 1.1.4 after some gradle wrestling, thanks for the PR.