0001: Share npm dependencies
Overview
Initially xpm shared dependencies with npm, in the same top
dependencies and devDependencies properties.
The advantage was that npm aware tools and sites were able to list these dependencies.
However, this required xpm install to also handle the npm dependencies,
which made things more complicated than they should have been.
Changes
To simplify things, given that the xpm dependencies have a different
nature than node modules and require a different logic, it was considered
that it would be better to completely separate the definitions in
package.json, and move them below the xpack object.
Thus, for source and binary packages, starting with xpm v0.14.0, the definitions are:
xpack.dependenciesxpack.devDependencies
Action points
For a while, packages that have a xpack.minimumXpmRequired less than 0.14.0,
will still be able to use the shared definitions with npm,
but it is recommended to update the packages.
To do this, it is required to:
- update xpm to at least v0.14.0
- move xpm references from
dependenciestoxpack.dependencies - move xpm references from
devDependenciestoxpack.devDependencies - if any, keep the npm references in
dependenciesanddevDependencies - update
xpack.minimumXpmRequiredto at least 0.14.0 - add
npm installto CI configurations (if needed)
End-of-life
This policy is expected to remain available until the major rewrite of xpm, planned for v1.0.0.