QuiltMC / rfcs

Repository for requests for comments for proposing changes to the Quilt Project.
Other
61 stars 33 forks source link

Tweak provides & arrays in breaks to make more sense. #38

Closed AlexIIL closed 2 years ago

AlexIIL commented 3 years ago

Providing a range of versions means we have to compare version ranges with each other, which makes little sense.

Currently an array in a breaks field is no different to just specifying them separately, unlike for dependencies - so this tweaks that behaviour to allow specifying a break if all of the matching mods are found. For example:

Example A:

"breaks": [
 [ "better-than-buildcraft", "buildcraft-transport" ],
 "buildcraft-silicon"
]

Example B:

"breaks": [
 "better-than-buildcraft",
 "buildcraft-transport",
 "buildcraft-silicon"
]

In the current schema both example A and B would have the same effect - if any of the three mods are present then the game won't load. In this proposed schema then example A would only fail to load if both "better-than-buildcraft" and "buildcraft-transport" were present.

AlexIIL commented 3 years ago

One alternative to the proposed schema would be to alternate between "ANY" and "ALL" in each layer of array - starting at ANY for depends, and ALL for breaks. I don't think it would make the implementation any more complicated, but it might make displaying it a bit more difficult.

Haven-King commented 3 years ago

One alternative to the proposed schema would be to alternate between "ANY" and "ALL" in each layer of array - starting at ANY for depends, and ALL for breaks. I don't think it would make the implementation any more complicated, but it might make displaying it a bit more difficult.

I think that such behavior would be seldom used and very unexpected to somebody who hasn't read the specification. For that reason alone, I don't think it's necessary, and that the changes proposed in the PR itself are adequate.

i509VCB commented 3 years ago

Alternation between any and all feels confusing imo.

AlexIIL commented 3 years ago

I've updated this to clarify that I'm not changing the behaviour of "unless" dep objects, for deps or breaks.

AlexIIL commented 2 years ago

Sorry, I didn't realise this had conflicts :(

AlexIIL commented 2 years ago

Ah, fortunately it was just a file move. This should be mergeable now.