Skip to content
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

Standard grammar/keywords to reference node release lines #236

Closed
dominykas opened this issue Jul 30, 2019 · 18 comments
Closed

Standard grammar/keywords to reference node release lines #236

dominykas opened this issue Jul 30, 2019 · 18 comments
Labels
discussion The decision process is still ongoing package-maintenance-agenda Agenda items for package-maintenance team pull request wanted Create a PR from the discussion

Comments

@dominykas
Copy link
Member

Background:

Not sure if it is in scope for this group to standardize such a grammar or whether this discussion should be moved elsewhere, but renovate's grammar is a reasonable starting point *, so at the very least we might want to discuss if we should adopt it for the support-target field **:

supportPolicy versions description
all 8,10,11,12 All releases that have not passed their end date
lts 8,10 All releases classified as LTS, including in maintenance
active 10,12 All releases not in maintenance
lts_active 10 All releases both LTS and active
lts_latest 10 The latest LTS release
current 12 The latest release from "all"

(source)

I believe lts_latest in renovate's dictionary is equivalent to lts/* in nvm, but it does need (as well as nvm) a way to specify "oldest supported LTS" (and similar).

I'm also aware some people like to test/support down to minor and even patch level of node, but I'm not sure there's a need for a grammar to reference them.

As much as I'm reluctant to go provider specific, there is also the case of AWS Lambda, which is usually several minor version behind latest, so this might be useful to include in the keyword list (at the cost of simplicity...)


  • * - I have to admit that I do think that current language used in terms of "active" vs "lts" vs "maintenance lts" releases is rather complex and has mislead people in the past, but at this point I do not have concrete suggestions on how to improve it... And that's probably outside of scope of this group anyways.
  • ** - I wonder how would this transfer to other ecosystems and whether we should aim for a more abstract support-target field, which is closer to a dictionary a la engines in package.json.
@ljharb
Copy link
Member

ljharb commented Jul 30, 2019

The only ecosystem I really think we need to concern ourselves with is node's - which will always have a package.json or equivalent.

@BethGriggs
Copy link
Member

We've been discussing something similar over in nodejs/Release#359

@mhdawson
Copy link
Member

mhdawson commented Jul 30, 2019

I'm always in favor of starting with something in use as opposed to re-inventing the wheel unless we have reasons that mean what's in use is not a good fit. I'd be in favor of starting with it and then adding:

  • abandoned
  • none

@dominykas dominykas added the package-maintenance-agenda Agenda items for package-maintenance team label Aug 13, 2019
@Eomm
Copy link
Member

Eomm commented Aug 16, 2019

Update the #220 with this mapping:

abandoned -> added 🆕
none -> added 🆕
all -> was superset
lts -> was lts
active -> added 🆕
lts_active -> added 🆕
lts_latest -> was latest
current -> added 🆕

How we could call also those packages that support EOL node? all_eol?

I will follow the issue by the release WG to update the PR accordingly

@Eomm Eomm mentioned this issue Aug 16, 2019
@ljharb
Copy link
Member

ljharb commented Aug 16, 2019

just “all”? but also, i don’t think that’s really the case for anyone; none of my packages, even, support node < 0.4 :-)

@mhdawson
Copy link
Member

I think just "all" makes sense to me as well. Since active should cover all that are not EOL.

@mhdawson
Copy link
Member

Scratch my last comment as "active" is something different in what we have.

@mhdawson
Copy link
Member

Next action was for @BethGriggs to get us some feedback from the Release team

@Eomm
Copy link
Member

Eomm commented Aug 31, 2019

Watched the meeting from 22:00

we should mainly:

  • clarify the difference between all and maintained
  • lts_active could have 6 months overlap

The nice idea is to see those tags in the download page of the site

@Eomm Eomm added discussion The decision process is still ongoing pull request wanted Create a PR from the discussion labels Aug 31, 2019
@mhdawson
Copy link
Member

mhdawson commented Sep 5, 2019

@Eomm do you want to submit a PR do the doc to address those 2 comments or would you like me to?

@Eomm
Copy link
Member

Eomm commented Sep 7, 2019

I will open it 💪

@mhdawson
Copy link
Member

Michael also needs to do PR for this: nodejs/Release#359

@wesleytodd
Copy link
Member

wesleytodd commented Sep 25, 2019

So I wrote this the other night: https://github.com/wesleytodd/node-matrix/blob/master~/versions.js

EDIT: I moved the implementation to a module. https://github.com/pkgjs/nv

It implements the aliases discussed here (and in the support doc) and will return the current node versions for the given aliases. The repo it is in was me experimenting with an action which would automagically update a test matrix. The same approach could apply to a travis config. I was wondering if this seemed like a good and long term viable approach to improving the situation here.

Note: it doesn't work yet because of a bug in github actions which prevents personal access tokens from pushing workflow changes: https://twitter.com/chrisrpatterson/status/1176851927918948352

@bnb
Copy link
Contributor

bnb commented Sep 30, 2019

Heh, I came to this issue to ask if the Package Maintenance WG would be willing to maintain a module for this – regardless of whether the output is static JSON (something like node-releases or if it was actually a dynamic resolution tool (or both).

I would really love to see us pull in @pkgjs/nv or some variant as a Package Maintenance WG supported module.

@wesleytodd
Copy link
Member

I would really love to see us pull in @pkgjs/nv or some variant as a Package Maintenance WG supported module.

As I have proposed before, I am super happy to have that Org be a place to collaborate. Anyone who wants in just has to ask!

And also, I plan on supporting that specific package indefinitely, so you might consider it "WG supported" as I also plan on being a part of this WG indefinitely. Please don't kick me out 📦 😛

This brings up an interesting point I made here. How do we want to "support" modules for our initiatives?

If we move them into the node org there is some level of "blessed implementation", which has both pro's and con's. As @Eomm points out, we might be able to move faster with less eyes than we would get working inside the node org.

a faster create-publish-fail, create-publish-fail, create-publish-success that maybe we can't do in the nodejs org

@mhdawson
Copy link
Member

mhdawson commented Nov 5, 2019

Waiting on PR for release, node core and website to make sure we have the consistent language - Michael has action, but has not done it yet.

@mhdawson
Copy link
Member

I looked through the doc in the Release WG repo (https://github.com/nodejs/release) I did not find anything I thought needed to be updated.

Will look at main Node.js repo next.

@mhdawson
Copy link
Member

I looked through the docs in the main repo. I did not find anything that I through needed an update to be consistent with the grammar we've defined.

Closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion The decision process is still ongoing package-maintenance-agenda Agenda items for package-maintenance team pull request wanted Create a PR from the discussion
Projects
None yet
Development

No branches or pull requests

7 participants