Skip to content

Merge release in master #1278

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 33 commits into from
Nov 30, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
66d0537
Prevent Future resolved more than once errors
rosen-vladimirov Nov 20, 2015
2c8ce46
Merge pull request #1226 from NativeScript/vladimirov/fix-future-reso…
rosen-vladimirov Nov 20, 2015
b026e2e
Add support for node 5.1.x
rosen-vladimirov Nov 22, 2015
97b0fd8
Merge pull request #1228 from NativeScript/vladimirov/support-node-5.1
rosen-vladimirov Nov 23, 2015
c7ad91d
Fix device log for API 23
rosen-vladimirov Nov 23, 2015
0278341
Merge pull request #1232 from NativeScript/vladimirov/fix-android-log…
rosen-vladimirov Nov 23, 2015
b168407
Changelog for 1.5.0 release
Nov 23, 2015
7e59ad6
Merge pull request #1233 from NativeScript/fatme/changelog-1.5.0
Nov 23, 2015
c4e6318
Fix typo
Nov 23, 2015
923ee04
Add reference to cocoapods.md from plugins.md
Nov 24, 2015
cea0f36
Fix cocoapods check and add unit tests for doctor service
rosen-vladimirov Nov 25, 2015
db97db7
Merge pull request #1248 from NativeScript/vladimirov/fix-cocoapods-c…
rosen-vladimirov Nov 26, 2015
c641be3
Fix livesync --emulator when the app is not installed on the iOS simu…
Nov 23, 2015
f9926b2
Fix livesync --emulator when the app is not installed on the iOS simu…
Nov 26, 2015
92d6d45
Merge pull request #1230 from NativeScript/fatme/fix-livesync-emulator
Nov 26, 2015
0ed8008
Fix "ANDROID_HOME environment variable is not set correctly" error
Nov 26, 2015
89d4a21
Merge pull request #1255 from NativeScript/fatme/fix-android-tools
Nov 26, 2015
27f05c1
Update to latest common lib
Nov 27, 2015
0bb0492
Merge pull request #1241 from NativeScript/fatme/add-reference-to-coc…
Nov 27, 2015
d013878
Merge pull request #1264 from NativeScript/fatme/update-to-latest-common
Nov 27, 2015
24f488a
Livesync operations are timestamped
teobugslayer Nov 27, 2015
a473b61
Merge pull request #1265 from NativeScript/totev/livesync-timestamps
teobugslayer Nov 27, 2015
2f5793d
Fix tns debug ios --emulator
Nov 26, 2015
e724aa8
Update common lib
Nov 27, 2015
20ad045
Merge pull request #1267 from NativeScript/fatme/update-common
Nov 27, 2015
575b9a0
Add missing dependency
teobugslayer Nov 27, 2015
939de28
Merge pull request #1270 from NativeScript/totev/missing-moment
teobugslayer Nov 27, 2015
c3af46f
Check XML files for well-formedness
teobugslayer Nov 27, 2015
afbbc92
Merge pull request #1271 from NativeScript/totev/xml-verify
teobugslayer Nov 27, 2015
70e89f6
Fix prepare command
rosen-vladimirov Nov 30, 2015
334682a
Merge pull request #1277 from NativeScript/vladimirov/fix-prepare
rosen-vladimirov Nov 30, 2015
237e25f
Merge pull request #1254 from NativeScript/fatme/fix-ios-debugger
Nov 30, 2015
9c464d9
Merge branch 'release' into vladimirov/merge-rel-master-2
rosen-vladimirov Nov 30, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,33 @@
NativeScript CLI Changelog
================

1.5.0 (2015, November 24)
==

### New
* [Implemented #493](https://github.com/NativeScript/nativescript-cli/issues/493): Enable transpilers support in NativeScript projects.
* [Implemented #594](https://github.com/NativeScript/nativescript-cli/issues/594): Implement a hard dependency on the node.js version and exit if not satisfied.
* [Implemented #684](https://github.com/NativeScript/nativescript-cli/issues/684): Enable commands hooks.
* [Implemented #955](https://github.com/NativeScript/nativescript-cli/issues/955): Support for Xcode7 simulator.
* [Implemented #1007](https://github.com/NativeScript/nativescript-cli/issues/1007): Smarter and faster LiveSync.
* [Implemented #1048](https://github.com/NativeScript/nativescript-cli/issues/1048): Support Gradle files from plugins, merge android resource files using aapt and respect AndroidManifest.xml from App_Resources.
* [Implemented #1113](https://github.com/NativeScript/nativescript-cli/issues/1113): Let users create and execute unit tests in their projects.
* [Implemented #1117](https://github.com/NativeScript/nativescript-cli/issues/1117): Support for TypeScript-based NativeScript projects.
* [Implemented #1130](https://github.com/NativeScript/nativescript-cli/issues/1130): Show application output from livesync command for iOS devices and android devices and emulators.
* [Implemented #1164](https://github.com/NativeScript/nativescript-cli/issues/1164): Use android tools from ANDROID_HOME.
* [Implemented #1229](https://github.com/NativeScript/nativescript-cli/issues/1229): Support for Node 5.1.0.

### Fixed
* [Fixed #727](https://github.com/NativeScript/nativescript-cli/issues/727): Double logging with tns run ios.
* [Fixed #1044](https://github.com/NativeScript/nativescript-cli/issues/1044): iOS debug break on Simulator causes app crash when the debugger is paused on the first line for a long time.
* [Fixed #1086](https://github.com/NativeScript/nativescript-cli/issues/1086): --key-store-path option to look for the keystore file path relative to the app root.
* [Fixed #1106](https://github.com/NativeScript/nativescript-cli/issues/1106): Livesync double restarts for TS projects.
* [Fixed #1110](https://github.com/NativeScript/nativescript-cli/issues/1110): `tns doctor` command should detect invalid java version.
* [Fixed #1167](https://github.com/NativeScript/nativescript-cli/issues/1167): `tns run`, `tns emulate` and `tns deploy` commands do not check if device is available before build.
* [Fixed #1177](https://github.com/NativeScript/nativescript-cli/issues/1177): `tns run` command fails when multiple devices with same platform are attached.
* [Fixed #1185](https://github.com/NativeScript/nativescript-cli/issues/1185): `tns device` command fails when VS Emulator is running.
* [Fixed #1204](https://github.com/NativeScript/nativescript-cli/issues/1204): Incorrect prepare when using npm 3.x.

1.4.3 (2015, October 21)
==

Expand Down
6 changes: 4 additions & 2 deletions PLUGINS.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,16 @@ my-plugin/
│ └── AndroidManifest.xml
└── ios/
└── Info.plist
└── Podfile
```

* `index.js`: This file is the CommonJS module which exposes the native API. You can use platform-specific `*.platform.js` files. For example: `index.ios.js` and `index.android.js`. During the plugin installation, the NativeScript CLI will copy the platform resources to the `tns_modules` subdirectory in the correct platform destination in the `platforms` directory of your project.<br/>Alternatively, you can give any name to this CommonJS module. In this case, however, you need to point to this file by setting the `main` key in the `package.json` for the plugin. For more information, see [Folders as Modules](https://nodejs.org/api/modules.html#modules_folders_as_modules).
* `index.js`: This file is the CommonJS module which exposes the native API. You can use platform-specific `*.platform.js` files. For example: `index.ios.js` and `index.android.js`. During the plugin installation, the NativeScript CLI will copy the platform resources to the `tns_modules` subdirectory in the correct platform destination in the `platforms` directory of your project.<br/>Alternatively, you can give any name to this CommonJS module. In this case, however, you need to point to this file by setting the `main` key in the `package.json` for the plugin. For more information, see [Folders as Modules](https://nodejs.org/api/modules.html#modules_folders_as_modules).
* `package.json`: This file contains the metadata for your plugin. It sets the supported runtimes, the plugin name and version and any dependencies. The `package.json` specification is described in detail below.
* `platforms\android\AndroidManifest.xml`: This file describes any specific configuration changes required for your plugin to work. For example: required permissions. For more information about the format of `AndroidManifest.xml`, see [App Manifest](http://developer.android.com/guide/topics/manifest/manifest-intro.html).<br/>During build, gradle will merge the plugin `AndroidManifest.xml` with the `AndroidManifest.xml` for your project. The NativeScript CLI will not resolve any contradicting or duplicate entries during the merge. After the plugin is installed, you need to manually resolve such issues.
* `platforms\android\include.gradle`: This file modifies the native Android configuration of your NativeScript project such as native dependencies, build types and configurations. For more information about the format of `include.gradle`, see [include.gradle file](#includegradle-specification).
* `platforms/android/res`: (Optional) This directory contains resources declared by the `AndroidManifest.xml` file. You can look at the folder structure [here](http://developer.android.com/guide/topics/resources/providing-resources.html#ResourceTypes).
* `platforms/ios/Info.plist`: This file describes any specific configuration changes required for your plugin to work. For example: required permissions. For more information about the format of `Info.plist`, see [About Information Property List Files](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html).<br/>During the plugin installation, the NativeScript CLI will merge the plugin `Info.plist` with the `Info.plist` for your project. The NativeScript CLI will not resolve any contradicting or duplicate entries during the merge. After the plugin is installed, you need to manually resolve such issues.
* `platforms/ios/Info.plist`: This file describes any specific configuration changes required for your plugin to work. For example: required permissions. For more information about the format of `Info.plist`, see [About Information Property List Files](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html).<br/>During the plugin installation, the NativeScript CLI will merge the plugin `Info.plist` with the `Info.plist` for your project. The NativeScript CLI will not resolve any contradicting or duplicate entries during the merge. After the plugin is installed, you need to manually resolve such issues.
* `platforms/ios/Podfile`: This file describes the dependency to the library that you want to use. For more information, see [CocoaPods.md](CocoaPods.md).

NativeScript plugins which contain both native Android and iOS libraries might have the following directory structure.

Expand Down
4 changes: 2 additions & 2 deletions lib/android-tools-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
if(this.validateAndroidHomeEnvVariable(this.androidHome).wait()) {
let androidPath = path.join(this.androidHome, "tools", this.androidExecutableName);
if(!this.trySetAndroidPath(androidPath).wait() && !this.trySetAndroidPath(this.androidExecutableName).wait()) {
this.$errors.failWithoutHelp(`Unable to find "${this.androidExecutableName}" executable file. Make sure you have set ANDROID_HOME environment variable correctly.`);
this.printMessage(`Unable to find "${this.androidExecutableName}" executable file. Make sure you have set ANDROID_HOME environment variable correctly.`);
}
} else {
this.$errors.failWithoutHelp("ANDROID_HOME environment variable is not set correctly.");
this.printMessage("ANDROID_HOME environment variable is not set correctly.");
}
}

Expand Down
9 changes: 7 additions & 2 deletions lib/commands/prepare.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@
"use strict";

export class PrepareCommand implements ICommand {
constructor(private $platformService: IPlatformService,
constructor(private $errors: IErrors,
private $platformService: IPlatformService,
private $platformCommandParameter: ICommandParameter) { }

execute(args: string[]): IFuture<void> {
return this.$platformService.preparePlatform(args[0]);
return (() => {
if (!this.$platformService.preparePlatform(args[0]).wait()) {
this.$errors.failWithoutHelp("Unable to prepare the project.");
}
}).future<void>()();
}

allowedParameters = [this.$platformCommandParameter];
Expand Down
2 changes: 1 addition & 1 deletion lib/definitions/platform.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ interface IPlatformService {
removePlatforms(platforms: string[]): IFuture<void>;
updatePlatforms(platforms: string[]): IFuture<void>;
runPlatform(platform: string, buildConfig?: IBuildConfig): IFuture<void>;
preparePlatform(platform: string): IFuture<void>;
preparePlatform(platform: string): IFuture<boolean>;
buildPlatform(platform: string, buildConfig?: IBuildConfig): IFuture<void>;
installOnDevice(platform: string, buildConfig?: IBuildConfig): IFuture<void>;
deployOnDevice(platform: string, buildConfig?: IBuildConfig): IFuture<void>;
Expand Down
17 changes: 8 additions & 9 deletions lib/providers/device-log-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@

export class DeviceLogProvider implements Mobile.IDeviceLogProvider {
//sample line is "I/Web Console( 4438): Received Event: deviceready at file:///storage/emulated/0/Icenium/com.telerik.TestApp/js/index.js:48"
private static LINE_REGEX = /.\/(.+?)\s*\(\s*(\d+?)\): (.*)/;
private static LINE_REGEX = /.\/(.+?)\s*\(\s*\d+?\): (.*)/;
// sample line is "11-23 12:39:07.310 1584 1597 I art : Background sticky concurrent mark sweep GC freed 21966(1780KB) AllocSpace objects, 4(80KB) LOS objects, 77% free, 840KB/3MB, paused 4.018ms total 158.629ms"
private static API_LEVEL_23_LINE_REGEX = /.+?\s+?(?:[A-Z]\s+?)([A-Za-z ]+?)\s+?\: (.*)/;

constructor(private $devicePlatformsConstants: Mobile.IDevicePlatformsConstants,
private $logger: ILogger) { }
Expand All @@ -25,15 +27,12 @@ export class DeviceLogProvider implements Mobile.IDeviceLogProvider {

private getConsoleLogFromLine(lineText: String): any {
let acceptedTags = ["chromium", "Web Console", "JS"];
let match = lineText.match(DeviceLogProvider.LINE_REGEX);
if (match) {
if(acceptedTags.indexOf(match[1]) !== -1) {
return {tag: match[1], message: match[3]};
}
} else if (_.any(acceptedTags, (tag: string) => { return lineText.indexOf(tag) !== -1; })) {
return {message: match[3]};
let match = lineText.match(DeviceLogProvider.LINE_REGEX) || lineText.match(DeviceLogProvider.API_LEVEL_23_LINE_REGEX);
if (match && acceptedTags.indexOf(match[1].trim()) !== -1) {
return {tag: match[1].trim(), message: match[2]};
}
return null;
let matchingTag = _.any(acceptedTags, (tag: string) => { return lineText.indexOf(tag) !== -1; });
return matchingTag ? { message: lineText } : null;
}
}
$injector.register("deviceLogProvider", DeviceLogProvider);
2 changes: 1 addition & 1 deletion lib/services/android-project-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject

// this call will fail in case `android` is not set correctly.
this.$androidToolsInfo.getPathToAndroidExecutable().wait();
this.$androidToolsInfo.validateJavacVersion(this.$sysInfo.getSysInfo().wait().javacVersion, {showWarningsAsErrors: true}).wait();
this.$androidToolsInfo.validateJavacVersion(this.$sysInfo.getSysInfo(path.join(__dirname, "..", "..", "package.json")).wait().javacVersion, {showWarningsAsErrors: true}).wait();
}).future<void>()();
}

Expand Down
3 changes: 2 additions & 1 deletion lib/services/doctor-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"use strict";
import {EOL} from "os";
import * as semver from "semver";
import * as path from "path";

class DoctorService implements IDoctorService {
private static MIN_SUPPORTED_POD_VERSION = "0.38.2";
Expand All @@ -13,7 +14,7 @@ class DoctorService implements IDoctorService {

public printWarnings(): boolean {
let result = false;
let sysInfo = this.$sysInfo.getSysInfo().wait();
let sysInfo = this.$sysInfo.getSysInfo(path.join(__dirname, "..", "..", "package.json")).wait();

if (!sysInfo.adbVer) {
this.$logger.warn("WARNING: adb from the Android SDK is not installed or is not configured properly.");
Expand Down
7 changes: 4 additions & 3 deletions lib/services/ios-debug-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,14 @@ class IOSDebugService implements IDebugService {
this.$platformService.buildPlatform(this.platform).wait();
let emulatorPackage = this.$platformService.getLatestApplicationPackageForEmulator(platformData).wait();

let child_process = this.$iOSEmulatorServices.startEmulator(emulatorPackage.packageName, { waitForDebugger: true, captureStdin: true, args: "--nativescript-debug-brk" }).wait();
let child_process = this.$iOSEmulatorServices.startEmulator(emulatorPackage.packageName, { waitForDebugger: true, captureStdin: true,
args: "--nativescript-debug-brk", appId: this.$projectData.projectId }).wait();
let lineStream = byline(child_process.stdout);

lineStream.on('data', (line: NodeBuffer) => {
let lineText = line.toString();
if(lineText && _.startsWith(lineText, emulatorPackage.packageName)) {
let pid = _.trimLeft(lineText, emulatorPackage.packageName + ": ");
if(lineText && _.startsWith(lineText, this.$projectData.projectId)) {
let pid = _.trimLeft(lineText, this.$projectData.projectId + ": ");

this.$childProcess.exec(`lldb -p ${pid} -o "process continue"`);
} else {
Expand Down
45 changes: 39 additions & 6 deletions lib/services/platform-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ export class PlatformService implements IPlatformService {
}).future<string[]>()();
}

public preparePlatform(platform: string): IFuture<void> {
public preparePlatform(platform: string): IFuture<boolean> {
return (() => {
this.validatePlatform(platform);

Expand All @@ -166,12 +166,36 @@ export class PlatformService implements IPlatformService {
this.$errors.failWithoutHelp(`Unable to install dependencies. Make sure your package.json is valid and all dependencies are correct. Error is: ${err.message}`);
}

this.preparePlatformCore(platform).wait();
}).future<void>()();
return this.preparePlatformCore(platform).wait();
}).future<boolean>()();
}

private checkXmlFiles(sourceFiles: string[]): IFuture<boolean> {
return (() => {
let xmlHasErrors = false;
let DomParser = require("xmldom").DOMParser;
sourceFiles
.filter(file => _.endsWith(file, ".xml"))
.forEach(file => {
let fileContents = this.$fs.readText(file).wait();
let hasErrors = false;
let domErrorHandler = (level:any, msg:string) => hasErrors = true;
let parser = new DomParser({
locator:{},
errorHandler: domErrorHandler
});
parser.parseFromString(fileContents, "text/xml");
xmlHasErrors = xmlHasErrors || hasErrors;
if (xmlHasErrors) {
this.$logger.out("Error: ".red.bold + file + " has syntax errors.".red.bold);
}
});
return !xmlHasErrors;
}).future<boolean>()();
}

@helpers.hook('prepare')
private preparePlatformCore(platform: string): IFuture<void> {
private preparePlatformCore(platform: string): IFuture<boolean> {
return (() => {
platform = platform.toLowerCase();
this.ensurePlatformInstalled(platform).wait();
Expand Down Expand Up @@ -206,6 +230,12 @@ export class PlatformService implements IPlatformService {
sourceFiles = sourceFiles.filter(source => !minimatch(source, `**/${constants.TNS_MODULES_FOLDER_NAME}/**`, {nocase: true}));
}

// verify .xml files are well-formed
let validXmlFiles = this.checkXmlFiles(sourceFiles).wait();
if (!validXmlFiles) {
return false;
}

// Remove .ts and .js.map files
PlatformService.EXCLUDE_FILES_PATTERN.forEach(pattern => sourceFiles = sourceFiles.filter(file => !minimatch(file, pattern, {nocase: true})));
let copyFileFutures = sourceFiles.map(source => {
Expand Down Expand Up @@ -245,13 +275,16 @@ export class PlatformService implements IPlatformService {
platformData.platformProjectService.processConfigurationFilesFromAppResources().wait();

this.$logger.out("Project successfully prepared");
}).future<void>()();
return true;
}).future<boolean>()();
}

public buildPlatform(platform: string, buildConfig?: IBuildConfig): IFuture<void> {
return (() => {
platform = platform.toLowerCase();
this.preparePlatform(platform).wait();
if (!this.preparePlatform(platform).wait()) {
this.$errors.failWithoutHelp("Verify that listed files are well-formed and try again the operation.");
}

let platformData = this.$platformsData.getPlatformData(platform);
platformData.platformProjectService.buildProject(platformData.projectRoot, buildConfig).wait();
Expand Down
19 changes: 16 additions & 3 deletions lib/services/test-execution-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ class TestExecutionService implements ITestExecutionService {
private $logger: ILogger,
private $fs: IFileSystem,
private $options: IOptions,
private $pluginsService: IPluginsService) {
private $pluginsService: IPluginsService,
private $errors: IErrors) {
}

public startTestRunner(platform: string) : IFuture<void> {
Expand All @@ -58,7 +59,9 @@ class TestExecutionService implements ITestExecutionService {
let socketIoJs = this.$httpClient.httpRequest(socketIoJsUrl).wait().body;
this.$fs.writeFile(path.join(projectDir, TestExecutionService.SOCKETIO_JS_FILE_NAME), socketIoJs).wait();

this.$platformService.preparePlatform(platform).wait();
if (!this.$platformService.preparePlatform(platform).wait()) {
this.$errors.failWithoutHelp("Verify that listed files are well-formed and try again the operation.");
}
this.detourEntryPoint(projectFilesPath).wait();

let watchGlob = path.join(projectDir, constants.APP_FOLDER_NAME);
Expand Down Expand Up @@ -88,13 +91,22 @@ class TestExecutionService implements ITestExecutionService {

let beforeBatchLiveSyncAction = (filePath: string): IFuture<string> => {
return (() => {
this.$platformService.preparePlatform(platform).wait();
if (!this.$platformService.preparePlatform(platform).wait()) {
this.$logger.out("Verify that listed files are well-formed and try again the operation.");
return;
}
return path.join(projectFilesPath, path.relative(path.join(this.$projectData.projectDir, constants.APP_FOLDER_NAME), filePath));
}).future<string>()();
};

let localProjectRootPath = platform.toLowerCase() === "ios" ? platformData.appDestinationDirectoryPath : null;

let getApplicationPathForiOSSimulatorAction = (): IFuture<string> => {
return (() => {
return this.$platformService.getLatestApplicationPackageForEmulator(platformData).wait().packageName;
}).future<string>()();
};

let liveSyncData = {
platform: platform,
appIdentifier: this.$projectData.projectId,
Expand All @@ -104,6 +116,7 @@ class TestExecutionService implements ITestExecutionService {
platformSpecificLiveSyncServices: platformSpecificLiveSyncServices,
notInstalledAppOnDeviceAction: notInstalledAppOnDeviceAction,
notRunningiOSSimulatorAction: notRunningiOSSimulatorAction,
getApplicationPathForiOSSimulatorAction: getApplicationPathForiOSSimulatorAction,
localProjectRootPath: localProjectRootPath,
beforeBatchLiveSyncAction: beforeBatchLiveSyncAction,
shouldRestartApplication: (localToDevicePaths: Mobile.ILocalToDevicePathData[]) => Future.fromResult(!this.$options.debugBrk),
Expand Down
Loading