Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-20515] CLI: Support versions of dependencies should be tracked and checked in Core part of CLI, not the SDK part

GitHub Issuen/a
TypeImprovement
PriorityHigh
StatusClosed
ResolutionWon't Do
Resolution Date2016-03-16T05:57:34.000+0000
Affected Version/sRelease 5.2.0
Fix Version/sn/a
ComponentsCLI, Core
Labelslook1
ReporterFokke Zandbergen
AssigneeUnknown
Created2016-03-04T10:40:55.000+0000
Updated2018-08-06T17:38:16.000+0000

Description

We currently keep track of supported NodeJS, Android Build Tools and API levels in the SDK: * https://github.com/appcelerator/titanium_mobile/blob/master/package.json#L65 * https://github.com/appcelerator/titanium_mobile/blob/master/android/package.json#L17-L26 * https://github.com/appcelerator/titanium_mobile/blob/master/iphone/package.json#L21-L27 The validation also mostly take place in the SDK part of the CLI: * https://github.com/appcelerator/titanium_mobile/blob/master/node_modules/titanium-sdk/lib/android.js#L442 * https://github.com/appcelerator/titanium_mobile/blob/981b9f8f61e58e0c74789e6db48ae8feb007b16a/android/cli/commands/_build.js#L1219 Why don't we keep track and check these in the Core part of the CLI (for Titanium this would be the [Titanium CLI](https://github.com/appcelerator/titanium)? That way, as we test (older) SDKs again new dependency versions we can update this information as we push new versions of the Titanium (embedded in Core part of Unified) CLI. We can't update the SDKs with this knowledge.

Comments

  1. Chris Barber 2016-03-16

    This is a bad idea. We originally talked about doing things this way, but then we came to our senses. There are a bunch of reasons we're not going to do this. I only care to mention two of the most important reason to not put the dependency support matrix in the Titanium CLI: 1. Common sense. The build command is in the SDK. The build options and flags are in the SDK. The validation is in the SDK. The supported/required dependencies will remain in the SDK. 2. Part of the beauty of how we package SDK releases is the dependencies are locked down and the release is tested and certified. If you change the supported dependencies, we can no longer certify a release. You are inevitably increasing the surface area. The new Titanium build is a very radical departure from what we have today. This "feature" will be pointless in the new design.
  2. Fokke Zandbergen 2016-03-16

    I have high expectations of the new Titanium build so maybe I should have phrased this as a user story to be considered for that architecture more than a technical request for the current: {quote}As a user, I don't want to be threatened or even forced to use (and thus constantly switch between) specific NodeJS, Android SDK, Xcode or JDK versions for each of the wide range of Titanium SDK versions that apps I maintain are - for various reasons - locked in to *unless* it actually requires it.{quote} As a developer, my ideal would be for the CLI to be (to a certain extend) be backwards compatible with older dependencies and Titanium APIs (the SDK without the CLI part of it).
  3. Chris Barber 2016-03-16

    Yes. I have a plan. If it works, you'll have what you want. Just need to think differently. :)
  4. Eric Merriman 2018-08-06

    Closing as "won't do". If this is in error, please reopen.

JSON Source