From c6ec174fc39e7c83715789e635f55aecf3605c57 Mon Sep 17 00:00:00 2001 From: Arthur Perton Date: Tue, 29 Nov 2022 12:56:09 +0100 Subject: [PATCH 1/6] Remember last version type --- src/Updater/Changelog.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Updater/Changelog.php b/src/Updater/Changelog.php index 6868966c9c7..cdf5d0c99ec 100644 --- a/src/Updater/Changelog.php +++ b/src/Updater/Changelog.php @@ -29,10 +29,14 @@ abstract public function item(); */ public function get() { - return Marketplace::releases($this->item())->map(function ($release, $index) { + $type = null; + + return Marketplace::releases($this->item())->map(function ($release, $index) use (&$type) { + $type = $type === 'downgrade' ? $type : $this->parseReleaseType($release['version'], $index); + return (object) [ 'version' => $release['version'], - 'type' => $this->parseReleaseType($release['version'], $index), + 'type' => $type, 'latest' => $index === 0, 'licensed' => $this->isLicensed($release['version']), 'date' => Carbon::parse($release['date'])->format(config('statamic.cp.date_format')), From c12548508bbb387369783be0335ef3a303b5f92b Mon Sep 17 00:00:00 2001 From: Arthur Perton Date: Tue, 29 Nov 2022 12:56:41 +0100 Subject: [PATCH 2/6] Parse markdown on the frontend --- resources/js/components/updater/Release.vue | 10 +++++++++- src/Updater/Changelog.php | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/resources/js/components/updater/Release.vue b/resources/js/components/updater/Release.vue index bba29d758f7..51faafa58dd 100644 --- a/resources/js/components/updater/Release.vue +++ b/resources/js/components/updater/Release.vue @@ -19,7 +19,7 @@
-
+
NEW') + .replaceAll('[fix]', 'FIX') + .replaceAll('[break]', 'BREAK') + .replaceAll('[na]', 'N/A') } }, diff --git a/src/Updater/Changelog.php b/src/Updater/Changelog.php index cdf5d0c99ec..0a8556c271f 100644 --- a/src/Updater/Changelog.php +++ b/src/Updater/Changelog.php @@ -4,7 +4,6 @@ use Carbon\Carbon; use Facades\Statamic\Marketplace\Marketplace; -use Statamic\Updater\Presenters\GithubReleasePresenter; abstract class Changelog { @@ -40,7 +39,7 @@ public function get() 'latest' => $index === 0, 'licensed' => $this->isLicensed($release['version']), 'date' => Carbon::parse($release['date'])->format(config('statamic.cp.date_format')), - 'body' => (string) new GithubReleasePresenter($release['changelog']), + 'body' => $release['changelog'], ]; }); } From f406a2cf8bf6f486112e6cf099ce854d816b9404 Mon Sep 17 00:00:00 2001 From: Arthur Perton Date: Tue, 29 Nov 2022 13:14:33 +0100 Subject: [PATCH 3/6] Start loading the changelog earlier --- resources/js/components/updater/Updater.vue | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/js/components/updater/Updater.vue b/resources/js/components/updater/Updater.vue index e88a56209d6..5e2b06a399e 100644 --- a/resources/js/components/updater/Updater.vue +++ b/resources/js/components/updater/Updater.vue @@ -140,11 +140,8 @@ } }, - mounted() { - this.getChangelog(); - }, - created() { + this.getChangelog(); this.$events.$on('composer-finished', this.composerFinished); }, From 4cb7f929887ec9b3765d81a5063859732df6d877 Mon Sep 17 00:00:00 2001 From: Arthur Perton Date: Tue, 29 Nov 2022 13:15:27 +0100 Subject: [PATCH 4/6] Display the loading indicator by avoiding a javascript error --- resources/js/components/updater/Updater.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/js/components/updater/Updater.vue b/resources/js/components/updater/Updater.vue index 5e2b06a399e..e237e0fb6a0 100644 --- a/resources/js/components/updater/Updater.vue +++ b/resources/js/components/updater/Updater.vue @@ -132,11 +132,11 @@ }, latestVersion() { - return this.latestRelease.version; + return this.latestRelease && this.latestRelease.version; }, canUpdateToLatestVersion() { - return this.latestVersion.canUpdate && this.showActions && ! this.onLatestVersion; + return this.latestVersion && this.latestVersion.canUpdate && this.showActions && ! this.onLatestVersion; } }, From 804e7f3ab5b8046fccbea56c290ef4292e37a118 Mon Sep 17 00:00:00 2001 From: Arthur Perton Date: Tue, 29 Nov 2022 13:46:38 +0100 Subject: [PATCH 5/6] =?UTF-8?q?Don=E2=80=99t=20expect=20HTML=20anymore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/Composer/ChangelogTests.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Composer/ChangelogTests.php b/tests/Composer/ChangelogTests.php index 9b085a7e7ae..a5f2dcdc892 100644 --- a/tests/Composer/ChangelogTests.php +++ b/tests/Composer/ChangelogTests.php @@ -46,7 +46,7 @@ public function it_can_get_changelog_contents() collect($contents)->each(function ($release) { $this->assertEquals('2018: November 6th', $release->date); - $this->assertContainsHtml($release->body); + $this->assertIsString($release->body); }); } From 750ed30941cf13716f5fa189747a502ac48fa429 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 29 Nov 2022 09:45:43 -0500 Subject: [PATCH 6/6] Deprecate it since we no longer use it. --- src/Updater/Presenters/GithubReleasePresenter.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Updater/Presenters/GithubReleasePresenter.php b/src/Updater/Presenters/GithubReleasePresenter.php index 4229e0b79ae..c9b8f24b50c 100644 --- a/src/Updater/Presenters/GithubReleasePresenter.php +++ b/src/Updater/Presenters/GithubReleasePresenter.php @@ -5,6 +5,7 @@ use Statamic\Support\Html; use Statamic\Support\Str; +/** @deprecated */ class GithubReleasePresenter { /**