From 5212b98c8779de37c99da420b9defaf8543bb641 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 09:48:06 -0600 Subject: [PATCH 01/14] wrap lines at 80 characters --- docs/development/releasing.md | 41 ++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index 9d379b918472..a7efda7395e2 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -5,19 +5,22 @@ This document describes the process for releasing a new version of Electron. ## Determine which branch to release from - **If releasing beta,** create a new branch from `master`. -- **If releasing a stable version,** create a new branch from the beta branch you're stabilizing. +- **If releasing a stable version,** create a new branch from the beta branch + you're stabilizing. ## Find out what version change is needed Run `npm run prepare-release -- --notesOnly` to view auto generated release -notes. The notes generated should help you determine if this is a major, minor, -patch, or beta version change. Read the -[Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) for more information. +notes. The notes generated should help you determine if this is a major, +minor, patch, or beta version change. Read the +[Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) +for more information. ## Run the prepare-release script The prepare release script will do the following: 1. Check if a release is already in process and if so it will halt. 2. Create a release branch. -3. Bump the version number in several files. See [this bump commit] for an example. +3. Bump the version number in several files. See [this bump commit] for an +example. 4. Create a draft release on GitHub with auto-generated release notes 5. Push the release branch so that the release builds get built. Once you have determined which type of version change is needed, run the @@ -61,13 +64,16 @@ To monitor the build progress, see the following pages: ## Compile release notes -Writing release notes is a good way to keep yourself busy while the builds are running. -For prior art, see existing releases on [the releases page]. +Writing release notes is a good way to keep yourself busy while the builds +are running. For prior art, see existing releases on [the releases page]. Tips: -- Each listed item should reference a PR on electron/electron, not an issue, nor a PR from another repo like libcc. -- No need to use link markup when referencing PRs. Strings like `#123` will automatically be converted to links on github.com. -- To see the version of Chromium, V8, and Node in every version of Electron, visit [atom.io/download/electron/index.json](https://atom.io/download/electron/index.json). +- Each listed item should reference a PR on electron/electron, not an issue, +nor a PR from another repo like libcc. +- No need to use link markup when referencing PRs. Strings like `#123` will +automatically be converted to links on github.com. +- To see the version of Chromium, V8, and Node in every version of Electron, +visit [atom.io/download/electron/index.json](https://atom.io/download/electron/index.json). ### Patch releases @@ -146,21 +152,26 @@ For a `minor` release, e.g. `1.8.0`, use this format: ``` ### Beta releases -Use the same formats as the ones suggested above, but add the following note at the beginning of the changelog: +Use the same formats as the ones suggested above, but add the following note at +the beginning of the changelog: ```sh -**Note:** This is a beta release and most likely will have have some instability and/or regressions. +**Note:** This is a beta release and most likely will have have some +instability and/or regressions. Please file new issues for any bugs you find in it. -This release is published to [npm](https://www.npmjs.com/package/electron) under the `beta` tag and can be installed via `npm install electron@beta`. +This release is published to [npm](https://www.npmjs.com/package/electron) +under the `beta` tag and can be installed via `npm install electron@beta`. ``` ## Edit the release draft -1. Visit [the releases page] and you'll see a new draft release with placeholder release notes. +1. Visit [the releases page] and you'll see a new draft release with placeholder +release notes. 1. Edit the release and add release notes. -1. Uncheck the `prerelease` checkbox if you're publishing a stable release; leave it checked for beta releases. +1. Uncheck the `prerelease` checkbox if you're publishing a stable release; +leave it checked for beta releases. 1. Click 'Save draft'. **Do not click 'Publish release'!** 1. Wait for all builds to pass before proceeding. 1. You can run `npm run release --validateRelease` to verify that all of the From e5f4916e316849a01db999df82b28a83b6a8c3e0 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 09:50:24 -0600 Subject: [PATCH 02/14] fix numbering of 'Edit the release draft' steps --- docs/development/releasing.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index a7efda7395e2..c48fc0dd5e23 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -169,12 +169,12 @@ under the `beta` tag and can be installed via `npm install electron@beta`. 1. Visit [the releases page] and you'll see a new draft release with placeholder release notes. -1. Edit the release and add release notes. -1. Uncheck the `prerelease` checkbox if you're publishing a stable release; +2. Edit the release and add release notes. +3. Uncheck the `prerelease` checkbox if you're publishing a stable release; leave it checked for beta releases. -1. Click 'Save draft'. **Do not click 'Publish release'!** -1. Wait for all builds to pass before proceeding. -1. You can run `npm run release --validateRelease` to verify that all of the +4. Click 'Save draft'. **Do not click 'Publish release'!** +5. Wait for all builds to pass before proceeding. +6. You can run `npm run release --validateRelease` to verify that all of the required files have been created for the release. ## Merge temporary branch From b2096205149f707f93d599e262664f83e16ea860 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 09:51:12 -0600 Subject: [PATCH 03/14] trim whitespace --- docs/development/releasing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index c48fc0dd5e23..db5b93180c72 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -10,7 +10,7 @@ This document describes the process for releasing a new version of Electron. ## Find out what version change is needed Run `npm run prepare-release -- --notesOnly` to view auto generated release -notes. The notes generated should help you determine if this is a major, +notes. The notes generated should help you determine if this is a major, minor, patch, or beta version change. Read the [Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) for more information. @@ -19,7 +19,7 @@ for more information. The prepare release script will do the following: 1. Check if a release is already in process and if so it will halt. 2. Create a release branch. -3. Bump the version number in several files. See [this bump commit] for an +3. Bump the version number in several files. See [this bump commit] for an example. 4. Create a draft release on GitHub with auto-generated release notes 5. Push the release branch so that the release builds get built. @@ -198,7 +198,7 @@ npm run merge-release -- 1-7-x ## Publish the release Once the merge has finished successfully, run the `release` script -via `npm run release` to finish the release process. This script will do the +via `npm run release` to finish the release process. This script will do the following: 1. Build the project to validate that the correct version number is being released. 2. Download the binaries and generate the node headers and the .lib linker used From 60fe728c0f193411f8daa280cb869cbaa78d0dd1 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 10:13:22 -0600 Subject: [PATCH 04/14] add section on environment variables --- docs/development/releasing.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index db5b93180c72..cc05d3965f04 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -15,6 +15,27 @@ minor, patch, or beta version change. Read the [Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) for more information. +## Set your tokens and environment variables +The Electron S3 Bucket in LastPass has environment variables needed for the +release process. If you don't have access to this, make a request similar to +these: +[1](https://github.com/github/security/issues/2660), +[2](https://github.com/github/security/issues/2951) + +There are a handful of `*_TOKEN` environment variables needed by the release +scripts. Once you've generated these per-user tokens, you may want to keep +them in a local file that you can `source` when starting a release. +* `ELECTRON_GITHUB_TOKEN`: +Create as described at https://github.com/settings/tokens/new, +giving the token repo access scope. +* `APPVEYOR_TOKEN`: +Create a token from https://windows-ci.electronjs.org/api-token +If you don't have an account, ask a team member to add you. +* `CIRCLE_TOKEN`: +Create a token from "Personal API Tokens" at https://circleci.com/account/api +* `JENKINS_AUTH_TOKEN` and `JENKINS_BUILD_TOKEN`: +Are provided by a Jenkins admin + ## Run the prepare-release script The prepare release script will do the following: 1. Check if a release is already in process and if so it will halt. From ffdd6ab8219346799bd8aead02443c45350f476c Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 10:26:35 -0600 Subject: [PATCH 05/14] add a troubleshooting note about branch checkout --- docs/development/releasing.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index cc05d3965f04..2a8217a74ce7 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -15,6 +15,11 @@ minor, patch, or beta version change. Read the [Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) for more information. +**NB:** If releasing from a branch, e.g. 1-8-x, check out the branch with +`git checkout 1-8-x` rather than `git checkout -b remotes/origin/1-8-x`. +The scrips need `git rev-parse --abbrev-ref HEAD` to return a short name, +e.g. no `remotes/origin/` + ## Set your tokens and environment variables The Electron S3 Bucket in LastPass has environment variables needed for the release process. If you don't have access to this, make a request similar to From 83e94f3de1bcdee53910d2523dc14574e3ef05bd Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 20:19:43 -0600 Subject: [PATCH 06/14] fix invocation of validateRelease pass --- docs/development/releasing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index 2a8217a74ce7..ef0c65269579 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -200,7 +200,7 @@ release notes. leave it checked for beta releases. 4. Click 'Save draft'. **Do not click 'Publish release'!** 5. Wait for all builds to pass before proceeding. -6. You can run `npm run release --validateRelease` to verify that all of the +6. You can run `npm run release -- --validateRelease` to verify that all of the required files have been created for the release. ## Merge temporary branch From 455a61d210496ef2a4e4665ffc1274a733b6a196 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 20:32:24 -0600 Subject: [PATCH 07/14] in the npm upload step, explain the needed npm credentials --- docs/development/releasing.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index ef0c65269579..b24241ecd362 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -238,8 +238,32 @@ the correct checksums as specified in the SHASUMS files. ## Publish to npm -Once the publish is successful, run `npm run publish-to-npm` to publish to -release to npm. +Before publishing to npm, you'll need to log into npm as Electron. Optionally, +you may find [npmrc](https://www.npmjs.com/package/npmrc) to be a useful way +to keep Electron's profile side-by-side with your own: +```sh +$ sudo npm install -g npmrc +$ npmrc -c electron +Removing old .npmrc (default) +Activating .npmrc "electron" +``` + +The Electron account's credentials are stored in LastPass under the entry +"Electron - NPM" for the URL "https://www.npmjs.com/login". +```sh +$ npm login +Username: electron +Password: +Email: (this IS public) electron@github.com +``` + +Publish the release to npm. +```sh +$ npm whoami +electron +$ npm run publish-to-npm +``` + [the releases page]: https://github.com/electron/electron/releases [this bump commit]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a From 3cd6c2e9ebdb7f811903506da19edef4e791bb2c Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 20:34:34 -0600 Subject: [PATCH 08/14] explain using the Electron S3 Bucket environment variables --- docs/development/releasing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index b24241ecd362..7df097580e31 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -25,7 +25,9 @@ The Electron S3 Bucket in LastPass has environment variables needed for the release process. If you don't have access to this, make a request similar to these: [1](https://github.com/github/security/issues/2660), -[2](https://github.com/github/security/issues/2951) +[2](https://github.com/github/security/issues/2951). +When you find the bucket, click on 'edit'. In the notes will be four +`ELECTRON_*` environment variables you need to export to your shell. There are a handful of `*_TOKEN` environment variables needed by the release scripts. Once you've generated these per-user tokens, you may want to keep From 7bcea57241b21f77a7a8ba816075d472a12e15a7 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 4 Dec 2017 21:09:12 -0600 Subject: [PATCH 09/14] fix tyop --- docs/development/releasing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index 7df097580e31..d8cda864507e 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -17,7 +17,7 @@ for more information. **NB:** If releasing from a branch, e.g. 1-8-x, check out the branch with `git checkout 1-8-x` rather than `git checkout -b remotes/origin/1-8-x`. -The scrips need `git rev-parse --abbrev-ref HEAD` to return a short name, +The scripts need `git rev-parse --abbrev-ref HEAD` to return a short name, e.g. no `remotes/origin/` ## Set your tokens and environment variables From b8259a82c1f59167b5dfcbc1d60ca2041d77d784 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 5 Dec 2017 08:38:16 -0600 Subject: [PATCH 10/14] note that 'npm run release -- --validateRelease' must be run in release branch --- docs/development/releasing.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index d8cda864507e..f2baa345bd16 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -202,8 +202,12 @@ release notes. leave it checked for beta releases. 4. Click 'Save draft'. **Do not click 'Publish release'!** 5. Wait for all builds to pass before proceeding. -6. You can run `npm run release -- --validateRelease` to verify that all of the -required files have been created for the release. +6. In the `release` branch, verify that the release's files have been created: +```sh +$ git rev-parse --abbrev-ref HEAD +release +$ npm run release -- --validateRelease +``` ## Merge temporary branch Once the release builds have finished, merge the `release` branch back into From f398b5d8438a071fa97c935b9fdfb14998402cc2 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 5 Dec 2017 08:51:37 -0600 Subject: [PATCH 11/14] add a tip for testing version number with 'bump-version.py --dry-run' --- docs/development/releasing.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index f2baa345bd16..2579710378f7 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -79,6 +79,13 @@ npm run prepare-release -- beta npm run prepare-release -- --stable ``` +Tip: You can test the new version number before running `prepare-release` with +a dry run of the `bump-version` script with the same major/minor/patch/beta +arguments, e.g.: +```sh +$ ./script/bump-version.py --bump minor --dry-run +``` + ## Wait for builds :hourglass_flowing_sand: The presence of the word [`Bump`](https://github.com/electron/electron/blob/7961a97d7ddbed657c6c867cc8426e02c236c077/script/cibuild-linux#L3-L6) in the commit message created by the `bump-version` script From f0d9b93ede36730e9b1e25c972da9325e998c672 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 5 Dec 2017 09:10:26 -0600 Subject: [PATCH 12/14] note that 'publish-to-npm' needs node 6 --- docs/development/releasing.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index 2579710378f7..fce56ae45ece 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -277,6 +277,8 @@ electron $ npm run publish-to-npm ``` +Note: the `publish-to-npm` script may have trouble with Node 7 or higher. If +you have trouble, try running with an older version of Node, e.g. a 6.x LTS. [the releases page]: https://github.com/electron/electron/releases [this bump commit]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a From 3b2a4940335039d029f9f1a723dfc635026c4489 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 7 Mar 2018 16:32:36 +0900 Subject: [PATCH 13/14] Update to master. --- docs/development/releasing.md | 55 +++++++++++++++-------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index fce56ae45ece..04c844752573 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -4,16 +4,15 @@ This document describes the process for releasing a new version of Electron. ## Determine which branch to release from -- **If releasing beta,** create a new branch from `master`. -- **If releasing a stable version,** create a new branch from the beta branch +- **If releasing beta,** run the scripts below from `master`. +- **If releasing a stable version,** run the scripts below from the branch you're stabilizing. ## Find out what version change is needed Run `npm run prepare-release -- --notesOnly` to view auto generated release -notes. The notes generated should help you determine if this is a major, -minor, patch, or beta version change. Read the -[Version Change Rules](../tutorial/electron-versioning.md#version-change-rules) -for more information. +notes. The notes generated should help you determine if this is a major, minor, +patch, or beta version change. Read the +[Version Change Rules](../tutorial/electron-versioning.md#semver) for more information. **NB:** If releasing from a branch, e.g. 1-8-x, check out the branch with `git checkout 1-8-x` rather than `git checkout -b remotes/origin/1-8-x`. @@ -21,13 +20,9 @@ The scripts need `git rev-parse --abbrev-ref HEAD` to return a short name, e.g. no `remotes/origin/` ## Set your tokens and environment variables -The Electron S3 Bucket in LastPass has environment variables needed for the -release process. If you don't have access to this, make a request similar to -these: -[1](https://github.com/github/security/issues/2660), -[2](https://github.com/github/security/issues/2951). -When you find the bucket, click on 'edit'. In the notes will be four -`ELECTRON_*` environment variables you need to export to your shell. +You'll need Electron S3 credentials in order to create and +upload an Electron release. Contact a team member for more +information. There are a handful of `*_TOKEN` environment variables needed by the release scripts. Once you've generated these per-user tokens, you may want to keep @@ -47,10 +42,11 @@ Are provided by a Jenkins admin The prepare release script will do the following: 1. Check if a release is already in process and if so it will halt. 2. Create a release branch. -3. Bump the version number in several files. See [this bump commit] for an -example. -4. Create a draft release on GitHub with auto-generated release notes -5. Push the release branch so that the release builds get built. +3. Bump the version number in several files. See [this bump commit] for an example. +4. Create a draft release on GitHub with auto-generated release notes. +5. Push the release branch. +6. Call the APIs to run the release builds. + Once you have determined which type of version change is needed, run the `prepare-release` script with arguments according to your need: - `[major|minor|patch|beta]` to increment one of the version numbers, or @@ -87,28 +83,23 @@ $ ./script/bump-version.py --bump minor --dry-run ``` ## Wait for builds :hourglass_flowing_sand: - -The presence of the word [`Bump`](https://github.com/electron/electron/blob/7961a97d7ddbed657c6c867cc8426e02c236c077/script/cibuild-linux#L3-L6) in the commit message created by the `bump-version` script -will [trigger the release process](https://github.com/electron/electron/blob/7961a97d7ddbed657c6c867cc8426e02c236c077/script/cibuild#L82-L96). - +The `prepare-release` script will trigger the builds via API calls. To monitor the build progress, see the following pages: -- [208.52.191.140:8080/view/All/builds](http://208.52.191.140:8080/view/All/builds) for Mac -- [circleci.com/gh/electron](https://circleci.com/gh/electron) for Linux +- [mac-ci.electronjs.org/blue/organizations/jenkins/electron-mas-x64-release/activity](https://mac-ci.electronjs.org/blue/organizations/jenkins/electron-mas-x64-release/activity) for Mac App Store +- [mac-ci.electronjs.org/blue/organizations/jenkins/electron-osx-x64-release/activity](https://mac-ci.electronjs.org/blue/organizations/jenkins/electron-osx-x64-release/activity) for OS X +- [circleci.com/gh/electron/electron](https://circleci.com/gh/electron) for Linux - [windows-ci.electronjs.org/project/AppVeyor/electron](https://windows-ci.electronjs.org/project/AppVeyor/electron) for Windows ## Compile release notes -Writing release notes is a good way to keep yourself busy while the builds -are running. For prior art, see existing releases on [the releases page]. +Writing release notes is a good way to keep yourself busy while the builds are running. +For prior art, see existing releases on [the releases page]. Tips: -- Each listed item should reference a PR on electron/electron, not an issue, -nor a PR from another repo like libcc. -- No need to use link markup when referencing PRs. Strings like `#123` will -automatically be converted to links on github.com. -- To see the version of Chromium, V8, and Node in every version of Electron, -visit [atom.io/download/electron/index.json](https://atom.io/download/electron/index.json). +- Each listed item should reference a PR on electron/electron, not an issue, nor a PR from another repo like libcc. +- No need to use link markup when referencing PRs. Strings like `#123` will automatically be converted to links on github.com. +- To see the version of Chromium, V8, and Node in every version of Electron, visit [atom.io/download/electron/index.json](https://atom.io/download/electron/index.json). ### Patch releases @@ -282,7 +273,7 @@ you have trouble, try running with an older version of Node, e.g. a 6.x LTS. [the releases page]: https://github.com/electron/electron/releases [this bump commit]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a -[electron-versioning]: /docs/tutorial/electron-versioning.md +[versioning]: /docs/tutorial/electron-versioning.md ## Fix missing binaries of a release manually From 03d119d5396cf5bb9607f6f9b144b45c66b56933 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 13 Apr 2018 16:10:53 -0500 Subject: [PATCH 14/14] Address @jkleinsc's 2018-03-21 comments --- docs/development/releasing.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/development/releasing.md b/docs/development/releasing.md index 04c844752573..37bafd47640f 100644 --- a/docs/development/releasing.md +++ b/docs/development/releasing.md @@ -207,7 +207,7 @@ release $ npm run release -- --validateRelease ``` -## Merge temporary branch +## Merge temporary branch (pre-2-0-x branches only) Once the release builds have finished, merge the `release` branch back into the source release branch using the `merge-release` script. If the branch cannot be successfully merged back this script will automatically @@ -252,7 +252,7 @@ Removing old .npmrc (default) Activating .npmrc "electron" ``` -The Electron account's credentials are stored in LastPass under the entry +The Electron account's credentials are kept by GitHub. "Electron - NPM" for the URL "https://www.npmjs.com/login". ```sh $ npm login @@ -268,8 +268,11 @@ electron $ npm run publish-to-npm ``` -Note: the `publish-to-npm` script may have trouble with Node 7 or higher. If -you have trouble, try running with an older version of Node, e.g. a 6.x LTS. +Note: In general you should be using the latest Node during this +process; however, older versions of the `publish-to-npm` script +may have trouble with Node 7 or higher. If you have trouble with +this in an older branch, try running with an older version of Node, +e.g. a 6.x LTS. [the releases page]: https://github.com/electron/electron/releases [this bump commit]: https://github.com/electron/electron/commit/78ec1b8f89b3886b856377a1756a51617bc33f5a