Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create jar compliance checker. #7

Closed
TheCurle opened this issue Mar 23, 2022 · 1 comment
Closed

Create jar compliance checker. #7

TheCurle opened this issue Mar 23, 2022 · 1 comment

Comments

@TheCurle
Copy link
Member

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:

  • All package structures and class names
  • All method names
  • All lambda IDs
  • All method signatures
  • All method return values
  • All field names
  • All field signatures
  • All enum names

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

@TheCurle TheCurle moved this to In Progress in Retrogradle 2.2 Release Mar 23, 2022
@TheCurle TheCurle moved this from In Progress to Todo in Retrogradle 2.2 Release Mar 23, 2022
@TheCurle
Copy link
Member Author

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

@github-project-automation github-project-automation bot moved this from Help Wanted to Done in Retrogradle 2.2 Release Mar 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant