Description
Hey!
For a project, I was trying to implement the node namespace values. I took some notes as I was exploring it, which you can find raw here. However, I'd like to refine them and share my issues/concerns with the node
namespace values:
- Currently, there is inconsistency in how the values are named.
lts
is equivalent tolts_all
if we're looking at the naming of bothall
andlts_latest
/lts_active
. We have two naming schemes side by side - effectively, we've implemented both a flat structure and a tiered structure, and the intersection of those two is messy.
active
is particularly problematic since it co-opts existing terminology.Active
is terminology already adopted by the release working group for LTS releases.active
in the context of this includes both (Release WG terminology)current
andactive LTS
, which does not help clarify the already confusing state that we exist within.
- Certain matrix combinations are missing.
- Example: there's not a way for someone to say they only support maintenance LTS.
- Example: there's not a way for someone to say they only support EOL versions.
- While these examples may not be something we'd immediately consider as valid options, there are potentially scenarios where they'd be useful. For example, imagine a polyfill library that backfills all possible new Node.js features to maintenance mode LTS, or a package that intentionally logs a message on EOL verisons.
Rather than building out an incomplete structure (especially when we've collectively consistently struggled with naming release concepts in the past!) as a matrix, I'd like to propose that we simply take the elements of the matrix and directly support those as an array rather than a string.
- current
- lts/latest (alternate:
lts-latest
) - lts/active (alternate:
lts-active
) - lts/maintenance ((alternate:
lts-maintenance
) - eol
any combination of these achieves every option in the existing namespace:
- all:
current, lts/active, lts/maintenance, eol
- lts:
lts/active, lts/maintenance
- lts_latest:
lts/latest
- supported:
current, lts/active, lts/maintenance
- current:
current
additionally, some combinations not currently covered by the existing namespace are covered:
- ones people might actually use:
- lts/maintenance
- eol
- handful of others, but I can't imagine people using them.
the only variation from the Release WG definition of release lines is lts/latest
which is a subset that's independent of categories, rather than a combination of multiple categories.
Activity