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

document what's needed for quilt to come out of beta #173

Open
ix0rai opened this issue Nov 14, 2023 · 8 comments
Open

document what's needed for quilt to come out of beta #173

ix0rai opened this issue Nov 14, 2023 · 8 comments
Labels
documentation Improvements or additions to documentation

Comments

@ix0rai
Copy link
Member

ix0rai commented Nov 14, 2023

the beta warning is scary! we should give users an indication of what we're working on before it goes away.

current things I know about

  • make QSL more standalone. very ambiguous goal, cc @OroArmor to expand on this
  • qm 2.0. all we really need to say about this is that it's a big redo of the qm backend and requires migrating to a new backing library
  • loader plugins going stable. cc @AlexIIL to provide a comprehensive list of what's needed for that

ideally this list will have handy links to tracking issues or github projects about everything: things like https://github.com/quiltmc/enigma/13 [note. if you're writing a tracking issue it should actually have stuff in it. 13 isn't a role model :iea:]

@ix0rai ix0rai added the documentation Improvements or additions to documentation label Nov 14, 2023
@ix0rai
Copy link
Member Author

ix0rai commented Nov 14, 2023

should have mentioned this: once I have all the relevant info collected, I'm happy to be the one to write up the article!

@Laxystem
Copy link

Btw here's a working issue link: QuiltMC/enigma#13

@ix0rai
Copy link
Member Author

ix0rai commented Nov 15, 2023

the project board for qm 2.0 is pretty comprehensive, so we don't really need anything there.

@Southpaw1496
Copy link
Contributor

In regards to QSL standalone, the original idea was to have each module individually packaged and downloaded depending on what the user's mods actually needed, and Quilted Fabric API would've been one of the modules (I think).

The concept has been through some theoretical evolution, although as far as I know, nothing has ever actually been built. Originally, I seem to remember that the idea was to allow mods to be able to specify any dependency for automatic downloading, however, we eventually concluded that allowing mods to automatically download and run arbitrary code without the user's knowledge wasn't particularly safe.

I believe the current iteration of the concept is to simply have dependency downloading only for QSL modules, and possibly some other common libraries that we can verify are safe in the future.

@Laxystem
Copy link

@Southpaw1496 why separate QSL into multiple jars?

  • Size - the latest QSL version available on modrinth is less than 2MB.
  • Vanilla launcher - it'll heavily complicate installing quilt manually, using the vanilla launcher.
  • Security - automatically downloading files from the internet and running them is less secure than not doing so, doesn't matter how many safeguards you put in place.
  • Internet dependency - this could mean that a user that has installed a new mod, then went offline, may not be able to launch the game -- as there's no internet connection in order to download a QSL module that said mod needs!

I guess what I'm asking is: What benefits does splitting QSL have?

@Southpaw1496
Copy link
Contributor

Southpaw1496 commented Nov 22, 2023

The main benefit would be that users wouldn't need to download a separate mod as well as the loader just to run things, and they also wouldn't need to keep it up-to-date as the loader updates. I can see the argument that people are getting used to having to install library mods, though.

A more separated design also allows more freedom for each of the individual modules to release on their own schedule. If they're all bundled together, every module needs to be updated for the latest version before the mod can be released, even if the most important ones are already done. We're seeing this play out right now: QSL for 1.20.2 has been out for weeks, but it can't be released because it's tied to Quilted Fabric API.

Vanilla launcher - it'll heavily complicate installing quilt manually, using the vanilla launcher.

I use the vanilla launcher and I don't see why it would. Quilt would run, download any dependencies if it needed them, and then run the game.

automatically downloading files from the internet and running them is less secure than not doing so, doesn't matter how many safeguards you put in place

Well, yes, but the files are being automatically run anyway, so the only part that's less secure is the "automatically downloading" part. And I'm fairly certain that Quilt, other mod loaders, and certainly Minecraft itself already automatically download things that they need before the first launch, because it's convenient. This would just be an extension of that.

this could mean that a user that has installed a new mod, then went offline, may not be able to launch the game -- as there's no internet connection in order to download a QSL module that said mod needs!

This would only occur if no other mods on the user's system required that library. And this situation would also occur today, if, for example, the mod in question required a newer version of Quilted Fabric API or Quilt Loader than the user had already installed. Splitting the modules up does slightly increase the chances of that happening, but it's not like it's a brand new problem that's suddenly being created.

@Laxystem
Copy link

Alright, I misunderstood you slightly. So yeah, this works.

@ix0rai
Copy link
Member Author

ix0rai commented May 4, 2024

cc @OroArmor, @AlexIIL
I'd still like to write this, so bullet points from you on what needs to happen would be great

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants