Bug 1912515
| Summary: | Stop Shipping Individual Nodejs Library Packages | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Ben Cotton <bcotton> |
| Component: | Changes Tracking | Assignee: | Troy Dawson <tdawson> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 34 | CC: | bcotton, sgallagh, tdawson |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2022-02-16 20:02:29 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1860440 | ||
|
Description
Ben Cotton
2021-01-04 15:55:54 UTC
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. |