++ to that Upon last iteration we decided that we are not going to deprecate current functionality `if fedora == 43; generate unversioned nodejs from this srpm', but rather move it to unversioned nodejs srpm: 'if fedora == 43; *pull* nodejs24 and its -bin packages'.
That, in my opinion, is a bit cleaner solution, as versioned streams could then be independent, and by default pull only core nodejs and libs, and if you need, you could pull -bin and npm-bin explicitly. Or otherwise opt in for 'dnf install nodejs' and we will pull everything for you. On Thu, Aug 7, 2025 at 11:44 AM Vít Ondruch <vondr...@redhat.com> wrote: > > Dne 05. 08. 25 v 19:01 Stephen Gallagher napsal(a): > > On Tue, Aug 5, 2025 at 11:10 AM Jan Stanek <jsta...@redhat.com> wrote: > >> On Tue, Aug 5, 2025 at 4:37 PM Stephen Gallagher <sgall...@redhat.com> > wrote: > >>> Also be aware that you'll need to figure out what to do about `npm` > >>> and other tools that are bundled with the interpreter. They might need > >>> their own subpackages. > >> Yeah, we are aware, but here it will depend on what the actual use > >> cases are/will be. > >> We'll start with providing just `nodejs` and see what breaks (in the > >> testing side-tag). > >> > >>> I'm curious why you're back-tracking here, though. I thought the > >>> entire point of the other Changes was that you did *not* want to have > >>> an opinionated `nodejs` package. The solution you're coming up with is > >>> starting to asymptotically approach the solution you are replacing. > >> Well, we are trying to do this (slightly) differently. This thread is > >> related to the metapackage proposal [1]; > >> the TLDR would be that the opinionated `nodejs` package should be > *optional* > >> – by having the nodejs and e.g. nodejs24 names provided by separate > rpms, > >> we can differentiate between "I want any nodejs, don't care about > >> major version and it can change" > >> and "I want nodejs v24.x, keep it at that release stream". > >> > >> [1]: https://fedoraproject.org/wiki/Changes/NodeJSMetapackages > >> > >> The `nodejs` name could be provided by any of the versioned streams as > >> another subpackage, > >> but given that it may very well end up being a set of packages/names, > >> having a separate spec file for that looks easier from the maintenance > >> perspective. > >> Hence why we want to resurrect the actual nodejs package. > >> > >>> I assume this is part of the solution to my question: "What happens > >>> upon upgrade between Fedora releases?" > >>> > >>> I guess `nodejs` package would carry the latest even-numbered > >>> (destined for LTS) release available at the time of Fedora release. > >>> (Given the Node.js release cycle, this doesn't line up perfectly, as > >>> even-numbered Fedora Betas are in February, where Node.js releases > >>> two-to-four weeks after our GA. So presumably we'd expect to ship v24 > >>> (released in May) as the default Node.js in F43 and F44 and then v26 > >>> in Fedora 45 and 46 (and so on). Those Node.js versions would still > >>> turn up as non-default options in one prior Fedora release. Do I have > >>> that correct? > >> The whole purpose of the `nodejs` package is to pull whichever > >> `nodejsXY` package we deem appropriate as the "default" or "any" > >> version; it will otherwise be empty. > >> For what we deem appropriate, it will probably follow what you > >> described above; but given that one of the documented non-guarantees > >> of the `nodejs` would be that the version can change even during the > >> lifetime of a single distribution release (e.g. F43), > > That would be in violation of our stable updates policy and would need > > a special FESCo exemption. It would require a compelling argument > > (like: "upstream changed its mind on how long it would be supported"). > > > >> we can be a bit more flexible with selecting the version. If you don't > >> want to be upgraded from eg. N24 to N26 during the lifetime of the > >> Fedora release, you would be encouraged to select and install a stream > >> specifically (e.g. `dnf install nodejs24`). > > That's the opposite of the users' expectation. If you want to have > > something like that, a better choice is to offer a `nodejs-latest` > > package that always tracks the newest version (which could include the > > odd-numbered Node.js releases, I'd expect). Users on that path would > > have to understand that they would regularly encounter > > backwards-incompatible changes. > > > > The default assumption has to be that the user experience doesn't > > change once the user installs something unless it is absolutely > > necessary. Node.js has compatibility breaks with every release (hence > > why the major version changes) and thus should not change during a > > single Fedora cycle. > > > I believe it is safe to say that this proposal allows flexibility. The > rest is about policies how we use the flexibility. > > I think it is fine if for specific Fedora version, the `dnf install > nodejs` pulls in always the same specific Node.js version. Where on > system upgrade to newer Fedora version, this allows the newer Node.js > version to be pulled in. > > E.g. for lets say Fedora 43, `dnf install nodejs` will always install > Node.js 24. Given the Fedora and Node.js lifecycles, that also means F44 > will keep using Node.js 24 while system upgrade to F45 will pull in > Node.js 26. > > > > Vít > > > > > >> To answer your original question here, upgrade to Fedora releases here > >> is treated as any other upgrades in this specific case – `nodejs` > >> would be potentially updated to a new version; if that version depends > >> on newer `nodejsXY`, the newer stream will be pulled as a dependency. > >> The old one might be kept and updated, or removed as no-longer-needed > >> dependency (depends on the dnf and whether it was ever marked as > >> explicitly installed). > >> > >> Hope this sheds some light on the matter. > >> Best regards! > >> -- > >> > >> Jan Stanek > >> > >> Software Engineer > >> > >> Red Hat > >> > >> IM: @jstanek > >> > >> -- > >> _______________________________________________ > >> devel mailing list -- devel@lists.fedoraproject.org > >> To unsubscribe send an email to devel-le...@lists.fedoraproject.org > >> Fedora Code of Conduct: > https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > >> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > >> List Archives: > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org > >> Do not reply to spam, report it: > https://pagure.io/fedora-infrastructure/new_issue > -- > _______________________________________________ > devel mailing list -- devel@lists.fedoraproject.org > To unsubscribe send an email to devel-le...@lists.fedoraproject.org > Fedora Code of Conduct: > https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org > Do not reply to spam, report it: > https://pagure.io/fedora-infrastructure/new_issue >
-- _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue