Skip to content

Replace forum references in the CLI with Stack Overflow #3872

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

Closed
wants to merge 32 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
da37095
chore: Bump version to 4.3.0
rosen-vladimirov Jul 25, 2018
871f128
Merge pull request #3770 from NativeScript/vladimirov/bump-verstion-4…
rosen-vladimirov Aug 1, 2018
45a4834
Merge branch 'release' into vladimirov/merge-rel-master
rosen-vladimirov Aug 3, 2018
7299a62
chore: update to latest common lib
rosen-vladimirov Aug 3, 2018
242b03f
Merge pull request #3792 from NativeScript/vladimirov/merge-rel-master
rosen-vladimirov Aug 3, 2018
be31335
chore: merge branch 'release' into vladimirov/merge-rel-master
rosen-vladimirov Aug 4, 2018
141054c
chore: update to latest common lib
rosen-vladimirov Aug 4, 2018
1084a26
Merge pull request #3795 from NativeScript/vladimirov/merge-rel-master
rosen-vladimirov Aug 7, 2018
392ae26
feat: add create plugin command
lini Aug 7, 2018
a4f5b45
Merge branch 'release' into fatme/merge-rel-master
Fatme Aug 13, 2018
ddd74be
Merge pull request #3816 from NativeScript/fatme/merge-rel-master
Aug 13, 2018
9124658
Update feature request lavel
Aug 21, 2018
e4a4044
Merge pull request #3828 from NativeScript/radeva/update-guide
rosen-vladimirov Aug 22, 2018
9da66ac
Merge branch 'master' into lini/create-plugin-command
lini Aug 22, 2018
7a207c7
refactor: address review issues
lini Aug 22, 2018
d74399e
Merge pull request #3800 from NativeScript/lini/create-plugin-command
lini Aug 22, 2018
d9171d2
feat: add template option to plugin create command
lini Aug 23, 2018
40732a4
chor: fix linting issues
lini Aug 23, 2018
f391833
fix: reviewer comments
lini Aug 23, 2018
9dd6f20
Merge pull request #3836 from NativeScript/lini/plugin-create-with-te…
lini Aug 23, 2018
cb8a666
feat: use long living socket connection for sync
KristianDD Aug 23, 2018
ab9f6be
chore: merge branch 'release' into vladimirov/merge-rel-master
rosen-vladimirov Aug 28, 2018
be85c3f
chore: update to latest common lib
rosen-vladimirov Aug 28, 2018
bd9bc87
Merge pull request #3848 from NativeScript/vladimirov/merge-rel-master
rosen-vladimirov Aug 28, 2018
547a000
Merge pull request #3841 from NativeScript/kddmitrov/ls-android-long-…
KristianDD Aug 28, 2018
f25bccb
Add no-floating-promises options to tslint in order to ensure all pro…
Fatme Jul 20, 2018
049ccab
Merge pull request #3762 from NativeScript/fatme/no-floating-promises
Aug 30, 2018
fe6a785
fix: command with justlaunch option doesn't exit
KristianDD Aug 31, 2018
f0e150c
Merge pull request #3856 from NativeScript/kddimitrov/fix-justlaunch
KristianDD Aug 31, 2018
44e5adf
docs(appstore): fix a typo
sis0k0 Sep 1, 2018
f50d34c
Merge pull request #3859 from NativeScript/sis0k0/typo
sis0k0 Sep 5, 2018
f02ea3e
replacing forum references with stack overflow
rdlauer Sep 6, 2018
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ questions regarding the behavior/reproduction for more than 20 days "dead". All

## Please, provide the details below:

### Did you verify this is a real problem by searching the [NativeScript Forum](http://forum.nativescript.org) and the [other open issues in this repo](https://github.com/NativeScript/nativescript/issues)?
### Did you verify this is a real problem by searching [Stack Overflow](https://stackoverflow.com/questions/tagged/nativescript), the [NativeScript Forum](https://discourse.nativescript.org/), and the [other open issues in this repo](https://github.com/NativeScript/nativescript/issues)?

### Tell us about the problem
Please, ensure your title is less than 63 characters long and starts with a capital
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ If your issue appears to be a bug, and hasn't been reported, open a new issue. T

Request a Feature
===
You can request a new feature by submitting an issue with the *enhancement* label to our [GitHub Repository][2].
You can request a new feature by submitting an issue with the *feature* label to our [GitHub Repository][2].
If you want to implement a new feature yourself, consider submitting it to the [GitHub Repository][2] as a Pull Request.

[Back to Top][1]
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ To use the locally built CLI instead `tns` you can call `PATH_TO_CLI_FOLDER/bin/
Get Help
===

Please, use [github issues](https://github.com/NativeScript/nativescript-cli/issues) strictly for [reporting bugs](CONTRIBUTING.md#report-an-issue) or [requesting features](CONTRIBUTING.md#request-a-feature). For general NativeScript questions and support, check out the [NativeScript community forum](https://discourse.nativescript.org/) or ask our experts in [NativeScript community Slack channel](http://developer.telerik.com/wp-login.php?action=slack-invitation).
Please, use [github issues](https://github.com/NativeScript/nativescript-cli/issues) strictly for [reporting bugs](CONTRIBUTING.md#report-an-issue) or [requesting features](CONTRIBUTING.md#request-a-feature). For general NativeScript questions and support, check out [Stack Overflow](https://stackoverflow.com/questions/tagged/nativescript) or ask our experts in the [NativeScript community Slack channel](http://developer.telerik.com/wp-login.php?action=slack-invitation).

[Back to Top][1]

Expand Down
39 changes: 39 additions & 0 deletions docs/man_pages/lib-management/plugin-create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<% if (isJekyll) { %>---
title: tns plugin create
position: 1
---<% } %>
# tns plugin create

Usage | Synopsis
---|---
Create from the default plugin seed | `$ tns plugin create <Plugin Repository Name> [--path <Directory>]`
Create from a custom plugin seed | `$ tns plugin create <Plugin Repository Name> [--path <Directory>] --template <Template>`

Creates a new project for NativeScript plugin development. The project uses the [NativeScript Plugin Seed](https://github.com/NativeScript/nativescript-plugin-seed) as a base and contains the following directories:

* `src` - source code of the plugin
* `demo` - simple NativeScript application used to test and show plugin features
* `publish` - shell scripts used to build and pack the plugin source code and publish it in [NPM](https://www.npmjs.com/)

The project is setup for easy commit in Github, which is why the command will ask you for your Github username.
<% if(isHtml) { %>Before starting to code your first plugin, you can visit the NativeScript documentation page for [building plugins](https://docs.nativescript.org/plugins/building-plugins#step-2-set-up-a-development-workflow) or the [plugin seed repository](https://github.com/NativeScript/nativescript-plugin-seed/blob/master/README.md).<% } %>

### Options

* `--path` - Specifies the directory where you want to create the project, if different from the current directory.
* `--template` - Specifies the custom seed archive, which you want to use to create your plugin. If `--template` is not set, the NativeScript CLI creates the plugin from the default NativeScript Plugin Seed.
* `--username` - Specifies the Github username, which will be used to build the URLs in the plugin's package.json file.
* `--pluginName` - Used to set the default file and class names in the plugin source.

### Attributes

* `<Plugin Repository Name>` is the name of repository where your plugin will reside. A directory with the same name will be created. For example: `nativescript-awesome-list`. If a directory with the name already exists and is not empty, the plugin create command will fail.<% if(isHtml) { %>
* `<Template>` can be a URL or a local path to a `.tar.gz` file with the contents of a seed repository. This must be a clone of the [NativeScript Plugin Seed](https://github.com/NativeScript/nativescript-plugin-seed) and must contain a `src` directory with a package.json file and a script at `src/scripts/postclone.js`. After the archive is extracted, the postclone script will be executed with the username (`gitHubUsername`) and plugin name (`pluginName`) parameters given to the `tns plugin create` command prompts. For more information, visit the default plugin seed repository and [examine the source script](https://github.com/NativeScript/nativescript-plugin-seed/blob/master/src/scripts/postclone.js) there. Examples:

* Using a local file:

`tns plugin create nativescript-testplugin --template ../seeds/seed1.tar.gz`

* Using a `.tar.gz` file from a tag called `v4.0` in a Github repository:

`tns plugin create nativescript-testplugin --template https://github.com/NativeScript/nativescript-plugin-seed/archive/v.4.0.tar.gz`<% } %>
2 changes: 2 additions & 0 deletions docs/man_pages/lib-management/plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Lets you manage the plugins for your project.
* `find` - Finds NativeScript plugins in npm.
* `search` - Finds NativeScript plugins in npm.
* `build` - Builds the Android parts of a NativeScript plugin.
* `create` - Creates a project for building a new NativeScript plugin.

<% if(isHtml) { %>
### Related Commands
Expand All @@ -30,4 +31,5 @@ Command | Description
[plugin remove](plugin-remove.html) | Uninstalls the specified plugin and its dependencies.
[plugin update](plugin-update.html) | Updates the specified plugin(s) and its dependencies.
[plugin build](plugin-build.html) | Builds the Android project of a NativeScript plugin, and updates the `include.gradle`.
[plugin create](plugin-create.html) | Builds the Android project of a NativeScript plugin, and updates the `include.gradle`.
<% } %>
4 changes: 2 additions & 2 deletions docs/man_pages/publishing/appstore.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Lists all application records in iTunes Connect. The list contains name, version
`<Apple ID>` and `<Password>` are your credentials for logging in iTunes Connect. If you do not provide them when running the command, the NativeScript CLI will prompt you to provide them.

### Options
* `--team-id` - Specified the team id for which Xcode will try to find distribution certificate and provisioning profile when exporting for AppStore submission.
* `--team-id` - Specifies the team id for which Xcode will try to find distribution certificate and provisioning profile when exporting for AppStore submission.

### Command Limitations

Expand All @@ -33,4 +33,4 @@ Command | Description
[deploy](../project/testing/deploy.html) | Builds and deploys the project to a connected physical or virtual device.
[run](../project/testing/run.html) | Runs your project on a connected device or in the native emulator for the selected platform.
[run ios](../project/testing/run-ios.html) | Runs your project on a connected iOS device or in the iOS Simulator, if configured.
<% } %>
<% } %>
1 change: 1 addition & 0 deletions lib/bootstrap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ $injector.requireCommand("plugin|install", "./commands/plugin/add-plugin");
$injector.requireCommand("plugin|remove", "./commands/plugin/remove-plugin");
$injector.requireCommand("plugin|update", "./commands/plugin/update-plugin");
$injector.requireCommand("plugin|build", "./commands/plugin/build-plugin");
$injector.requireCommand("plugin|create", "./commands/plugin/create-plugin");

$injector.require("doctorService", "./services/doctor-service");
$injector.require("xcprojService", "./services/xcproj-service");
Expand Down
120 changes: 120 additions & 0 deletions lib/commands/plugin/create-plugin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import * as path from "path";
import { isInteractive } from "../../common/helpers";

export class CreatePluginCommand implements ICommand {
public allowedParameters: ICommandParameter[] = [];
public userMessage = "What is your GitHub username?\n(will be used to update the Github URLs in the plugin's package.json)";
public nameMessage = "What will be the name of your plugin?\n(use lowercase characters and dashes only)";
constructor(private $options: IOptions,
private $errors: IErrors,
private $terminalSpinnerService: ITerminalSpinnerService,
private $logger: ILogger,
private $pacoteService: IPacoteService,
private $fs: IFileSystem,
private $childProcess: IChildProcess,
private $prompter: IPrompter,
private $npm: INodePackageManager) { }

public async execute(args: string[]): Promise<void> {
const pluginRepoName = args[0];
const pathToProject = this.$options.path;
const selectedTemplate = this.$options.template;
const selectedPath = path.resolve(pathToProject || ".");
const projectDir = path.join(selectedPath, pluginRepoName);

await this.downloadPackage(selectedTemplate, projectDir);
await this.setupSeed(projectDir, pluginRepoName);

this.$logger.printMarkdown("Solution for `%s` was successfully created.", pluginRepoName);
}

public async canExecute(args: string[]): Promise<boolean> {
if (!args[0]) {
this.$errors.fail("You must specify the plugin repository name.");
}

return true;
}

private async setupSeed(projectDir: string, pluginRepoName: string): Promise<void> {
this.$logger.printMarkdown("Executing initial plugin configuration script...");

const config = this.$options;
const spinner = this.$terminalSpinnerService.createSpinner();
const cwd = path.join(projectDir, "src");
try {
spinner.start();
const npmOptions: any = { silent: true };
await this.$npm.install(cwd, cwd, npmOptions);
} finally {
spinner.stop();
}

const gitHubUsername = await this.getGitHubUsername(config.username);
const pluginNameSource = await this.getPluginNameSource(config.pluginName, pluginRepoName);

if (!isInteractive() && (!config.username || !config.pluginName)) {
this.$logger.printMarkdown("Using default values for Github user and/or plugin name since your shell is not interactive.");
}

// run postclone script manually and kill it if it takes more than 10 sec
const pathToPostCloneScript = path.join("scripts", "postclone");
const params = [pathToPostCloneScript, `gitHubUsername=${gitHubUsername}`, `pluginName=${pluginNameSource}`, "initGit=y"];
const outputScript = (await this.$childProcess.spawnFromEvent(process.execPath, params, "close", { cwd, timeout: 10000 }));
if (outputScript && outputScript.stdout) {
this.$logger.printMarkdown(outputScript.stdout);
}
}

private async downloadPackage(selectedTemplate: string, projectDir: string): Promise<void> {
this.$fs.createDirectory(projectDir);

if (this.$fs.exists(projectDir) && !this.$fs.isEmptyDir(projectDir)) {
this.$errors.fail("Path already exists and is not empty %s", projectDir);
}

if (selectedTemplate) {
this.$logger.printMarkdown("Make sure your custom template is compatible with the Plugin Seed at https://github.com/NativeScript/nativescript-plugin-seed/");
} else {
this.$logger.printMarkdown("Downloading the latest version of NativeScript Plugin Seed...");
}

const spinner = this.$terminalSpinnerService.createSpinner();
const packageToInstall = selectedTemplate || "https://github.com/NativeScript/nativescript-plugin-seed/archive/master.tar.gz";
try {
spinner.start();
await this.$pacoteService.extractPackage(packageToInstall, projectDir);
} catch (err) {
this.$fs.deleteDirectory(projectDir);
throw err;
} finally {
spinner.stop();
}
}

private async getGitHubUsername(gitHubUsername: string) {
if (!gitHubUsername) {
gitHubUsername = "NativeScriptDeveloper";
if (isInteractive()) {
gitHubUsername = await this.$prompter.getString(this.userMessage, { allowEmpty: false, defaultAction: () => { return gitHubUsername; } });
}
}

return gitHubUsername;
}

private async getPluginNameSource(pluginNameSource: string, pluginRepoName: string) {
if (!pluginNameSource) {
// remove nativescript- prefix for naming plugin files
const prefix = 'nativescript-';
pluginNameSource = pluginRepoName.toLowerCase().startsWith(prefix) ? pluginRepoName.slice(prefix.length, pluginRepoName.length) : pluginRepoName;
if (isInteractive()) {
pluginNameSource = await this.$prompter.getString(this.nameMessage, { allowEmpty: false, defaultAction: () => { return pluginNameSource; } });
}
}

return pluginNameSource;
}
}

$injector.registerCommand(["plugin|create"], CreatePluginCommand);
10 changes: 5 additions & 5 deletions lib/commands/post-install.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ export class PostInstallCliCommand extends PostInstallCommand {
}

public async postCommandAction(args: string[]): Promise<void> {
this.$logger.info("You have successfully installed NativeScript CLI.");
this.$logger.info("In order to create a new project, you can use:".green);
this.$logger.info("You have successfully installed the NativeScript CLI!");
this.$logger.info("To create a new project, you use:".green);
this.$logger.printMarkdown("`tns create <app name>`");
this.$logger.info("To build your project locally you can use:".green);
this.$logger.info("To build your project locally you use:".green);
this.$logger.printMarkdown("`tns build <platform>`");
this.$logger.printMarkdown("NOTE: Local builds require additional setup of your environment. You can find more information here: `https://docs.nativescript.org/start/quick-setup`");

Expand All @@ -34,10 +34,10 @@ export class PostInstallCliCommand extends PostInstallCommand {
this.$logger.printMarkdown("NOTE: Cloud builds require Telerik account. You can find more information here: `https://docs.nativescript.org/sidekick/intro/requirements`");

this.$logger.info("");
this.$logger.printMarkdown("In case you want to experiment quickly with NativeScript, you can try the Playground: `https://play.nativescript.org`");
this.$logger.printMarkdown("If you want to experiment with NativeScript in your browser, try the Playground: `https://play.nativescript.org`");

this.$logger.info("");
this.$logger.printMarkdown("In case you have any questions, you can check our forum: `https://forum.nativescript.org` and our public Slack channel: `https://nativescriptcommunity.slack.com/`");
this.$logger.printMarkdown("If you have any questions, check Stack Overflow: `https://stackoverflow.com/questions/tagged/nativescript` and our public Slack channel: `https://nativescriptcommunity.slack.com/`");
}
}

Expand Down
2 changes: 1 addition & 1 deletion lib/common
Submodule common updated 0 files
7 changes: 6 additions & 1 deletion lib/declarations.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,12 @@ interface IPort {
port: Number;
}

interface IOptions extends ICommonOptions, IBundleString, IPlatformTemplate, IHasEmulatorOption, IClean, IProvision, ITeamIdentifier, IAndroidReleaseOptions, INpmInstallConfigurationOptions, IPort, IEnvOptions {
interface IPluginSeedOptions {
username: string;
pluginName: string;
}

interface IOptions extends ICommonOptions, IBundleString, IPlatformTemplate, IHasEmulatorOption, IClean, IProvision, ITeamIdentifier, IAndroidReleaseOptions, INpmInstallConfigurationOptions, IPort, IEnvOptions, IPluginSeedOptions {
all: boolean;
client: boolean;
compileSdk: number;
Expand Down
10 changes: 10 additions & 0 deletions lib/definitions/livesync.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,11 @@ interface IAndroidNativeScriptDeviceLiveSyncService extends INativeScriptDeviceL
}

interface IAndroidLivesyncTool {
/**
* The protocol version the current app(adnroid runtime) is using.
*/
protocolVersion: string;

/**
* Creates new socket connection.
* @param configuration - The configuration to the socket connection.
Expand Down Expand Up @@ -457,6 +462,11 @@ interface IAndroidLivesyncTool {
* @param error - Optional error for rejecting pending sync operations
*/
end(error?: Error): void;

/**
* Returns true if a connection has been already established
*/
hasConnection(): boolean;
}

interface IAndroidLivesyncToolConfiguration {
Expand Down
2 changes: 1 addition & 1 deletion lib/helpers/livesync-command-helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ export class LiveSyncCommandHelper implements ILiveSyncCommandHelper {

await this.$platformService.deployPlatform(deployPlatformInfo);
await this.$platformService.startApplication(currentPlatform, runPlatformOptions, { appId: this.$projectData.projectId, projectName: this.$projectData.projectName });
this.$platformService.trackProjectType(this.$projectData);
await this.$platformService.trackProjectType(this.$projectData);
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions lib/nativescript-cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ installUncaughtExceptionListener(process.exit.bind(process, ErrorCodes.UNCAUGHT)

import { settlePromises } from "./common/helpers";

/* tslint:disable:no-floating-promises */
(async () => {
const config: Config.IConfig = $injector.resolve("$config");
const err: IErrors = $injector.resolve("$errors");
Expand Down Expand Up @@ -42,3 +43,4 @@ import { settlePromises } from "./common/helpers";

$injector.dispose();
})();
/* tslint:enable:no-floating-promises */
4 changes: 3 additions & 1 deletion lib/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ export class Options extends commonOptionsLibPath.OptionsBase {
inspector: { type: OptionType.Boolean },
clean: { type: OptionType.Boolean },
watch: { type: OptionType.Boolean, default: true },
background: { type: OptionType.String }
background: { type: OptionType.String },
username: { type: OptionType.String },
pluginName: { type: OptionType.String }
},
$errors, $staticConfig, $settingsService);

Expand Down
2 changes: 1 addition & 1 deletion lib/services/analytics/analytics-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export class AnalyticsService extends AnalyticsServiceBase {
}

public async trackAcceptFeatureUsage(settings: { acceptTrackFeatureUsage: boolean }): Promise<void> {
this.sendMessageToBroker(<IAcceptUsageReportingInformation>{
await this.sendMessageToBroker(<IAcceptUsageReportingInformation>{
type: TrackingTypes.AcceptTrackFeatureUsage,
acceptTrackFeatureUsage: settings.acceptTrackFeatureUsage
});
Expand Down
4 changes: 1 addition & 3 deletions lib/services/android-project-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
this.$androidToolsInfo.validateTargetSdk({ showWarningsAsErrors: true });
}

public async validatePlugins(): Promise<void> {
Promise.resolve();
}
public async validatePlugins(): Promise<void> { /* */ }

public async createProject(frameworkDir: string, frameworkVersion: string, projectData: IProjectData, config: ICreateProjectOptions): Promise<void> {
if (semver.lt(frameworkVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
Expand Down
5 changes: 1 addition & 4 deletions lib/services/ios-project-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,6 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
this.$errors.failWithoutHelp(`${pluginData.name} has Podfile and you don't have Cocoapods installed or it is not configured correctly. Please verify Cocoapods can work on your machine.`);
}
}
Promise.resolve();
}

private async buildForDevice(projectRoot: string, args: string[], buildConfig: IBuildConfig, projectData: IProjectData): Promise<void> {
Expand Down Expand Up @@ -1032,9 +1031,7 @@ We will now place an empty obsolete compatability white screen LauncScreen.xib f
}
}

public async prebuildNativePlugin(options: IBuildOptions): Promise<void> {
Promise.resolve();
}
public async prebuildNativePlugin(options: IBuildOptions): Promise<void> { /** */ }

public async checkIfPluginsNeedBuild(projectData: IProjectData): Promise<Array<any>> {
return [];
Expand Down
Loading