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

Improve handling of version ranges #163

Open
MattSturgeon opened this issue Feb 2, 2024 · 0 comments
Open

Improve handling of version ranges #163

MattSturgeon opened this issue Feb 2, 2024 · 0 comments
Labels
dev Only affects developers enhancement New feature or request

Comments

@MattSturgeon
Copy link
Member

MattSturgeon commented Feb 2, 2024

When dealing with dependencies, we often need to specify version ranges.

  • fabric uses semver version ranges, such as >=1.20.0
  • forge uses maven version ranges, such as [1.20,)
  • publisher uses version lists, such as [ "1.20.0", "1.20.1", "1.20.2", "1.20.3", "1.20.4" ]

Note: a version list can never be truly equivalent to a version range, especially an open-ended one.

It'd be nice if we could store all our dependency ranges in a single format, be it semver or maven ranges, or something else entirely. Then we can use some tool to convert to whatever format is required at build-time.

Notes

One gotcha I foresee is that the releases needing explicit lists will mean open-ended "greater than x" ranges won't fully work; we'd have to go back to old releases and manually mark them as compatible with new MC releases as they come out.

Another gotcha is that while MC versions are, not all projects use semver; we'd have to check whatever libs we use work ok with the version formats we need to support OR only use them for mc version ranges not all version ranges.

Resources

Tools

@MattSturgeon MattSturgeon added enhancement New feature or request dev Only affects developers labels Feb 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev Only affects developers enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant