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
OpenPGP_signature.asc
Description: OpenPGP digital signature
-- _______________________________________________ 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