RetroGradle / ProgressTracker

Repository for tracking issues on the current progress of RetroGradle
6 stars 0 forks source link

Create jar compliance checker. #7

Closed TheCurle closed 1 year ago

TheCurle commented 2 years ago

What

We need a tool that can take two jars and check whether they comply with each other.

Why

As an extension of #3, we need to run a test to make sure that jars are, if not exactly identical (because after some planned changes, they will not be), they are at least compatible.

This is a part of Forge's guarantee for stability and binary compatibility after a Recommended Build.

How

Theoretically, a tool like this is rather simple to create. However, there are a lot of edge cases that need to be accounted for in a tool like this, so the last three attempts have gone stale.

We need someone willing to sit down with these specifications, and create a tool.

Specification

Taking two jars, we need to check that all of the following match between the two:

The contents of methods, fields, and enums are not important to match, but lambda ID shifts will cause problems in the long term.

TheCurle commented 1 year ago

This was completed by a member of the Forge Team and was published as https://github.com/MinecraftForge/JarCompatibilityChecker.