foundryvtt / foundryvtt

Public issue tracking and documentation for Foundry Virtual Tabletop - software connecting RPG gamers in a shared multiplayer environment with an intuitive interface and powerful API.
https://foundryvtt.com/
239 stars 9 forks source link

Avoid double-counting of package warnings for deprecated fields #10989

Closed shemetz closed 4 months ago

shemetz commented 5 months ago

User Experience

Currently, when the foundry setup screen opens, a lot of package warnings appear - and many of them are warnings like these:

The "pf2E Extempore Effects" module's manifest contained the following unknown keys: "manifestPlusVersion"

The "PF2e Animation Macros" module's manifest contained the following unknown keys: "manifestPlusVersion"

The "Sequencer" module's manifest contained the following unknown keys: "manifestPlusVersion"

A lot of modules contain this specific field, manifestPlusVersion, and for a good reason - it's an unofficial community-developed specification, defined here - https://foundryvtt.wiki/en/development/manifest-plus - and it's not a field that anyone is planning to remove, so the warnings aren't being helpful.

Even though it's unofficial, I think it's popular enough that it should be ignored and treated as an acceptable field. In my own installation, these account for 45% of the package warnings I see. (the rest of the warnings are almost all about deprecated fields)

Fyorl commented 4 months ago

Supplemental manifest fields should go under flags.

shemetz commented 4 months ago

Yeah, changing Manifest+ to work like that would be a good solution too. I'll bring it up in its discord channel.

Fyorl commented 4 months ago

I'm repurposing this issue to relate to the double-counting of manifest warnings in some cases. For the specific case of the manifestPlusVersion field we would rather not maintain a list of 'blessed-but-non-standard' manifest keys. The appropriate place for these fields is under flags, where they will not generate any warnings. We will also implement #11066 which will suppress warnings for users that do not opt-into it, so that developers can see and address warnings in their own packages but not cause any confusion for end users.