Version 0.9.0 is a new release of xpm; it adds support for configurations and configuration specific dependencies.

xpm is a Node.js CLI application to manage xPacks dependencies.

Install

xpm is a Node.js module that can be installed with npm.

For the prerequisites, since it is recommended to use a version manager or to customize the npm install location, please read the Install page for more details.

To install the latest stable version available, use:

npm uninstall --global xpm
npm install --global xpm@latest

To install this specific version, use:

xpm install --global xpm@0.9.0

Changes

The 0.9.0 release is generally compatible with previous releases.

The main change over the previous release is support for multiple configurations, usually build configurations, which are intended to support development for applications using multiple build folders (like debug/release, but also multi-platform builds).

Bug fixes

  • none

Enhancements

The main enhancement is the addition of xpack.configurations in package.json, and --config for most commands.

  • [#94] - add --config to xpm link
  • [#95] - add --config to xpm uninstall
  • [#96] - update xpm list to show configurations dependencies
  • [#90] - iterate all configurations on xpm install
  • [#88] - add support for configurations & actions

Another important enhancement is the addition of properties and of a template engine to process substitutions in actions/scripts.

  • [#91] - fix use of properties in substitutions
  • [#92] - Add os.platform and os.arch to substitution map
  • [#91] - add template properties; if --config is used, the configuration properties take precedence over package properties.

Other enhancements:

  • [#35] - to better accomodate future enhancements, and spot cases when an old xpm is used to process a package.json which includes new content, the xpack.checkMinimumXpmRequired property was added
  • [#93] - processing for --dry-run was implemented for xpm install
  • [#89] - prefer run & run-action

Other changes

  • the xpm install command now sets all installed packages as read-only
  • the validation code returns CliExitCodes.ERROR.INPUT for errors related to the content of package.json

Known problems

  • the warnings triggered by third party dependencies during install; fixed in v0.10.2
  • [#57] when multiple versions of the same package are referenced via different dependencies paths, the program fails; version mitigation will be implemented in a future release.

Documentation

The program interprets --help and displays a top help page:

$ xpm --help

The xPack package manager command line tool
Usage: xpm <command> [<subcommand>...] [<options> ...] [<args>...]

where <command> is one of:
  init, install, link, list, run, uninstall

Common options:
  --loglevel <level>     Set log level (silent|warn|info|verbose|debug|trace)
  -s|--silent            Disable all messages (--loglevel silent)
  -q|--quiet             Mostly quiet, warnings and errors (--loglevel warn)
  --informative          Informative (--loglevel info)
  -v|--verbose           Verbose (--loglevel verbose)
  -d|--debug             Debug messages (--loglevel debug)
  -dd|--trace            Trace messages (--loglevel trace, -d -d)
  --no-update-notifier   Skip check for a more recent version
  -C <folder>            Set current folder

xpm -h|--help            Quick help
xpm <command> -h|--help  Quick help on command
xpm --version            Show version
xpm -i|--interactive     Enter interactive mode

npm xpm@0.9.0 '/Users/ilg/.nvm/versions/node/v14.16.0/lib/node_modules/xpm'
Home page: <https://xpack.github.io/xpm/>
Bug reports: <https://github.com/xpack/xpm-js/issues/>

Similar pages are available for each command.

For more detials, the project documentation is available online from the web site.

Supported platforms

npm is a portable application that can run on Windows, macOS and GNU/Linux (Intel and Arm).

CI tests

Continuous integration tests are done via GitHub actions.

Download analytics

  • npmjs.com xpm
    • last week npm
    • all time npm

Credit to Shields IO for the badges.