From 7d85ed8a40bba6985554d6737d9c82244b6dfc5a Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Mon, 12 Dec 2022 15:12:03 +0530 Subject: [PATCH 01/10] [not verified] Allow supporting merge PRs with changelogger. --- projects/packages/changelogger/src/Utils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/packages/changelogger/src/Utils.php b/projects/packages/changelogger/src/Utils.php index 93beef35f34c..0c1a57fdb9d0 100644 --- a/projects/packages/changelogger/src/Utils.php +++ b/projects/packages/changelogger/src/Utils.php @@ -176,7 +176,7 @@ public static function getRepoData( $file, OutputInterface $output, DebugFormatt ); try { - $process = self::runCommand( array( 'git', 'log', '-1', "--format=%cI\n%s", $file ), $output, $formatter ); + $process = self::runCommand( array( 'git', 'log', '-1', '--first-parent', "--format=%cI\n%s", $file ), $output, $formatter ); if ( $process->isSuccessful() ) { $cmd_output = explode( "\n", trim( $process->getOutput() ) ); From 378dc8237a88751733812658a295b44a5bb68194 Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Mon, 12 Dec 2022 15:26:36 +0530 Subject: [PATCH 02/10] [not verified] Add changelog. --- .../packages/changelogger/changelog/fix-changelogger-merge | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 projects/packages/changelogger/changelog/fix-changelogger-merge diff --git a/projects/packages/changelogger/changelog/fix-changelogger-merge b/projects/packages/changelogger/changelog/fix-changelogger-merge new file mode 100644 index 000000000000..141e51059f58 --- /dev/null +++ b/projects/packages/changelogger/changelog/fix-changelogger-merge @@ -0,0 +1,5 @@ +Significance: minor +Type: changed + +Support merge strategy for jetpack changelogger, assuming that merge commits contains the pr number in the merge commit with format (#{pr_number}) towards the end. + From 607452766550fe2f186858bf1431d49883e6a340 Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 13 Dec 2022 10:27:11 +0000 Subject: [PATCH 03/10] [not verified] Update version number for CLI. --- projects/packages/changelogger/composer.json | 2 +- projects/packages/changelogger/src/Application.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/packages/changelogger/composer.json b/projects/packages/changelogger/composer.json index 352d88c1c67c..4dd5479f9274 100644 --- a/projects/packages/changelogger/composer.json +++ b/projects/packages/changelogger/composer.json @@ -55,7 +55,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/packages/changelogger/src/Application.php b/projects/packages/changelogger/src/Application.php index 720081d7c4be..024c4f61e2f1 100644 --- a/projects/packages/changelogger/src/Application.php +++ b/projects/packages/changelogger/src/Application.php @@ -18,7 +18,7 @@ */ class Application extends SymfonyApplication { - const VERSION = '3.2.3-alpha'; + const VERSION = '3.3.0-alpha'; /** * Constructor. From b008677bf20dcd5bce1ae3020180566c2b4c6cf5 Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 13 Dec 2022 16:07:27 +0530 Subject: [PATCH 04/10] [not verified] Upgrade changelogger reference in all plugins. --- projects/plugins/backup/composer.lock | 4 ++-- projects/plugins/beta/composer.lock | 4 ++-- projects/plugins/boost/composer.lock | 4 ++-- projects/plugins/debug-helper/composer.lock | 4 ++-- projects/plugins/jetpack-mu-wpcom/composer.lock | 4 ++-- projects/plugins/jetpack/composer.lock | 4 ++-- projects/plugins/protect/composer.lock | 4 ++-- projects/plugins/search/composer.lock | 4 ++-- projects/plugins/social/composer.lock | 4 ++-- projects/plugins/starter-plugin/composer.lock | 4 ++-- projects/plugins/super-cache/composer.lock | 4 ++-- projects/plugins/vaultpress/composer.lock | 4 ++-- projects/plugins/videopress/composer.lock | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/projects/plugins/backup/composer.lock b/projects/plugins/backup/composer.lock index 390094675ec0..0ae7abc79b62 100644 --- a/projects/plugins/backup/composer.lock +++ b/projects/plugins/backup/composer.lock @@ -1297,7 +1297,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1316,7 +1316,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/beta/composer.lock b/projects/plugins/beta/composer.lock index 8bb83353bea6..7d3e43c7e168 100644 --- a/projects/plugins/beta/composer.lock +++ b/projects/plugins/beta/composer.lock @@ -200,7 +200,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -219,7 +219,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/boost/composer.lock b/projects/plugins/boost/composer.lock index af12914076e5..6d7bff404188 100644 --- a/projects/plugins/boost/composer.lock +++ b/projects/plugins/boost/composer.lock @@ -1252,7 +1252,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1271,7 +1271,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/debug-helper/composer.lock b/projects/plugins/debug-helper/composer.lock index 3913da59d59b..bf87be5836f3 100644 --- a/projects/plugins/debug-helper/composer.lock +++ b/projects/plugins/debug-helper/composer.lock @@ -13,7 +13,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -32,7 +32,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/jetpack-mu-wpcom/composer.lock b/projects/plugins/jetpack-mu-wpcom/composer.lock index 664db26429b8..b68d62ef92e1 100644 --- a/projects/plugins/jetpack-mu-wpcom/composer.lock +++ b/projects/plugins/jetpack-mu-wpcom/composer.lock @@ -13,7 +13,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -32,7 +32,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/jetpack/composer.lock b/projects/plugins/jetpack/composer.lock index ab387bb56b19..622f262b65ab 100644 --- a/projects/plugins/jetpack/composer.lock +++ b/projects/plugins/jetpack/composer.lock @@ -2553,7 +2553,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -2572,7 +2572,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/protect/composer.lock b/projects/plugins/protect/composer.lock index 4d5e1f971649..0cc6cefeef50 100644 --- a/projects/plugins/protect/composer.lock +++ b/projects/plugins/protect/composer.lock @@ -1457,7 +1457,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1476,7 +1476,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/search/composer.lock b/projects/plugins/search/composer.lock index dff0d1ebeb81..34bba8bd4920 100644 --- a/projects/plugins/search/composer.lock +++ b/projects/plugins/search/composer.lock @@ -1358,7 +1358,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1377,7 +1377,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/social/composer.lock b/projects/plugins/social/composer.lock index e045b26a1b80..8c728e023280 100644 --- a/projects/plugins/social/composer.lock +++ b/projects/plugins/social/composer.lock @@ -1395,7 +1395,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1414,7 +1414,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/starter-plugin/composer.lock b/projects/plugins/starter-plugin/composer.lock index 20227efc0c37..a09517ea0118 100644 --- a/projects/plugins/starter-plugin/composer.lock +++ b/projects/plugins/starter-plugin/composer.lock @@ -1263,7 +1263,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1282,7 +1282,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/super-cache/composer.lock b/projects/plugins/super-cache/composer.lock index 03bf684fb092..01c99e24f0dc 100644 --- a/projects/plugins/super-cache/composer.lock +++ b/projects/plugins/super-cache/composer.lock @@ -61,7 +61,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -80,7 +80,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/vaultpress/composer.lock b/projects/plugins/vaultpress/composer.lock index 5362bf154657..9f6a9bed6167 100644 --- a/projects/plugins/vaultpress/composer.lock +++ b/projects/plugins/vaultpress/composer.lock @@ -116,7 +116,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -135,7 +135,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { diff --git a/projects/plugins/videopress/composer.lock b/projects/plugins/videopress/composer.lock index e9654ed92811..0b4adb18d512 100644 --- a/projects/plugins/videopress/composer.lock +++ b/projects/plugins/videopress/composer.lock @@ -1357,7 +1357,7 @@ "dist": { "type": "path", "url": "../../packages/changelogger", - "reference": "f5b5e04e8bab59d4bfb71c42d56d68a3003cebd0" + "reference": "902e0f17e8f54dd4b36f83e808a1385e4d001c72" }, "require": { "php": ">=5.6", @@ -1376,7 +1376,7 @@ "extra": { "autotagger": true, "branch-alias": { - "dev-trunk": "3.2.x-dev" + "dev-trunk": "3.3.x-dev" }, "mirror-repo": "Automattic/jetpack-changelogger", "version-constants": { From a0b6d2ba5b5ba4cd475b25e151b7246a35353a00 Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 13 Dec 2022 17:18:00 +0530 Subject: [PATCH 05/10] [not verified] Add changelogs. --- projects/plugins/backup/changelog/changelogger-merge | 5 +++++ projects/plugins/beta/changelog/changelogger-merge | 5 +++++ projects/plugins/boost/changelog/changelogger-merge | 5 +++++ projects/plugins/debug-helper/changelog/changelogger-merge | 5 +++++ .../plugins/jetpack-mu-wpcom/changelog/changelogger-merge | 5 +++++ projects/plugins/jetpack/changelog/changelogger-merge | 4 ++++ projects/plugins/protect/changelog/changelogger-merge | 5 +++++ projects/plugins/search/changelog/changelogger-merge | 5 +++++ projects/plugins/social/changelog/changelogger-merge | 5 +++++ projects/plugins/starter-plugin/changelog/changelogger-merge | 5 +++++ projects/plugins/super-cache/changelog/changelogger-merge | 5 +++++ projects/plugins/vaultpress/changelog/changelogger-merge | 5 +++++ projects/plugins/videopress/changelog/changelogger-merge | 5 +++++ 13 files changed, 64 insertions(+) create mode 100644 projects/plugins/backup/changelog/changelogger-merge create mode 100644 projects/plugins/beta/changelog/changelogger-merge create mode 100644 projects/plugins/boost/changelog/changelogger-merge create mode 100644 projects/plugins/debug-helper/changelog/changelogger-merge create mode 100644 projects/plugins/jetpack-mu-wpcom/changelog/changelogger-merge create mode 100644 projects/plugins/jetpack/changelog/changelogger-merge create mode 100644 projects/plugins/protect/changelog/changelogger-merge create mode 100644 projects/plugins/search/changelog/changelogger-merge create mode 100644 projects/plugins/social/changelog/changelogger-merge create mode 100644 projects/plugins/starter-plugin/changelog/changelogger-merge create mode 100644 projects/plugins/super-cache/changelog/changelogger-merge create mode 100644 projects/plugins/vaultpress/changelog/changelogger-merge create mode 100644 projects/plugins/videopress/changelog/changelogger-merge diff --git a/projects/plugins/backup/changelog/changelogger-merge b/projects/plugins/backup/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/backup/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/beta/changelog/changelogger-merge b/projects/plugins/beta/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/beta/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/boost/changelog/changelogger-merge b/projects/plugins/boost/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/boost/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/debug-helper/changelog/changelogger-merge b/projects/plugins/debug-helper/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/debug-helper/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/jetpack-mu-wpcom/changelog/changelogger-merge b/projects/plugins/jetpack-mu-wpcom/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/jetpack-mu-wpcom/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/jetpack/changelog/changelogger-merge b/projects/plugins/jetpack/changelog/changelogger-merge new file mode 100644 index 000000000000..260c05d392bd --- /dev/null +++ b/projects/plugins/jetpack/changelog/changelogger-merge @@ -0,0 +1,4 @@ +Significance: patch +Type: enhancement + +Also support git merge strategy for changelog.' diff --git a/projects/plugins/protect/changelog/changelogger-merge b/projects/plugins/protect/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/protect/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/search/changelog/changelogger-merge b/projects/plugins/search/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/search/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/social/changelog/changelogger-merge b/projects/plugins/social/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/social/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/starter-plugin/changelog/changelogger-merge b/projects/plugins/starter-plugin/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/starter-plugin/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/super-cache/changelog/changelogger-merge b/projects/plugins/super-cache/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/super-cache/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/vaultpress/changelog/changelogger-merge b/projects/plugins/vaultpress/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/vaultpress/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + diff --git a/projects/plugins/videopress/changelog/changelogger-merge b/projects/plugins/videopress/changelog/changelogger-merge new file mode 100644 index 000000000000..6eb3e9f9f8fa --- /dev/null +++ b/projects/plugins/videopress/changelog/changelogger-merge @@ -0,0 +1,5 @@ +Significance: patch +Type: added +Comment: Minor update to changelog package that supports git merge strategy. Should not affect shipped code. + + From cb5cfb0993cfd23806356bc143bc584391ac9de8 Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Mon, 19 Dec 2022 17:30:05 +0530 Subject: [PATCH 06/10] [not verified] Also add support for default merge message from GH. --- projects/packages/changelogger/src/Utils.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/projects/packages/changelogger/src/Utils.php b/projects/packages/changelogger/src/Utils.php index 0c1a57fdb9d0..46398d8d48f7 100644 --- a/projects/packages/changelogger/src/Utils.php +++ b/projects/packages/changelogger/src/Utils.php @@ -188,9 +188,12 @@ public static function getRepoData( $file, OutputInterface $output, DebugFormatt // PR number. if ( isset( $cmd_output[1] ) ) { $matches = array(); - preg_match( '/\(#(\d+)\)$/', $cmd_output[1], $matches ); - if ( isset( $matches[1] ) ) { - $repo_data['pr-num'] = $matches[1]; + preg_match( '/(Merge pull request #(\d+))|(\(#(\d+)\))/', $cmd_output[1], $matches ); + if ( isset( $matches[2] ) && ! empty( $matches[2] ) ) { + $repo_data['pr-num'] = $matches[2]; + } + if ( isset( $matches[4] ) && ! empty( $matches[4] ) ) { + $repo_data['pr-num'] = $matches[4]; } } } From 764631f99d3c79c6c0668dfce4a75488da14238b Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 20 Dec 2022 15:32:25 +0530 Subject: [PATCH 07/10] [not verified] Add unit test for supporting merge in changelogger. --- .../tests/php/tests/src/UtilsTest.php | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php b/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php index ea725e11c76b..10cdbfb7c995 100644 --- a/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php +++ b/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php @@ -420,6 +420,96 @@ public function testGetRepoData() { ); } + /** + * Test getRepoData with merge commit. + */ + public function testGetRepoDataWithMerge() { + $this->useTempDir(); + + if ( in_array( '--debug', $GLOBALS['argv'], true ) ) { + $output = new ConsoleOutput(); + $output->setVerbosity( ConsoleOutput::VERBOSITY_DEBUG ); + } else { + $output = new NullOutput(); + } + $helper = new DebugFormatterHelper(); + + // Create a non-git file in a non-git checkout. + touch( 'not-in-git.txt', 1614124800 ); + $this->assertSame( + array( + 'timestamp' => '2021-02-24T00:00:00Z', + 'pr-num' => null, + ), + Utils::getRepoData( 'not-in-git.txt', $output, $helper ) + ); + + // Create a file in a git checkout. + file_put_contents( 'in-git.txt', '' ); + $args = array( + $output, + $helper, + array( + 'mustRun' => true, + 'env' => array( + 'GIT_AUTHOR_NAME' => 'Dummy', + 'GIT_AUTHOR_EMAIL' => 'dummy@example.com', + 'GIT_AUTHOR_DATE' => '2021-01-01T11:11:11Z', + 'GIT_COMMITTER_NAME' => 'Dummy', + 'GIT_COMMITTER_EMAIL' => 'dummy@example.com', + 'GIT_COMMITTER_DATE' => '2021-02-02T22:22:22Z', + ), + ), + ); + Utils::runCommand( array( 'git', 'init', '-b', 'main', '.' ), ...$args ); + Utils::runCommand( array( 'git', 'add', 'in-git.txt' ), ...$args ); + Utils::runCommand( array( 'git', 'commit', '-m', 'Commit (#123)' ), ...$args ); + + // Let's create another branch, add a commit and merge to trunk. + Utils::runCommand( array( 'git', 'checkout', '-b', 'temp' ), ...$args ); + file_put_contents( 'in-git2.txt', '' ); + Utils::runCommand( array( 'git', 'add', 'in-git2.txt' ), ...$args ); + Utils::runCommand( array( 'git', 'commit', '-m', 'Dummy commit message.' ), ...$args ); + Utils::runCommand( array( 'git', 'checkout', 'main' ), ...$args ); + Utils::runCommand( array( 'git', 'merge', 'temp', '--no-ff', '-m', 'Merge pull request #124 from temp.' ), ...$args ); + + + $this->assertSame( + array( + 'timestamp' => '2021-02-02T22:22:22+00:00', + 'pr-num' => '123', + ), + Utils::getRepoData( 'in-git.txt', $output, $helper ) + ); + + // Test the second commit. + $this->assertSame( + array( + 'timestamp' => '2021-02-02T22:22:22+00:00', + 'pr-num' => '124', + ), + Utils::getRepoData( 'in-git2.txt', $output, $helper ) + ); + + // Test our non-git file again. + $this->assertSame( + array( + 'timestamp' => '2021-02-24T00:00:00Z', + 'pr-num' => null, + ), + Utils::getRepoData( 'not-in-git.txt', $output, $helper ) + ); + + // Nonexistent file. + $this->assertSame( + array( + 'timestamp' => null, + 'pr-num' => null, + ), + Utils::getRepoData( 'missing.txt', $output, $helper ) + ); + } + /** * Test loadAllChanges. */ From 4940548c2ca50db539244eb52fa3ddd784a814ce Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 20 Dec 2022 15:44:17 +0530 Subject: [PATCH 08/10] [not verified] Remove unneeded capturing groups and added anchoring. --- projects/packages/changelogger/src/Utils.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/packages/changelogger/src/Utils.php b/projects/packages/changelogger/src/Utils.php index 46398d8d48f7..b4585d1a099c 100644 --- a/projects/packages/changelogger/src/Utils.php +++ b/projects/packages/changelogger/src/Utils.php @@ -188,12 +188,12 @@ public static function getRepoData( $file, OutputInterface $output, DebugFormatt // PR number. if ( isset( $cmd_output[1] ) ) { $matches = array(); - preg_match( '/(Merge pull request #(\d+))|(\(#(\d+)\))/', $cmd_output[1], $matches ); - if ( isset( $matches[2] ) && ! empty( $matches[2] ) ) { - $repo_data['pr-num'] = $matches[2]; + preg_match( '/(?:^Merge pull request #(\d+))|(?:\(#(\d+)\)$)/', $cmd_output[1], $matches ); + if ( ! empty( $matches[1] ) ) { + $repo_data['pr-num'] = $matches[1]; } - if ( isset( $matches[4] ) && ! empty( $matches[4] ) ) { - $repo_data['pr-num'] = $matches[4]; + if ( ! empty( $matches[2] ) ) { + $repo_data['pr-num'] = $matches[2]; } } } From 1d7628d2b8a2ce945d4144c818e77cd9e7e18728 Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Tue, 20 Dec 2022 17:04:21 +0530 Subject: [PATCH 09/10] [not verified] Apply coding standards. --- projects/packages/changelogger/tests/php/tests/src/UtilsTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php b/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php index 10cdbfb7c995..f6c28d9386ac 100644 --- a/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php +++ b/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php @@ -473,7 +473,6 @@ public function testGetRepoDataWithMerge() { Utils::runCommand( array( 'git', 'checkout', 'main' ), ...$args ); Utils::runCommand( array( 'git', 'merge', 'temp', '--no-ff', '-m', 'Merge pull request #124 from temp.' ), ...$args ); - $this->assertSame( array( 'timestamp' => '2021-02-02T22:22:22+00:00', From 1c43fa3c081c55f017dccbd538655a12d917dc3e Mon Sep 17 00:00:00 2001 From: Vedanshu Jain Date: Wed, 21 Dec 2022 13:32:48 +0530 Subject: [PATCH 10/10] [not verified] Remove redundant test. --- .../tests/php/tests/src/UtilsTest.php | 74 +------------------ 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php b/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php index f6c28d9386ac..31d1c95d9382 100644 --- a/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php +++ b/projects/packages/changelogger/tests/php/tests/src/UtilsTest.php @@ -349,7 +349,7 @@ public function testLoadChangeFile_badFile() { } /** - * Test getRepoData + * Test getRepoData with squash and merge commits. */ public function testGetRepoData() { $this->useTempDir(); @@ -372,78 +372,6 @@ public function testGetRepoData() { Utils::getRepoData( 'not-in-git.txt', $output, $helper ) ); - // Create a file in a git checkout. - file_put_contents( 'in-git.txt', '' ); - $args = array( - $output, - $helper, - array( - 'mustRun' => true, - 'env' => array( - 'GIT_AUTHOR_NAME' => 'Dummy', - 'GIT_AUTHOR_EMAIL' => 'dummy@example.com', - 'GIT_AUTHOR_DATE' => '2021-01-01T11:11:11Z', - 'GIT_COMMITTER_NAME' => 'Dummy', - 'GIT_COMMITTER_EMAIL' => 'dummy@example.com', - 'GIT_COMMITTER_DATE' => '2021-02-02T22:22:22Z', - ), - ), - ); - Utils::runCommand( array( 'git', 'init', '.' ), ...$args ); - Utils::runCommand( array( 'git', 'add', 'in-git.txt' ), ...$args ); - Utils::runCommand( array( 'git', 'commit', '-m', 'Commit (#123)' ), ...$args ); - - $this->assertSame( - array( - 'timestamp' => '2021-02-02T22:22:22+00:00', - 'pr-num' => '123', - ), - Utils::getRepoData( 'in-git.txt', $output, $helper ) - ); - - // Test our non-git file again. - $this->assertSame( - array( - 'timestamp' => '2021-02-24T00:00:00Z', - 'pr-num' => null, - ), - Utils::getRepoData( 'not-in-git.txt', $output, $helper ) - ); - - // Nonexistent file. - $this->assertSame( - array( - 'timestamp' => null, - 'pr-num' => null, - ), - Utils::getRepoData( 'missing.txt', $output, $helper ) - ); - } - - /** - * Test getRepoData with merge commit. - */ - public function testGetRepoDataWithMerge() { - $this->useTempDir(); - - if ( in_array( '--debug', $GLOBALS['argv'], true ) ) { - $output = new ConsoleOutput(); - $output->setVerbosity( ConsoleOutput::VERBOSITY_DEBUG ); - } else { - $output = new NullOutput(); - } - $helper = new DebugFormatterHelper(); - - // Create a non-git file in a non-git checkout. - touch( 'not-in-git.txt', 1614124800 ); - $this->assertSame( - array( - 'timestamp' => '2021-02-24T00:00:00Z', - 'pr-num' => null, - ), - Utils::getRepoData( 'not-in-git.txt', $output, $helper ) - ); - // Create a file in a git checkout. file_put_contents( 'in-git.txt', '' ); $args = array(