Closed bcoca closed 7 years ago
1) Do we need to detail at what version we added the deprecation notice(status=deprecated
)?
2) Do we need to detail which version removed this module (status=removed
)?
3) We will need to review and remove the existing from modules:
requirements:
- python >= 2.6
4) If we are going to be making changes to how documentation is produces is now the time to have versioned documentation online
docs.ansible.com/v2.2/lineinfile_module.html
docs.ansible.com/devel/lineinfile_module.html
1 & 2) we already do this in module docs, that metadata was only reflecting 'current state', but no reason we cannot expand:
deprecated: "2.2"
removed: "2.4"
3) I'm not sure if this will work as a substitute, it might make sense to keep it in requirements, either way works for me.
4) For the docs, we've been planning for a long time /devel and /stable, keeping per version just creates too big a maintenance burden.
I'm happy with that as long as we don't duplicate data.
So given this, I assume that new modules, once they pass the automated tests and very basic review, would come in as "community" and "preview", right? I presume:
I might recommend replacing "preview" with "unstable" so that it can be a bidirectional state; i.e. we can demote modules from "stable" to "unstable" if the reviewer disappears. But other than that, I think this model looks pretty good.
preview/stable will probably require 'age' or core curation/support, it is a commitment that the interface won't change.
As such i can see promoting but there should be no demoting, this is more of a policy issue than a support one. That is why I avoided 'unstable' as it looked more like code quality/support than anything else, but I'm fine to change the names to whatever people think is more appropriate.
We discussed and combined this with https://github.com/ansible/proposals/issues/30 Closing this so there's only one ticket to track.
Proposal: module metadata (REVISED)
Author: Brian Coca @bcoca
Date: 2016/08/32
Motivation
Managing modules and identifying their applicability is a problem, this proposal aims to add metadata entry to modules to give more information to those managing and classifying them, not needed at run-time but for decisions made prior about viability and availability.
Problems
Solution proposal
Add a METADATA variable to the modules (like current DOCUMENTATION, EXAMPLES, etc)
versions
could allow for range expressions i.e3.5+
or>=3.5
and2.4-2.7
,not sure if we neednever mind .. powershell.name=python
as I don't see this applying to modules in other languages.systemd
is Linux specific. But we can have more, just need to standardize on naming, versions and groupings:Newly contributed plugins would default to
support: community
andstatus: preview
.Documentation
Pertinent metadata should be reflected in the documentation website and also in
ansible-doc
output.Additional
Aside from status and support all of the above are optional, can be added later on. Also this can also be easily expanded, for example, if we partner with some other entity to let them support specific modules we can add:
We've also been looking at testing info:
or