-
Notifications
You must be signed in to change notification settings - Fork 129
Flatten the module manifest structure #188
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
Flatten the module manifest structure #188
Conversation
@SteveL-MSFT FYI, when you get to it, since you own PowerShellGet now one part of this RFC that I'd specifically like your feedback on is the alternate proposal section about the module where |
@KirkMunro The main issue with this proposal is that it makes modules using this format only compatible with PS7 and newer. If we think that is acceptable, it may make sense to just calls this |
That's been the longstanding argument against this type of update in the past. While I've always felt that to be a lame argument, consider this:
As for benefit vs cost, there are open RFCs which would result in additional manifest keys added to a module manifest. What then? Are we stuck putting all new keys in PSData until the end of PowerShell because of a design issue that was identified but not fixed years ago (in the PowerShell 3 timeframe)? Here's an intriguing thought @SteveL-MSFT: |
We could add |
@iSazonov Added as an alternate proposal. My concern with that approach is what happens if we add one or more keys in 7, and then others in 7.x or in 8 or some other version. How would you generate a manifest for the appropriate version then? |
Here is an example of adding a new module manifest key for |
With PowerShell 7 installing side-by-side with Windows PowerShell, I'm very curious to see how backwards compatibility concerns will evolve (and hopefully diminish greatly). |
My personal take is that the bar for reformatting the module manifest in a way that breaks back-compat with 5.1 should still be very, very high. Backwards compatibility is a huge tenet of what we're trying to do in 7, and even with a To that end, I'm not sure exactly what we're gaining here other than "the module manifest looks nicer". It does absolutely look nicer, and I agree that the current state of module manifests has gotten cluttered from ad-hoc additions, but we have As for the philosophy on adding new manifest keys in the future, I don't know that it would change just because we came up with a new schema here. Personally, I was in favor of changing future versions of PS to loosely validate the module manifest so that we could one day treat the whole thing like That being said, I think it's worth us reviewing a few of those RFCs proposing additions before making a call here. |
Thanks for sharing your thoughts on this @joeyaiello. One more point for consideration as you guys keep reviewing the current crop of RFCs: As a module author, if I'm on PowerShell 7 and I create a new module using that version, with the manifest configured by default to work with (m)any downlevel versions of PowerShell, but I'm not thinking about that or testing those versions, is that the right thing to do? i.e. By deferring the thought process of the minimum version of PowerShell you want to support in a module, are we helping folks because hey, it's just scripting, and so everything should work, right? Or are we hurting folks because users may download a module that was never designed for use, nor tested, with a certain version of PowerShell, and therefore it may very well not work with that version, but the author may not have been paying enough attention to set up the minimum version. By creating module manifests for a specific version, and forcing the choice on the module author to specify the version they want to support as their minimum (since it would default to the current version of PowerShell), we're properly identifying whatever minimum bar the module author wants while also opening the door to easier manifest additions going forward. |
@PowerShell/powershell-committee reviewed this, we believe this is too big a change and not providing sufficient value. The significant majority of module authors would want the largest addressable market which would mean not using a module manifest format that is incompatible with at least 5.1. So the utility of this change is minimal. We agree that there should be consistency going forward on PowerShell Team extensions to the module manifest within |
…ejected/RFC0039-Simplify-Module-Manifests.md
No description provided.