qooxdoo / qooxdoo-compiler

Compiler for Qooxdoo, 100% javascript
MIT License
36 stars 23 forks source link

Meta Bug: Make qx contrib commands production ready #76

Closed johnspackman closed 5 years ago

johnspackman commented 6 years ago

From @cboulanger on August 20, 2017 20:24

Command reference:

  install [repository]  installs the latest compatible release of a contrib
                        library (as per Manifest.json). Use "-r <release tag>"
                        to install a particular release.
  list [repository]     if no repository name is given, lists all available
                        contribs that are compatible with the project's qooxdoo
                        version ("--all" lists incompatible ones as well).
                        Otherwise, list all compatible contrib libraries.
  remove [repository]   removes a contrib library from the configuration.
  update [repository]   updates information on contrib libraries from github.
                        Has to be called before the other commands.

Options:
  -a, --all      disable filters (for example, also show incompatible versions)
  -r, --release  use a specific release tag instead of the tag of the latest
                 compatible release
  -t, --token    adds a GitHub personal access token to calls to GitHub
  -v, --verbose  verbose logging
  -q, --quiet    no output

API The qx contrib commands update, list, install and remove are now based on a Javascript API and no longer just yargs scripts, so in principle -- this still hasn't been tested yet -- they can be called by other code, for example like this:

// setup 
await new qxcli.commands.contrib.Update({quiet:true, token:"..."}).process();
await new qxcli.commands.contrib.List({quiet:true}).process(); // this won't work yet since it cannot determine the qooxdoo path without more information
await new qxcli.commands.contrib.Install({repository:"johnspackman/UploadMgr"}).process();

similar to the command line (in the qooxdoo app folder):

qx contrib update --quiet # update the cache (without output)
qx contrib list --quiet # determine compatible releases (without output)
qx install johnspackman/UploadMgr --quiet # install the latest compatible release (without output)

Several contrib libraries in one repo: qx contrib install installs from a repository and looks for the library manifest in the root of this repository. If you have several libraries in one repository, provide a qooxdoo.json file in the root of the repository which has this syntax.

For now, this is the complete feature set. I won't have time to implement anything major in the next couple of weeks, but I can respond to bug reports, so please test the commands and let me know if something doesn't work for you, either here or on Gitter.

Blocked by

Copied from original issue: qooxdoo/qooxdoo-cli#8

hkollmann commented 5 years ago

done

cboulanger commented 5 years ago

Great!