User Tools

Site Tools


documentation:build_pipelines

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
documentation:build_pipelines [2020/03/18 16:01] liachdocumentation:build_pipelines [2021/01/28 22:19] – document usage of Mercury jamie
Line 35: Line 35:
 ==== Stitch ==== ==== Stitch ====
  
-Stitch generates and manages intermediary mappings of APIs across MineCraft versions. Each intermediary mapping is uploaded to [[https://github.com/FabricMC/intermediary/tree/master/mappings|FabricMC/intermediary]] and is used used as part of Yarn's build process.+Stitch generates and manages intermediary mappings of APIs across Minecraft versions. Each intermediary mapping is uploaded to [[https://github.com/FabricMC/intermediary/tree/master/mappings|FabricMC/intermediary]] and is used used as part of Yarn's build process.
  
 ==== Matcher ==== ==== Matcher ====
Line 45: Line 45:
 The tool utilized by loom to convert yarn-named mod binaries to intermediary-named usable mod binaries and by fabric loader to convert obfuscated vanilla Minecraft to intermediary. The tool utilized by loom to convert yarn-named mod binaries to intermediary-named usable mod binaries and by fabric loader to convert obfuscated vanilla Minecraft to intermediary.
  
 +==== Mercury ====
 +
 +[[https://github.com/CadixDev/Mercury|Mercury]] is a library based on [[https://www.eclipse.org/jdt/core/index.php|Eclipse's JDT Core]] that allows for [[https://github.com/CadixDev/Mercury/blob/2027ef98c6b835eb516bf8c59153a4acd44ee57f/src/main/java/org/cadixdev/mercury/SourceProcessor.java|processors]] to be run against Java codebases. Mercury's prime use is for applying de-obfuscation mappings to a codebases, and includes a [[https://github.com/CadixDev/Mercury/blob/6379e58e914160b5c9d9f4e822d5269586e2260b/src/main/java/org/cadixdev/mercury/remapper/MercuryRemapper.java|processor for doing just that]]. Mercury's open nature allows for anyone to write a processor and for multiple to be run (consequtively) in one go - for example there is an external processor, [[https://github.com/CadixDev/MercuryMixin|MercuryMixin]], that is capable of remapping usage of the Mixin library. 
 +
 +Mercury is utilised by Loom for its [[tutorial:migratemappings|migrateMappings task]], allowing mods to be quickly updated to newer versions of Yarn without tedious manual work. Since the Tiny format isn't directly supported by Lorenz, the mapping library used by Mercury, [[https://github.com/FabricMC/lorenz-tiny|lorenz-tiny]] exists to read and write Lorenz mapping sets using the existing [[https://github.com/FabricMC/tiny-mappings-parser|tiny-mappings-parser]] library.
 +
 +Mercury is maintained and developed by a third party, the [[https://www.cadixdev.org/|Cadix Development Team]]. Queries and bug reports should be directed to them.
 +
 +  * Mercury Bug Tracker: https://github.com/CadixDev/Mercury/issues
 +  * Cadix Development Team IRC Channel: #cadix on [[https://esper.net/|EsperNet]]
documentation/build_pipelines.txt · Last modified: 2022/11/30 03:03 by netuserget