Skip to content

v2.2

Compare
Choose a tag to compare
@quat1024 quat1024 released this 19 Mar 23:46

Available as agency.highlysuspect:voldeloom:2.2 on the repo.sleeping.town Maven server.

See CHANGELOG.md for more details.

Full diff: v2.1...v2.2

Note: Remapping is in a bit of a weird state. I'm about to do massive overhauls to the system, this is sorta a release cut in haste. I would probably still recommend using 2.1.

New

  • Preliminary support for Gradle 8
    • "preliminary" as in "I don't know if it's super busted, but at least the basics work"
  • The 1.3.2, 1.6.4, and 1.7.10 development environments work
    • 1.3.2 is ok but there is a wall of warnings about Minecraft being in the net.minecraft.src namespace, i think they're harmless(?)
    • 1.6.4 i'm a bit unsure about (just because binpatches are pretty weird to deal with) but it looks ok
    • 1.7.10 has janky unfinished MCP mappings because we are entering the MCPBot era now, and it can't read MCPBot exports just yet
  • Preliminary "layered mappings system"
    • Access with mappings volde.layered { ... }.
    • Available commands:
      • baseZip(Object), which parses the mappings through... the exact same mappings parsing system used before (look i said it was preliminary)
      • unmapClass(String) and unmapClass(Collection<String>), which remove class mappings
        • functionally replaces hackHackHackDontMapTheseClasses
    • conceptually, a blank MCP mappings set is created, then each command visits it top-to-bottom
    • commands that take Object can accept:
      • File or Path arguments
      • Dependency objects from gradle
      • Strings:
        • if it "looks like a URL" (starts with http:/ or https:/), it will be automatically downloaded (to (project dir)/.gradle/voldeloom-cache/layered-mappings/downloads)
        • if not, it will be treated as a maven coordinate
    • computed mappings go in (project dir)/.gradle/voldeloom-cache/layered-mappings/(hash).zip, where hash is computed from the settings on each layer (ideally you shouldn't have to manually cachebust mappings when messing around with the settings)

Changes

  • Dependency on Stitch removed
    • It was used only for JarMerger, and i now use a modified version (that doesn't need to "remap annotations" from Environment to SideOnly)
  • Removed remapSources and migrateMappings (and removed their dependencies, Mercury and lorenz-tiny). They might return later, but they're a maintenance burden while i prepare for the new mappings system, and there are no other mappings to migrate to other than MCP lol
  • Updated fabricmc fernflower.
    • This version can use multiple CPU cores to make it even faster. I didnt implement this, blame covers i think.
    • (i made it default to processor count minus 1, so u can actually use your computer in the mean time lmao)
  • The genSourcesDecompile and genSourcesRemapLineNumbers plumbing tasks have been removed and merged into the regular genSources task
    • this alone somehow melted away like 5 zillion lines of complexity in afterEvaluate