VIP (Internal) CLI
Internal CLI Tools for VIP Go Sandboxes and the internal API.
Usage
Show available commands:
vipgo --help
You can append --help
to any sub-command to see options and sub-sub-commands.
Install
Make sure you have an open connection to the Automattic proxy and are able to
tunnel local traffic to port 8080.
npm i -g @automattic/vip-go-internal-cli
vipgo config PROXY=socks://127.0.0.1:8080
vipgo login
Development
To start hacking:
- Clone this repository.
cd
to the cloned directory.- Run
npm install
to install dependencies. - Hack the code.
- Build your changes using
npm run build
. - Test your changes by calling
node build/bin/vipgo.js
.
Connecting to local VIP Go API
Note: changing this setting will also affect the installed npm package, and not only your cloned repository. Remember to clear this setting when you are done testing!
Testing in production is not good, so if you need to test against a locally running copy of GOOP, you can prepend a specific env variable to all commands as follows:
VIP_API_URL=http://localhost:2999 ./build/bin/vipgo.js sandbox list
To avoid typing every time, save the variable in your config file:
./build/bin/vipgo.js config VIP_API_URL=http://localhost:2999
Then re-login with a user id and token valid for your local GOOP installation. By default, the local GOOP development environment will accept user id 1 with an empty API token.
Note 1: Your development version will use the same config as the globally installed module and any changes to the config will impact that.
Note 2: You can use npm link
to link your development copy with your globally installed version to simplify development.
Publishing a New Release
Major / Minor Versions
npm run publish-please --dry-run
to ensure there are no publishing blockers- Set the version:
npm version patch
for small bugfixesnpm version minor
if there are some new features/fixes
git push --tags
npm run publish-please
- Edit the release in Github to include a description of the changes
- Manually bump the version in
package.json
to the next minor and append -dev
git push
- Post on the VIP Go P2 with details about the new release
Note: doing the last two steps can help with debugging in case someone is running the dev version (via vipgo -V
).
Patch Version
For a critical fix (or a small number of fixes), we can git checkout
the last release and add/or cherry-pick some changes.
Then bump the version number with npm version patch
and npm publish
. This is especially nice if there are already some bigger changes in the master branch and you don’t want to push a normal release.
Caveats
- We don’t publish the
src
directory because it's not used and just makes builds larger (skipped via .npmignore
). - Microsoft Windows users will require Windows 10 or later with a Linux Subsystem installed.