electron/script
Charles Kerr 1672c95de3 better release notes (#15169)
* fix: use PR 'Notes' comment in release notes

* fix: follow links in roller-bot PRs

* refactor: better reference point version selection

* if we're a stable release, use the current brnach's previous stable
* if we're a beta release, use the current branch's previous beta
* if no match found, use the newest stable that precedes this branch

* refactor: dedup the caching functions' code

* refactor: partially rewrite release note generator

* parse release notes comments from PRs
* do not display no-notes PRs
* handle roller-bot commits by following cross-repo commits/PRs
* minor tweaks to note rendering, e.g. capitalization

* fix: fix lint:js script typo

* fix: copy originalPr value to rollerbot PR chains

* fix: handle more cases in release notes generator

* handle force-pushes where no PR
* better type guessing on pre-semantic commits

* fix: handle more edge cases in the note generator

* better removal of commits that landed before the reference point
* ensure '<!-- One-line Change Summary Here-->' is removed from notes
* handle more legacy commit body notes e.g. "Chore(docs)"
* check for fix markdown in PR body e.g. a link to the issue page

* chore: tweak code comments

* refactor: easier note generator command-line args

* refactor: group related notes together

* feat: query commits locally for gyp and gn deps

* chore: slightly better filtering of old commits

* feat: omit submodule commits for .0.0 releases

More specifically, only include them if generating release
notes relative to another release on the same branch.

Before that first release, there's just too much churn.

* refactor: make release-notes usable as a module

Calling it from the command line and from require()() now
do pretty much the same thing.

* refactor: passing command-line args means use HEAD

* chore: plug in the release note generator

* feat: support multiline 'Notes:' messages.

xref: https://github.com/electron/trop/pull/56
xref: https://github.com/electron/clerk/pull/16

* remove accidental change in package.json

* simplify an overcomplicated require() call

* Don't use PascalCase on releaseNotesGenerator()

* Remove code duplication in release notes warnings

* remove commented-out code.

* don't use single-character variable names.

For example, use 'tag' instead of 't'. The latter was being
used for map/filter arrow function args.

* Look for 'backport' rather than 'ackport'.

* Wrap all block statements in curly braces.

* fix tyop

* fix oops

* Check semver validity before calling semver.sort()
2018-11-06 16:06:11 -04:00
..
lib ci: run more Chromium unit tests (#15363) 2018-10-25 14:28:50 -04:00
release-notes better release notes (#15169) 2018-11-06 16:06:11 -04:00
apply_all_patches.py build: store the patches config in a json file (#15395) 2018-11-05 17:31:28 +01:00
bump-version.py chore: make FILEVERSION 4th component 0 on nightly builds (#15074) 2018-10-11 09:11:20 -04:00
check-relative-doc-links.py chore: fix relative links in docs and enforce we dont break them again (#14832) 2018-09-28 13:16:38 +10:00
ci-release-build.js chore: make macOS release builds higher priority to skip the queue (#15276) 2018-10-19 23:56:40 +11:00
dbus_mock.py refactor: use one script to launch all linters (#14622) 2018-09-17 16:09:02 -05:00
download-circleci-artifacts.js ci: Trigger an arm test on VSTS after CircleCI build (#14898) 2018-10-04 12:01:16 -04:00
dump-symbols.py ci: Fix timeout when generating breakpad symbols (#15126) 2018-10-13 13:02:52 +11:00
find-release.js refactor: add prefer-const to .eslintrc + fix errors (#14880) 2018-10-02 11:56:31 +10:00
get-last-major-for-master.js refactor: add prefer-const to .eslintrc + fix errors (#14880) 2018-10-02 11:56:31 +10:00
get-patch build: move libcc patches to electron repo (#14104) 2018-09-13 22:02:16 -07:00
get-version.py Add testing for arm, arm64 and ia32 linux builds 2017-12-20 11:54:52 -05:00
git-export-patches chore: fix missing \n at end of exported patches (#15579) 2018-11-05 13:50:35 -08:00
git-import-patches chore: deprecate apply-patches in favour of git-{import,export}-patches (#15300) 2018-10-24 11:24:11 -07:00
lint.js chore: set env when invoking gn (#15354) 2018-10-24 11:25:13 -07:00
merge-electron-checksums.py Do not put the upload logic in make_zip 2016-08-01 21:16:16 +09:00
native-tests.py ci: run more Chromium unit tests (#15363) 2018-10-25 14:28:50 -04:00
prepare-release.js better release notes (#15169) 2018-11-06 16:06:11 -04:00
publish-to-npm.js chore: publish to the latest tag correctly when releasing old versions (#15274) 2018-11-01 12:27:35 +11:00
pump.py chore: fix python lint warnings (#14638) 2018-09-16 12:24:07 -05:00
README.md build: move libcc patches to electron repo (#14104) 2018-09-13 22:02:16 -07:00
release-artifact-cleanup.js fix: make release-artifact-cleanup executable (#15225) 2018-10-18 20:20:43 -07:00
release.js refactor: add prefer-const to .eslintrc + fix errors (#14880) 2018-10-02 11:56:31 +10:00
run-clang-format.py chore: add --fix option to lint:cpp (#14977) 2018-10-15 22:59:45 -07:00
spec-runner.js chore: some async await stuff for the spec runner (#14897) 2018-10-02 11:53:34 +10:00
start.js refactor: replace var with const / let (#14866) 2018-09-29 09:17:00 +10:00
strip-binaries.py ci: strip linux binaries for release builds (#14991) 2018-10-09 16:19:05 -04:00
sysroots.json update,,, sysroots? again???? 2018-10-09 14:38:00 -07:00
test.py chore: stop using electron.gyp for branding and version (#14559) 2018-09-27 14:53:08 -04:00
tls.py chore: fix relative links in docs and enforce we dont break them again (#14832) 2018-09-28 13:16:38 +10:00
update-external-binaries.py build: make external binaries download action more flexible (#14982) 2018-10-06 00:21:46 +02:00
upload-index-json.py chore: fix out_dir usage in upload-index-json.py 2018-09-28 11:16:38 +10:00
upload-node-checksums.py chore: fix out_dir usage in upload-node-checksums.py 2018-09-28 11:16:38 +10:00
upload-node-headers.py chore: fix out_dir usage in upload-symbols.py 2018-09-28 11:24:50 +10:00
upload-symbols.py fix: Convert to lower case in upload symbols script (#15258) 2018-10-19 11:18:35 +11:00
upload-to-github.js chore: add extra logging to the upload script 2018-10-05 09:24:19 +10:00
upload.py ci: fix the upload distribution step on VSTS (#15015) 2018-10-08 15:19:40 -05:00
verify-ffmpeg.py fixme: dont use --enable-logging on the ffmpeg verify phase 2018-10-10 13:11:10 +11:00
zip-symbols.py ci: Fix timeout when generating breakpad symbols (#15126) 2018-10-13 13:02:52 +11:00

get-patch

Use it to save commits from upstream repositories as patch files.

Examples

  1. Write commit contents in the patch format to stdout.
$ ./script/get-patch --repo src --commit 8e8216e5
  1. Create a patch file with a default name if a specified directory.
$ ./script/get-patch --repo src --commit 8e8216e5 --output-dir patches
  1. Create a patch file with a custom name in the current directory.
$ ./script/get-patch --repo src --commit 8e8216e5 --filename my.patch
  1. Create a patch file with a custom name in a specified directory.
$ ./script/get-patch --repo src --commit 8e8216e5 --output-dir patches --filename my.patch
  1. Create patch files with default names in a specified directory.
$ ./script/get-patch --repo src --output-dir patches --commit 8e8216e5 164c37e3
  1. Create patch files with custom names in a specified directory. Note that number of filenames must match the number of commits.
$ ./script/get-patch --repo src --output-dir patches --commit 8e8216e5 164c37e3 --filename first.patch second.patch