Skip to content

v7.0.0-beta9

Pre-release
Pre-release
Compare
Choose a tag to compare
@cb1kenobi cb1kenobi released this 07 Feb 09:02
· 16 commits to 7_0_X since this release
npm i -g titanium@next

Titanium CLI v7 is a almost an entire rewrite. Old dead code has been removed, deprecated dependencies have been replaced, code completely refactored to ECMAScript modules and latest JavaScript features, and performance has been improved. This release has been tested to work on the latest Node.js releases and unlocks the Titanium SDK to begin dropping dead code, adopt ESM, and update dependencies.

BREAKING CHANGES:

  • Require Node.js 18 or newer
  • Refactored entire codebase using ESM
  • Removed login, logout, plugin, and status commands
  • ti config
    • Replaced --output json with --output json-object output
  • ti info
    • Removed haxm info
    • Removed genymotion and VirtualBox info
    • Removed macOS info including Xcode CLI Tools
    • Removed jarsigner from JDK detection; no longer used thanks to Gradle
    • Removed nodeAppcVer from Titanium CLI and Titanium SDKs in info
  • ti module
    • Removed global iphone modules as it was just a copy of ios modules
    • Modules with platform other than android, commonjs, ios, and
      iphone will be ignored
    • Modules with invalid semantic version will be ignored
  • ti sdk
    • Removed activeSDK from JSON result
  • ti setup
    • Removed Windows Store publishing info
    • Removed haxm info
    • Removed sdk setup
    • Removed user locale setup
    • Removed Xcode CLI tools detection
    • Removed Titanium CLI Dependencies section from check
    • Removed Java-based connection test from check
  • Trace and debug log messages written to stderr instead of stdout

New Features

  • --sdk <ver> is now a global option
    • Defaults to latest installed SDK version
    • If executing the create command without any options, it will prompt for
      the SDK version to use
  • -d, --project-dir is now a global option
    • Used to be build, clean, and project commands only, but needed so
      the CLI can read the tiapp.xml and determine the <sdk-version>;
      defaults to the current working directory
    • Since this conflicts with the create command's -d, --workspace-dir
      option, special handling treats these two options the same
  • Added a new --debug global flag to output CLI debug logging
  • Added --json flag to ti config, ti info, ti sdk, ti sdk list
  • Logger changes:
    • Replaced "winston" based logger with lighter weight logger
    • Added total run time trace message at end
    • --timestamp option enabled only when command has --log-level option
  • Performance improvements:
    • Lazy load modules as much as possible, within reason
    • Removed tons of old dead code
    • Use smaller alternative dependencies

Improvements

  • Removed all analytics/telemetry code
  • Removed i18n logic; all output rendered in English
  • Removed incomplete tab completion code
  • Removed "default" SDK; <sdk-version> in tiapp.xml is source of truth,
    override with --sdk <ver> arg
  • Replaced custom CLI arg parser (based on optimist) with Commander.js
    • Order of arguments matter; command options must come after command
  • ti sdk install --default flag has no effect
  • ti sdk select command has no effect
  • Updated dependencies, replaced deprecated dependencies
    • Replaced colors with chalk
    • Replaced fields with prompts
    • Replaced humanize with pretty-bytes
    • Replaced request with undici

Full Changelog: v6.1.1...v7.0.0-beta9