v7.0.0-beta9
Pre-release
Pre-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
, andstatus
commands ti config
- Replaced
--output json
with--output json-object
output
- Replaced
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
- Removed
ti module
- Removed global
iphone
modules as it was just a copy ofios
modules - Modules with
platform
other thanandroid
,commonjs
,ios
, and
iphone
will be ignored - Modules with invalid semantic version will be ignored
- Removed global
ti sdk
- Removed
activeSDK
from JSON result
- Removed
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 ofstdout
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
, andproject
commands only, but needed so
the CLI can read thetiapp.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
- Used to be
- Added a new
--debug
global flag to output CLI debug logging - Added
--json
flag toti 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 effectti sdk select
command has no effect- Updated dependencies, replaced deprecated dependencies
- Replaced
colors
withchalk
- Replaced
fields
withprompts
- Replaced
humanize
withpretty-bytes
- Replaced
request
withundici
- Replaced
Full Changelog: v6.1.1...v7.0.0-beta9