QuiltMC / rfcs

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

Fix issues found in the QMJ specification during implementation #24

Closed TheGlitch76 closed 3 years ago

TheGlitch76 commented 3 years ago

The summary of changes, and their reasoning:

  1. Maven groups now have to be alphanumeric or the characters ., -, or _ (I am willing to expand this if needed)
  2. The maven group namespace loader.plugin. is reserved for use by plugins, for example fabric mods would be under the implicit group loader.plugin.fabric.modid
    • This isn't enforced for provides though, should it be? Or should provides not be allowed to define a maven group at all?
  3. Provides now uses a ProvidesObject instead of a DependencyObject--some fields of DependencyObject needlessly complicate implementation or are simply not needed (for example, the array behavior of a dependency object)
Haven-King commented 3 years ago
  1. Sounds good.
  2. provides should be allowed to provide a Maven group. It is a relatively infrequently used feature, however, and I believe that if somebody wants to provide a "reserved" namespace they might as well be able to.
  3. Could you explain in some detail the need for a separate ProvidesObject to me? You replaced the single DependencyObject with an array of ProvidesObjects in your changes, which makes me wonder why you claim the array behavior of DependencyObject is not needed. I could also see a situation arising where unless would be useful for provides, so am wary to remove that as well.
TheGlitch76 commented 3 years ago

which makes me wonder why you claim the array behavior of DependencyObject is not needed.

The array behavior is "any", not "all", which makes no sense for a provides object

Haven-King commented 3 years ago

While it might not make sense in that a mod wouldn't provide any of the items in provides, it does correlate better to matching dependencies. That being said, I can understand these changes and if a use case arises in the future where unless or the array variant is needed, we can always add it.