[TIMOB-20515] CLI: Support versions of dependencies should be tracked and checked in Core part of CLI, not the SDK part
GitHub Issue | n/a |
---|---|
Type | Improvement |
Priority | High |
Status | Closed |
Resolution | Won't Do |
Resolution Date | 2016-03-16T05:57:34.000+0000 |
Affected Version/s | Release 5.2.0 |
Fix Version/s | n/a |
Components | CLI, Core |
Labels | look1 |
Reporter | Fokke Zandbergen |
Assignee | Unknown |
Created | 2016-03-04T10:40:55.000+0000 |
Updated | 2018-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.
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.
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).
Yes. I have a plan. If it works, you'll have what you want. Just need to think differently. :)
Closing as "won't do". If this is in error, please reopen.