xPack xpm v0.9.0 released
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
In the current configuration, npm complains about several deprecated packages; until these third party packages will be updated, in v0.10.2 an workaround was added, by bundling the dependencies.
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
toxpm link
- [#95] add
--config
toxpm 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
andos.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 accommodate future enhancements, and spot cases
when an old xpm is used to process a
package.json
which includes new content, thexpack.checkMinimumXpmRequired
property was added - [#93] processing for
--dry-run
was implemented forxpm 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 details, 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
Credit to Shields IO for the badges.
The xpm tool is currently work in progress and should be used with caution.