Repository navigation
doc: first cut at documentation for support level - #139
Conversation
| file for a package which documents the maintainers expectations. For example: | ||
|
|
||
| ```json | ||
| { "support": { |
There was a problem hiding this comment.
i do not think we should be encouraging this unless we also provide a tool that can validate its contents.
There was a problem hiding this comment.
What do you mean when you say "tools"? Something supported outside of this WG (like an npm/yarn cli feature)? Or like a separate cli tool we have to audit your installed dependencies?
I think ideally we would also work to get this kind of information displayed on the npm page and maybe readme badges, but other than that I am not sure what tooling would be most effective here.
There was a problem hiding this comment.
A separate CLI tool would be fine; for example, the SPDX in a license field can be checked with a CLI tool, as well as with npm. The "browser" field, however, has a defacto spec that all tools implicitly validate when accessing it.
Encouraging unchecked usage of a package.json field imo is a really difficult bell to unring.
There was a problem hiding this comment.
IMO the tools I have used with bespoke package.json additions have all been fine.
I understand your concern, but of all the source for recommending an addition to the file, a node WG is a good place to do it. We should obviously vet it with a larger audience first, but if that all goes well I am not sure why this would be a bad recommendation.
There was a problem hiding this comment.
If any form of schema validation exists that can be used in CI, and we can recommend that as well, then I'd be very happy with this.
There was a problem hiding this comment.
A simple node program that loaded package.json and validated the support section should be pretty easy do write I think. We could land this as "draft" (which is the directory it is targetted to) and look to get a volunteer to write that tool before we move it of draft to the directory for recommended practices.
| anyone creating an application using an LTS version of Node.js and using the latest major version of LTS | ||
| adopting modules will will not have to accept semver-major level (ie. breaking) changes into that | ||
| application in order to receive essential fixes. | ||
| * NODE-SUPERSET - The package is maintained for versions of Node.js including both LTS and non-LTS releases, however, it |
There was a problem hiding this comment.
NODE-SUPERSET and NODE-SUPERSET-LTS seem the same except that perhaps the latter is saying "no breaking changes", which is so unrealistic that i don't think any package ever does it. I'm not sure there needs to be a difference here.
There was a problem hiding this comment.
Ok, was not sure if anybody would try to achieve that or not. I'll remove.
Emuentes
left a comment
There was a problem hiding this comment.
Mostly minor stuff observed, let me know if there is some other way you'd prefer to receive this feedback.
For example,
I could make a branch from your PR with the notes I made implemented into it.
That way you could keep what you want by merging it into your branch instead of having to make the changes yourself.
| @@ -0,0 +1,118 @@ | |||
| # Baseline practice - Document support support levels | |||
|
|
|||
| With the larger number of packages within the JavaScript ecosystem the level of | |||
There was a problem hiding this comment.
I would rewrite this sentences using "Maintaners" as the subject and first word.
There was a problem hiding this comment.
@mcollina need a bit more to follow the suggestion. Can you provide your suggested sentence?
There was a problem hiding this comment.
How about:
Package maintainers provide different level of support in the large npm ecosystem.
My main point here is that we should not start this document with “With”.
| adopting modules will will not have to accept semver-major level (ie. breaking) changes into that | ||
| application in order to receive essential fixes. | ||
| * NODE-SUPERSET - The package is maintained for versions of Node.js including both LTS and non-LTS releases, however, it | ||
| may be necessary to accept semver-major level (ie. breaking) changes into that application in order to receive essential fixes. |
There was a problem hiding this comment.
I would prefer these levels to be organized inside a table with examples on Node LTS releases.
There was a problem hiding this comment.
@mcollina I don't quite understand 'with examples on Node LTS releases'?
There was a problem hiding this comment.
At this point in time, we are supporting Node 6, 8, 10, 11. We need a simple table that states which Node.js version my package should support to be in each level.
| { "support": { | ||
| "target" : "NODE_LTS", | ||
| "response": "BEST_EFFORT", | ||
| "backing": "INDIVIDUAL" |
There was a problem hiding this comment.
INDIVIDUAL is not listed as an option below.
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
|
|
||
| Support response quantifies how quickly the maintainer targets/is able to respond to issues: | ||
|
|
||
| * ABANDONED - Don't expect a response, the package is not being actively maintained |
There was a problem hiding this comment.
Does this somewhat duplicate a similar "target" (i.e. would it make sense to skip the rest of the fields once a project gets retired)?
That said, would NONE work better (even if just to avoid saying "abandoned")? NONE can then also be used for cases when the maintainer has no intention to provide even "best effort" support (i.e. when the package is not necessarily "abandoned").
There was a problem hiding this comment.
an alternative is "finished" - as many packages are considered to be "done" and need no further attention or updates.
There was a problem hiding this comment.
Maybe rather than "finished" it could be "feature complete"? Bugs and security issues often happen on "finished" modules, and we wouldn't want to say these would never be updated. Just not to expect it for new features.
There was a problem hiding this comment.
It's almost a different dimension indicating new features functionality is being actively added to the module. What I had in mind was the response to issues with problems/questions. "finished" or "feature complete" does not really fit into that except that you know that some classes of questions (requests for features) are unlikely to get a positive response.
There was a problem hiding this comment.
I've updated it to be NONE as suggested.
|
|
||
| * ABANDONED - Not recommened for use. The package is depercated or not longer maintained. | ||
| * NONE - use at your own risk, no active support may or may not work for a given Node.js version. | ||
| * NODE-LATEST - The package is maintained only for the Latest Node.js versions. You will be required to update |
There was a problem hiding this comment.
I would prefer we drop the NODE- prefix here (and in all other cases) since it doesn't really add value. Additionally, it prevents community expansion on using this context for the broader system.
| file for a package which documents the maintainers expectations. For example: | ||
|
|
||
| ```json | ||
| { "support": { |
There was a problem hiding this comment.
What do you mean when you say "tools"? Something supported outside of this WG (like an npm/yarn cli feature)? Or like a separate cli tool we have to audit your installed dependencies?
I think ideally we would also work to get this kind of information displayed on the npm page and maybe readme badges, but other than that I am not sure what tooling would be most effective here.
|
|
||
| Support response quantifies how quickly the maintainer targets/is able to respond to issues: | ||
|
|
||
| * ABANDONED - Don't expect a response, the package is not being actively maintained |
There was a problem hiding this comment.
Maybe rather than "finished" it could be "feature complete"? Bugs and security issues often happen on "finished" modules, and we wouldn't want to say these would never be updated. Just not to expect it for new features.
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
Co-Authored-By: mhdawson <michael_dawson@ca.ibm.com>
|
@wesleytodd you show as requesting changes. I think you comments have been addressed. Can you take another look? @mcollina I think I have also addressed your comments or at least commented on questions. Can you take another look as well. |
|
Sorry to nag but @mcollina @wesleytodd can you take a look? |
| @@ -0,0 +1,118 @@ | |||
| # Baseline practice - Document support support levels | |||
|
|
|||
| With the larger number of packages within the JavaScript ecosystem the level of | |||
There was a problem hiding this comment.
How about:
Package maintainers provide different level of support in the large npm ecosystem.
My main point here is that we should not start this document with “With”.
| adopting modules will will not have to accept semver-major level (ie. breaking) changes into that | ||
| application in order to receive essential fixes. | ||
| * NODE-SUPERSET - The package is maintained for versions of Node.js including both LTS and non-LTS releases, however, it | ||
| may be necessary to accept semver-major level (ie. breaking) changes into that application in order to receive essential fixes. |
There was a problem hiding this comment.
At this point in time, we are supporting Node 6, 8, 10, 11. We need a simple table that states which Node.js version my package should support to be in each level.
| maintain the package. Consider supporting this sponsorship through patreon etc. | ||
| * BOUNTY - The package is maintained through the use of a bounty service | ||
| * PROJECT - The package is maintained under the auspices of a larger project (ex Node.js project). | ||
| * FOUNDATION - The package is maintained and supported under the auspices of a Foundation. |
There was a problem hiding this comment.
A project that has:
- most developers working on it has an HOBBY.
- some developers supported by their COMPANY
how would be categorized? How that would change if it is part of a Foundation or not?
| maintain the package. Consider supporting this sponsorship through patreon etc. | ||
| * BOUNTY - The package is maintained through the use of a bounty service | ||
| * PROJECT - The package is maintained under the auspices of a larger project (ex Node.js project). | ||
| * FOUNDATION - The package is maintained and supported under the auspices of a Foundation. |
There was a problem hiding this comment.
In the case of a FOUNDATION it's harder to choose as it depends on the level of COMPANY support and at what level the package is a member of a foundation (for example IMPACT versus Sandbox). I think the package owner should choose based on which they believe reflects where the larger portion of backing for the module comes from.
I think we should not have this type of ambiguity in this format.
|
@Eomm has created a tool to validate the "support level" object in the package.json file. Can some of the folks reviewing this spec review the code and provide any feedback if needed? Issue "ticket" for creating the tool Code for the tool: |
| to the latest LTS Node.js version in order to ensure you can use new versions/get security fixes. | ||
| * LTS - The package is maintained for the Node.js LTS releases (both in Active and Maintenence mode). | ||
| Anyone creating an application using an LTS version of Node.js and using the latest major version of | ||
| LTS adopting modules will will not have to accept semver-major level (ie. breaking) changes into that |
There was a problem hiding this comment.
will will - duplication of word
| identify your package with an option which is not yet listed, please PR your | ||
| option into the lists in the sections which follow. In the package.json the values | ||
| can be any string, those which are not documented in the lists within this | ||
| document considered "custom" and may irgnored for flagged by any tooling that |
Fix filename
|
@wesleytodd see I got your mention wrong last time so tagging again. |
|
Sorry, I have been attempting to disconnect and focus on my family for a bit. I will be sure to check back in when my parental leave it finished, but for now I am going to continue my small hiatus. I will approve so I don't hold anything up unnecessarily, and if I find any input I have when I check back in I will be sure to post it. Keep up the good work team! |
|
I think I've addressed all the comments so far and since it's landing as a draft I think it's ok if it lands. I'll plan to do that on Monday March 18th unless somebody comments/objects before then. |
No description provided.