
The components repo and framework repository follow the same patch branch concept. We should be able to share a script for determining these merge branches. Additonally the logic has been improved compared to the old merge script because we no longer consult `git ls-remote` unless really needed. Currently, `git ls-remote` is always consulted, even though not necessarily needed. This can slow down the merge script and the caretaker process when a couple of PRs are merged (personally saw around ~4 seconds per merge). Additionally, the new logic is more strict and will ensure (in most cases) that no wrong patch/minor branch is determined. Previously, the script just used the lexicographically greatest patch branch. This _could_ be wrong when a new patch branch has been created too early, or by accident. PR Close #37217
124 lines
3.0 KiB
TypeScript
124 lines
3.0 KiB
TypeScript
import {MergeConfig} from './dev-infra/pr/merge/config';
|
|
import {determineMergeBranches} from './dev-infra/pr/merge/determine-merge-branches';
|
|
|
|
// The configuration for `ng-dev commit-message` commands.
|
|
const commitMessage = {
|
|
'maxLength': 120,
|
|
'minBodyLength': 100,
|
|
'types': [
|
|
'build',
|
|
'ci',
|
|
'docs',
|
|
'feat',
|
|
'fix',
|
|
'perf',
|
|
'refactor',
|
|
'release',
|
|
'style',
|
|
'test',
|
|
],
|
|
'scopes': [
|
|
'animations',
|
|
'bazel',
|
|
'benchpress',
|
|
'changelog',
|
|
'common',
|
|
'compiler',
|
|
'compiler-cli',
|
|
'core',
|
|
'dev-infra',
|
|
'docs-infra',
|
|
'elements',
|
|
'forms',
|
|
'http',
|
|
'language-service',
|
|
'localize',
|
|
'ngcc',
|
|
'packaging',
|
|
'platform-browser',
|
|
'platform-browser-dynamic',
|
|
'platform-server',
|
|
'platform-webworker',
|
|
'platform-webworker-dynamic',
|
|
'router',
|
|
'service-worker',
|
|
'upgrade',
|
|
've',
|
|
'zone.js',
|
|
]
|
|
};
|
|
|
|
// The configuration for `ng-dev format` commands.
|
|
const format = {
|
|
'clang-format': {
|
|
'matchers': [
|
|
'dev-infra/**/*.{js,ts}',
|
|
'packages/**/*.{js,ts}',
|
|
'!packages/zone.js',
|
|
'!packages/common/locales/**/*.{js,ts}',
|
|
'!packages/common/src/i18n/available_locales.ts',
|
|
'!packages/common/src/i18n/currencies.ts',
|
|
'!packages/common/src/i18n/locale_en.ts',
|
|
'modules/benchmarks/**/*.{js,ts}',
|
|
'modules/playground/**/*.{js,ts}',
|
|
'tools/**/*.{js,ts}',
|
|
'!tools/gulp-tasks/cldr/extract.js',
|
|
'!tools/public_api_guard/**/*.d.ts',
|
|
'!tools/ts-api-guardian/test/fixtures/**',
|
|
'*.{js,ts}',
|
|
'!**/node_modules/**',
|
|
'!**/dist/**',
|
|
'!**/built/**',
|
|
'!shims_for_IE.js',
|
|
]
|
|
},
|
|
'buildifier': true
|
|
};
|
|
|
|
/** Github metadata information for `ng-dev` commands. */
|
|
const github = {
|
|
owner: 'angular',
|
|
name: 'angular',
|
|
};
|
|
|
|
// Configuration for the `ng-dev pr merge` command. The command can be used
|
|
// for merging upstream pull requests into branches based on a PR target label.
|
|
const merge = () => {
|
|
const {patch} = determineMergeBranches(require('./package.json').version, '@angular/core');
|
|
const config: MergeConfig = {
|
|
githubApiMerge: false,
|
|
claSignedLabel: 'cla: yes',
|
|
mergeReadyLabel: /^PR action: merge(-assistance)?/,
|
|
commitMessageFixupLabel: 'commit message fixup',
|
|
labels: [
|
|
{
|
|
pattern: 'PR target: master-only',
|
|
branches: ['master'],
|
|
},
|
|
{
|
|
pattern: 'PR target: patch-only',
|
|
branches: [patch],
|
|
},
|
|
{
|
|
pattern: 'PR target: master & patch',
|
|
branches: ['master', patch],
|
|
},
|
|
],
|
|
requiredBaseCommits: {
|
|
// PRs that target either `master` or the patch branch, need to be rebased
|
|
// on top of the latest commit message validation fix.
|
|
'master': '4341743b4a6d7e23c6f944aa9e34166b701369a1',
|
|
[patch]: '2a53f471592f424538802907aca1f60f1177a86d'
|
|
},
|
|
};
|
|
return config;
|
|
};
|
|
|
|
// Export function to build ng-dev configuration object.
|
|
module.exports = {
|
|
commitMessage,
|
|
format,
|
|
github,
|
|
merge,
|
|
};
|