Hide Forgot
This is a tracking bug for Change: Stop Shipping Individual Nodejs Library Packages For more details, see: https://fedoraproject.org/wiki/Changes/NodejsLibrariesBundleByDefault For Nodejs, Fedora should only package: The interpreter, development headers/libraries, and the assorted tools to manage project-level installations (NPM, yarn, etc.). Packages that provide binaries that users would want to use in their shell. compiled/binary nodejs modules (for now)
The following "applications" source rpm's start with nodejs, and have a binary in /usr/bin/ nodejs-buble nodejs-linefix nodejs-nodemon nodejs-replace-require-self nodejs-shelljs nodejs-supervisor nodejs-svgo nodejs-tape According to the change request, these should stay. There were only 4 that needed to be updated and bundle their dependencies. The rest already had them bundled, or didn't have any dependencies.
With the above "application" packages bundled, I have moved onto discovering what nodejs libraries can safely be removed. I have used the following steps, on a rawhide machine, to find my list. dnf repoquery --qf="%{source_name}" -a | grep ^nodejs- | sort -u -o nodejs.sources vi nodejs.sources # remove the "application" packages from Comment #1, and nodejs-packaging ./find_unblocked_orphans.py --release rawhide --skip-orphans $(cat nodejs.sources) From the above steps, there are only 6 packages that are still depended upon, and 210 that can be removed if we remove them all at the same time. I am planning on removing the 210 packages before the F34 mass rebuild. During the F34 mass rebuild I will keep watch to see if any packages are failing builds due to missing nodejs libraries. I will work with any of these failed builds to get a proper solution following the change request guidelines. Note: There are currently only 216 nodejs library packages. There were 740 two months ago, and 1300 a year ago. These have all gone away due to being orphaned and/or being uninstallable. Packages still needed due to dependencies (6): nodejs-acorn-object-spread nodejs-backbone nodejs-colors nodejs-generic-pool nodejs-typescript nodejs-underscore Packages that can be removed, if done all at once (210): nodejs-acorn-dynamic-import nodejs-amdefine nodejs-ansicolors nodejs-any-promise nodejs-append-transform nodejs-array-buffer-from-string nodejs-array-index nodejs-asap nodejs-ascli nodejs-base32-encode nodejs-better-assert nodejs-better-than-before nodejs-bignumber-js nodejs-boom nodejs-bson nodejs-buf-compare nodejs-buffer-equal nodejs-builtin-modules nodejs-builtins nodejs-bundle-dependencies nodejs-bunker nodejs-burrito nodejs-caching-transform nodejs-caller-callsite nodejs-caller-path nodejs-callsites nodejs-camelcase-keys nodejs-charm nodejs-ci-info nodejs-cli nodejs-cli-color nodejs-cli-table nodejs-codemirror nodejs-code-point-at nodejs-combined-stream nodejs-commander nodejs-connect-livereload nodejs-consolemd nodejs-cookies nodejs-cryptiles nodejs-csv nodejs-currently-unhandled nodejs-cycle nodejs-d nodejs-debug nodejs-decamelize nodejs-decamelize-keys nodejs-deeper nodejs-default-require-extensions nodejs-delayed-stream nodejs-detect-indent nodejs-discord-js nodejs-dot-prop nodejs-duration nodejs-each nodejs-emojione nodejs-es5-ext nodejs-es6-iterator nodejs-es6-weak-map nodejs-escape-html nodejs-escape-regexp-component nodejs-escape-string-regexp nodejs-espurify nodejs-event-emitter nodejs-fancy-log nodejs-fmix nodejs-forever-agent nodejs-formatio nodejs-form-data nodejs-glob-base nodejs-glob-parent nodejs-glogg nodejs-gonzales-pe nodejs-graceful-readlink nodejs-growl nodejs-grunt-contrib-nodeunit nodejs-grunt-sed nodejs-gulplog nodejs-has-ansi nodejs-has-binary2 nodejs-has-flag nodejs-has-glob nodejs-has-gulplog nodejs-hashish nodejs-hawk nodejs-hex-to-array-buffer nodejs-hoek nodejs-homedir-polyfill nodejs-imurmurhash nodejs-indent-string nodejs-indexof nodejs-ipaddr-dot-js nodejs-irc-colors nodejs-irc-formatting nodejs-irc-upd nodejs-isarray nodejs-is-builtin-module nodejs-is-finite nodejs-is-fullwidth-code-point nodejs-is-observable nodejs-isodate nodejs-is-plain-obj nodejs-is-promise nodejs-is-text-path nodejs-is-valid-instance nodejs-js-base64 nodejs-jschardet nodejs-json3 nodejs-jsonify nodejs-jsonselect nodejs-lcid nodejs-levn nodejs-lolex nodejs-loud-rejection nodejs-lru-cache nodejs-lru-queue nodejs-magic-string nodejs-makeerror nodejs-md5-hex nodejs-memoizee nodejs-minipass nodejs-mkdirp nodejs-mongodb nodejs-mongodb-core nodejs-murmur-32 nodejs-mustache nodejs-mysql nodejs-mz nodejs-negative-zero nodejs-npm-run-path nodejs-nth-check nodejs-observable-to-promise nodejs-once nodejs-open nodejs-optionator nodejs-option-chain nodejs-options nodejs-os-homedir nodejs-os-locale nodejs-own-or-env nodejs-package-license nodejs-parse-glob nodejs-path-is-absolute nodejs-path-parse nodejs-pkginfo nodejs-platform nodejs-plur nodejs-pretty-ms nodejs-prism-media nodejs-pruddy-error nodejs-rainbowsocks nodejs-random-path nodejs-readdir-enhanced nodejs-require-all nodejs-resolve-cwd nodejs-resolve-from nodejs-resolve-pkg nodejs-rhea nodejs-runforcover nodejs-samsam nodejs-shebang-command nodejs-simple-fmt nodejs-simple-is nodejs-slide nodejs-snapdragon-capture-set nodejs-snapdragon-node nodejs-snapdragon-util nodejs-snekfetch nodejs-sntp nodejs-sorted-object nodejs-source-map nodejs-sprintf nodejs-ssri nodejs-stable nodejs-stack-trace nodejs-string nodejs-string_decoder nodejs-stringmap nodejs-stringscanner nodejs-stringset nodejs-string-width nodejs-strip-ansi nodejs-strip-bom-stream nodejs-strip-json-comments nodejs-strip-path nodejs-tempfile nodejs-tern-liferay nodejs-thenify nodejs-thenify-all nodejs-thunkify nodejs-tildify nodejs-timers-ext nodejs-tinycolor nodejs-trim-newlines nodejs-tryor nodejs-type-check nodejs-ultron nodejs-umask nodejs-user-home nodejs-vow nodejs-vow-queue nodejs-walker nodejs-ware nodejs-when nodejs-whet-dot-extend nodejs-window-size nodejs-wrap-ansi nodejs-ws nodejs-yamlish nodejs-yargs
The above 210 nodejs packages have been retired.
We have reached the 'Code Complete (testable)' milestone in the Fedora 34 release cycle. If your Change is in a testable state, please set the status to MODIFIED. If this Change will not be ready for Fedora 34, please set the version to rawhide. The 100% code complete deadline is Tue 2021-02-23.
The documentation has been updated (https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/). The process of updating all the packages in the distribution will be ongoing.
As Stephen said. The documentation has been updated. The current "applications" have been updated. The process of updating all the packages in the distribution will be an ongoing process, although the majority of them are already done.
There are three tests in the document. These three have been tested. 1 - Install all nodejs libraries in Fedora 33. Try to update to Fedora 34. :: Success 2 - Try to install all packages that require nodejs in Fedora 34. :: Success 3 - Install all packages that require nodejs in Fedora 33. Try to update to Fedora 34. :: Success Note: The package list of test 2 and test 3 were different. But both passed.