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

Split API Features Into Modules #4

Open
sylv256 opened this issue Jul 29, 2022 · 1 comment
Open

Split API Features Into Modules #4

sylv256 opened this issue Jul 29, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request low priority
Milestone

Comments

@sylv256
Copy link
Member

sylv256 commented Jul 29, 2022

Abstract

It would be nice to split the API features into separate modules so developers can jar-in-jar specific API features. Of course, this will be done when Quilt has an automatic dependency downloader so that the base library containing the Java agent can be downloaded separately.

Alternatives

An alternative is to include the entire API, either using jar-in-jar'ing or requiring it as an external dependency.

Advantages

  • The issue with requiring it as an external dependency is that the user has to manually download it.
  • Jar-in-jar'ing it increases the .jar size and may cause compatibility issues.
  • Jar-in-jar'ing each API feature may alleviate compatibility issues and such by splitting each required feature into modules, further decreasing the probability of breaking changes in external dependencies.
  • Mods only use the features that they need.

Drawbacks

  • Some mods may require the entire mod as an external dependency, nullifying some of the advantages of jar-in-jar'ing API features.
  • Some mods may accidentally jar-in-jar the Java agent, causing multiple Java agents to be active at once. However, this can be prevented.
@sylv256 sylv256 added enhancement New feature or request low priority labels Jul 29, 2022
@sylv256 sylv256 self-assigned this Jul 29, 2022
@sylv256 sylv256 added the rfc A Request For Comments (RFC) label Jul 29, 2022
@itstryme
Copy link

tryme was here

@sylv256 sylv256 added this to the 1.0 milestone Jul 29, 2022
@sylv256 sylv256 removed the rfc A Request For Comments (RFC) label Jul 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request low priority
Projects
None yet
Development

No branches or pull requests

2 participants