Skip to content

Latest commit

 

History

History
 
 

build-cli

@fluid-tools/build-cli

flub is a build and release tool for the Fluid Framework GitHub repositories. flub is intended to replace the existing fluid build-tools, primarily by reusing existing build-tools functionality and wrapping it in a more consistent, maintainable CLI using oclif.

Usage

$ npm install -g @fluid-tools/build-cli
$ flub COMMAND
running command...
$ flub (--version|-V)
@fluid-tools/build-cli/0.10.0
$ flub --help [COMMAND]
USAGE
  $ flub COMMAND
...

Command Topics

  • flub autocomplete - display autocomplete installation instructions
  • flub bump - Bump the version of packages, release groups, and their dependencies.
  • flub check - Check commands are used to verify repo state, apply policy, etc.
  • flub commands - list all the commands
  • flub generate - Generate commands are used to create/update code, docs, readmes, etc.
  • flub help - Display help for flub.
  • flub info - Get info about the repo, release groups, and packages.
  • flub merge - Sync branches depending on the batch size passed
  • flub release - Release commands are used to manage the Fluid release process.
  • flub run - Generate a report from input bundle stats collected through the collect bundleStats command.

Developer notes

This package outputs its build files to lib/ instead of dist/ like most of our other packages. The reason is that oclif uses the lib folder by convention, and there are oclif bugs that can be avoided by putting stuff in lib. See the PR here for an example: microsoft#12155

Testing

The release command provides a testMode flag, which subclasses are expected to check when handling states. If in test mode, all handled states should immediately return true. This enables tests to verify that new states are handled in some way. Other commands could adopt this, but only the release command uses it today.

The release command also provides a state flag that can be used to initialize the state machine to a specific state. This is intended for testing.

Trademark

This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services. Use of these trademarks or logos must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.