Skip to main content

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 xPacks, starting with xpm v0.14.0, the definitions are:

  • xpack.dependencies
  • xpack.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 dependencies to xpack.dependencies
  • move xpm references from devDependencies to xpack.devDependencies
  • if any, keep the npm references in dependencies and devDependencies
  • update xpack.minimumXpmRequired to at least 0.14.0
  • add npm install to 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.