Hello,
regarding oVirt JavaScript applications (like Dashboard), we'd like
to reach a point where we'll be using latest Node.js LTS runtime and
lock down all dependency versions, resulting in reproducible builds.
Please note that both Node.js and all JS dependencies are needed only
when building oVirt JavaScript applications & corresponding packages.
The near future items are following:
1, patch ovirt-engine-{nodejs,nodejs-modules} to use Node.js v6 (LTS),
refer to
https://github.com/nodejs/LTS for more details
2, patch ovirt-engine-nodejs-modules to use Node.js runtime provided
by ovirt-engine-nodejs - revive
https://gerrit.ovirt.org/#/c/59898/
3, lock down dependency versions in ovirt-engine-nodejs-modules
via npm-shrinkwrap - finalize
https://gerrit.ovirt.org/#/c/61957/
From this point, we can proceed with long term items:
4, consolidate dependencies across projects:
4a, update react-patternfly:
-
https://github.com/jtomasek/react-patternfly/
- add common PatternFly components (e.g. out of Dashboard)
4b, update ovirt-ui-components:
-
https://github.com/matobet/ovirt-ui-components/
- depend on react-patternfly
- add oVirt specific components (e.g. out of Dashboard)
4c, update ovirt-engine-nodejs-modules:
- depend on ovirt-ui-components
4d, update all oVirt JS projects, like Dashboard
- depend on ovirt-ui-components
*all* oVirt JS projects should depend on ovirt-ui-components.
react-patternfly exists separately to support non-oVirt cases.
5, develop "showcase" webapp as part of react-patternfly repo to
ensure it's well-aligned with PatternFly look'n'feel
- it would be nice to host the "showcase" webapp somewhere
6, address common problems that arise from using npm-shrinkwrap
- deterministic (predictable) dependency resolution
- checksum verification to ensure integrity of dependencies
- dependency de-duplication (avoid multiple versions)
Yarn [1][2] addresses all problems mentioned above. It's still
in early development, so I'd wait a bit and see how it matures.
Note: ManageIQ UI is already using Yarn [3].
[1]
https://code.facebook.com/posts/1840075619545360
[2]
https://github.com/yarnpkg/yarn
[3]
https://github.com/ManageIQ/manageiq-ui-service/pull/296/files
Feel free to share your thoughts or concerns.
Regards,
Vojtech