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

move QM onto a mojmap base #660

Open
4 tasks
ix0rai opened this issue Oct 27, 2024 · 4 comments
Open
4 tasks

move QM onto a mojmap base #660

ix0rai opened this issue Oct 27, 2024 · 4 comments
Labels
discussion changes that need discussion before being implemented s: large PRs with more than 700 lines t: toolchain changes to the quilt mappings toolchain wip this is a work in progress

Comments

@ix0rai
Copy link
Member

ix0rai commented Oct 27, 2024

description and motivation

as previously suggested by @LambdAurora, we will be moving QM onto a mojmap base to improve the mappings and compensate for the small size of our team. this means that all entries in QM will be mojmap unless they are manually mapped by our team. this will have a couple benefits:

  • will help us maintain faster and higher completion
  • will reduce the divergence between QM and mojmap, as we will always see the mojmap version before mapping an item
    • this will make QM better for devs who are used to mojang names, and keep us more in line with mojang intent (permanently resolve the BedrockBlock problem)
  • will resolve Using QM as main mapping and Mojmap as fallback fails to load world on first time run #396 by obseleting layering with moj

we will also be enforcing mojang's package structure on QM, which has the benefits of:

  • access remapping will no longer be needed with QM, simplifying usage on neoforge
  • package structure will no longer be up to the mappers, speeding up mapping and likely improving how coherent the structure is across minecraft updates

implementation

this implementation will come in three parts:

  • downloading mojmap in this repository to be passed into https://github.com/QuiltMC/quilt-enigma-plugin for name proposal. i will be implementing this after gradle cleanup #645 is merged
  • package name proposal. we will create a name proposal service that proposes a name that is a combination of the mojang package and the QM class name. eventually, we will make sure that the directory structure of this repository matches mojang's packages, but the implementation details of this are not yet decided.
  • base name proposal. a name proposal service will be created that proposes mojang names for all fields, classes, and methods. it will have the lowest priority of any proposer

some other stuff that has to happen to enable this:

@ix0rai ix0rai added t: toolchain changes to the quilt mappings toolchain wip this is a work in progress discussion changes that need discussion before being implemented s: large PRs with more than 700 lines labels Oct 27, 2024
@sylv256
Copy link

sylv256 commented Oct 31, 2024

why not just use https://github.com/LambdAurora/yalmm?

@ix0rai
Copy link
Member Author

ix0rai commented Oct 31, 2024

simple! we want to focus on our own names, while her project is aimed at fixing problematic mojmap names.

@ix0rai
Copy link
Member Author

ix0rai commented Nov 9, 2024

one more unsolved tech consideration here: ideally, the package names would be saved in the main mappings, unlike all other proposers. this would keep the file structure of the repo matching the package structure for the mappings. my idea for this is simply to add a false-by-default boolean in the service for whether to ignore writeProposedNames in MappingSaveParameters

@ix0rai
Copy link
Member Author

ix0rai commented Nov 9, 2024

one more unsolved tech consideration here: [...]

after putting some thought into this, I've decided the best method is simply to add a bypassChecks boolean to allow setting the token type of proposed mappings to deobf. i've implemented this in QuiltMC/enigma#240, and made sure to include javadoc telling you to under no circumstances use it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion changes that need discussion before being implemented s: large PRs with more than 700 lines t: toolchain changes to the quilt mappings toolchain wip this is a work in progress
Projects
None yet
Development

No branches or pull requests

2 participants