From 63bebc794423409b8ee720f6b88d9c6ff3a0250a Mon Sep 17 00:00:00 2001 From: Jared Galanis Date: Mon, 18 Dec 2023 14:43:38 -0500 Subject: [PATCH 1/3] WIP - rough pass on updating LTS page for data breaking lockstep --- app/routes/releases/lts.js | 6 ++- app/templates/releases/lts.hbs | 98 ++++++++++++++++++++++++---------- data/project/emberData/lts.md | 17 ++++++ 3 files changed, 91 insertions(+), 30 deletions(-) create mode 100644 data/project/emberData/lts.md diff --git a/app/routes/releases/lts.js b/app/routes/releases/lts.js index a0ed0588..75b79290 100644 --- a/app/routes/releases/lts.js +++ b/app/routes/releases/lts.js @@ -1,3 +1,4 @@ +import { hash } from 'rsvp'; import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; @@ -5,6 +6,9 @@ export default class ReleasesLtsRoute extends Route { @service store; model() { - return this.store.find('project', 'ember/lts'); + return hash({ + ember: this.store.find('project', 'ember/lts'), + emberData: this.store.find('project', 'emberData/lts'), + }); } } diff --git a/app/templates/releases/lts.hbs b/app/templates/releases/lts.hbs index d1de44a1..20d72844 100644 --- a/app/templates/releases/lts.hbs +++ b/app/templates/releases/lts.hbs @@ -1,63 +1,83 @@ -{{page-title "LTS"}} +{{page-title 'LTS'}} -

+

LTS Channel

- Long Term Support (LTS) releases receive bugfixes and security updates for an extended period. + Long Term Support (LTS) releases receive bugfixes and security updates for an + extended period.

-

How to Install

-
- +
+
+
+ +

What is an LTS release?

- Once a release of Ember gets promoted to LTS, it receives bugfixes for 36 weeks and security updates for 54 weeks. + Once a release of Ember gets promoted to LTS, it receives + bugfixes for 36 weeks + and + security updates for 54 weeks.

- An LTS release is the best version to use if you won't be updating your app frequently, but want to help your app stay secure and working smoothly. - - Another reason to use an LTS is if you have a very large, complex app, since LTS versions get even more testing and scrutiny than usual. + An LTS release is the best version to use if you won't be updating your app + frequently, but want to help your app stay secure and working smoothly. + Another reason to use an LTS is if you have a very large, complex app, since + LTS versions get even more testing and scrutiny than usual.

- An LTS is declared roughly every 4 minor versions, excluding the x.0 minor version. - - The last minor version before the next major release is also considered to be an LTS. - - For example, in Ember 2.x, the following versions were considered LTS's: 2.4, 2.8, 2.12, 2.16, and 2.18 (last version). + An LTS is declared roughly every 4 minor versions, excluding the x.0 minor + version. The last minor version before the next major release is also + considered to be an LTS. For example, in Ember 2.x, the following versions + were considered LTS's: 2.4, 2.8, 2.12, 2.16, and 2.18 (last version).

- Before a version can be called an "LTS" release, it has to spend at least 6 weeks as a stable release, where it is used and tested by thousands of developers. + Before a version can be called an "LTS" release, it has to spend at least 6 + weeks as a stable release, where it is used and tested by thousands of + developers.

- A complete release history for Ember is available on GitHub. + A complete release history for Ember is available + on GitHub.

-

LTS schedule

- Ember currently supports these LTS versions for Ember.js, Ember CLI, and Ember Data. + Ember currently supports these LTS versions for Ember.js and Ember Data. +

+ +

+ EmberData made updates to its versioning strategy that + mean it may maintain separate LTS versions from Ember.js. You can read more + about the updates on the + Ember Blog.

-
- +
+
- + + @@ -68,9 +88,15 @@ {{#each this.currentlySupportedLTS as |release|}} - - - + + + {{/each}} @@ -78,10 +104,11 @@

- The following LTS versions are no longer maintained. The table shows their last minor release dates: + The following LTS versions are no longer maintained. The table shows their + last minor release dates:

-
LTS versionProjectLTS Version Promotion date Bugfixes until Security patches until
{{release.version}}{{format-date-time release.promotionDate "MMMM D, YYYY"}}{{format-date-time (add-weeks release.promotionDate 30) "MMMM D, YYYY"}}{{format-date-time (add-weeks release.promotionDate 54) "MMMM D, YYYY"}}{{format-date-time release.promotionDate 'MMMM D, YYYY'}}{{format-date-time + (add-weeks release.promotionDate 30) + 'MMMM D, YYYY' + }}{{format-date-time + (add-weeks release.promotionDate 54) + 'MMMM D, YYYY' + }}
+
@@ -104,78 +131,91 @@ + + + + + + + + + + + + + diff --git a/data/project/emberData/lts.md b/data/project/emberData/lts.md new file mode 100644 index 00000000..6ad52ed0 --- /dev/null +++ b/data/project/emberData/lts.md @@ -0,0 +1,17 @@ +--- +name: Ember Data +baseFileName: ember-data +filter: + - /ember-data\./ +repo: emberjs/data +lastRelease: 5.3.0 +channel: lts +date: 2023-12-11 +changelogPath: CHANGELOG.md +debugFileName: .js +--- + +# Install Ember Data %s: + +
+npm install --save-dev ember-data@~%s From b0024e541137db643af7261ff1d45932253ee9cc Mon Sep 17 00:00:00 2001 From: Jared Galanis Date: Fri, 3 May 2024 09:07:50 -0400 Subject: [PATCH 2/3] make two separate tables for ember and data and rework columns --- app/controllers/releases/lts.js | 162 +++++++++++++++++++++++++++++++- app/templates/releases/lts.hbs | 157 +++++++------------------------ 2 files changed, 196 insertions(+), 123 deletions(-) diff --git a/app/controllers/releases/lts.js b/app/controllers/releases/lts.js index 8eb8c036..53737533 100644 --- a/app/controllers/releases/lts.js +++ b/app/controllers/releases/lts.js @@ -3,14 +3,174 @@ import Controller from '@ember/controller'; export default class ReleasesLtsController extends Controller { // promotion date should be the day of the release of the following ember minor version // you can run `npm info ember-source time` to see a list - currentlySupportedLTS = [ + emberLtsReleases = [ { version: '5.8', promotionDate: new Date('2024-04-15'), + isActive: true, }, { version: '5.4', promotionDate: new Date('2023-12-11'), + isActive: true, + }, + { + version: '4.12', + promotionDate: new Date('2023-05-14'), + isActive: false, + }, + { + version: '4.8', + promotionDate: new Date('2022-12-08'), + isActive: false, + }, + { + version: '4.4', + promotionDate: new Date('2022-07-13'), + isActive: false, + }, + { + version: '3.28', + promotionDate: new Date('2021-12-20'), + isActive: false, + }, + { + version: '3.24', + promotionDate: new Date('2021-02-25'), + isActive: false, + }, + { + version: '3.20', + promotionDate: new Date('2020-09-02'), + isActive: false, + }, + { + version: '3.16', + promotionDate: new Date('2020-03-16'), + isActive: false, + }, + { + version: '3.12', + promotionDate: new Date('2019-09-25'), + isActive: false, + }, + { + version: '3.8', + promotionDate: new Date('2019-04-10'), + isActive: false, + }, + { + version: '3.4', + promotionDate: new Date('2018-10-15'), + isActive: false, + }, + { + version: '2.18', + promotionDate: new Date('2018-02-14'), + isActive: false, + }, + { + version: '2.16', + promotionDate: new Date('2017-11-20'), + isActive: false, + }, + { + version: '2.12', + promotionDate: new Date('2017-04-29'), + isActive: false, + }, + { + version: '2.8', + promotionDate: new Date('2016-10-17'), + isActive: false, + }, + { + version: '2.4', + promotionDate: new Date('2016-04-11'), + isActive: false, + }, + ]; + + dataLtsReleases = [ + { + version: '5.3', + promotionDate: new Date('2023-12-10'), + isActive: true, + }, + { + version: '4.12', + promotionDate: new Date('2023-05-14'), + isActive: true, + }, + { + version: '4.8', + promotionDate: new Date('2022-12-08'), + isActive: false, + }, + { + version: '4.4', + promotionDate: new Date('2022-07-13'), + isActive: false, + }, + { + version: '3.28', + promotionDate: new Date('2021-12-20'), + isActive: false, + }, + { + version: '3.24', + promotionDate: new Date('2021-02-25'), + isActive: false, + }, + { + version: '3.20', + promotionDate: new Date('2020-09-02'), + isActive: false, + }, + { + version: '3.16', + promotionDate: new Date('2020-03-16'), + isActive: false, + }, + { + version: '3.12', + promotionDate: new Date('2019-09-25'), + isActive: false, + }, + { + version: '3.8', + promotionDate: new Date('2019-04-10'), + isActive: false, + }, + { + version: '3.4', + promotionDate: new Date('2018-10-15'), + isActive: false, + }, + { + version: '2.18', + promotionDate: new Date('2018-02-14'), + isActive: false, + }, + { + version: '2.16', + promotionDate: new Date('2017-11-20'), + isActive: false, + }, + { + version: '2.12', + promotionDate: new Date('2017-04-29'), + isActive: false, + }, + { + version: '2.8', + promotionDate: new Date('2016-10-17'), + isActive: false, + }, + { + version: '2.4', + promotionDate: new Date('2016-04-11'), + isActive: false, }, ]; } diff --git a/app/templates/releases/lts.hbs b/app/templates/releases/lts.hbs index 20d72844..3fe31f93 100644 --- a/app/templates/releases/lts.hbs +++ b/app/templates/releases/lts.hbs @@ -73,19 +73,20 @@

+

Ember.js

LTS versionDecember 21, 2023
Ember & EmberData 4.4 July 13, 2022 February 8, 2023 July 26, 2023
Ember & EmberData 3.28 December 20, 2021 July 18, 2022 January 2, 2023
Ember & EmberData 3.24 February 25, 2021 September 23, 2021 March 10, 2022
Ember & EmberData 3.20 September 2, 2020 March 31, 2021 September 15, 2021
Ember & EmberData 3.16 March 16, 2020 October 12, 2020 March 29, 2021
Ember & EmberData 3.12 September 25, 2019 April 22, 2020 October 7, 2020
Ember & EmberData 3.8 April 10, 2019 November 6, 2019 April 22, 2020
Ember & EmberData 3.4 October 15, 2018 May 13, 2019 October 28, 2019
Ember & EmberData 2.18 February 14, 2018 September 12, 2018 February 27, 2019
Ember & EmberData 2.16 November 20, 2017 June 18, 2018 December 3, 2018
Ember & EmberData 2.12 April 29, 2017 November 25, 2017 May 12, 2018
Ember & EmberData 2.8 October 17, 2016 May 15, 2017 October 30, 2017
Ember & EmberData 2.4 April 11, 2016 November 7, 2016
- + - {{#each this.currentlySupportedLTS as |release|}} + {{#each this.emberLtsReleases as |release|}} @@ -97,129 +98,41 @@ (add-weeks release.promotionDate 54) 'MMMM D, YYYY' }} + {{/each}}
Project LTS Version Promotion date Bugfixes until Security patches untilStatus
{{release.version}} {{format-date-time release.promotionDate 'MMMM D, YYYY'}}{{if release.isActive 'Active' 'End of life'}}
+
+

EmberData

+ + + + + + + + + + -

- The following LTS versions are no longer maintained. The table shows their - last minor release dates: -

- -
LTS VersionPromotion dateBugfixes untilSecurity patches untilStatus
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LTS versionLTS promotionBugfixes untilSecurity patches until
4.12May 14, 2023December 10, 2023May 26, 2024
4.8December 8, 2022July 6, 2023December 21, 2023
Ember & EmberData4.4July 13, 2022February 8, 2023July 26, 2023
Ember & EmberData3.28December 20, 2021July 18, 2022January 2, 2023
Ember & EmberData3.24February 25, 2021September 23, 2021March 10, 2022
Ember & EmberData3.20September 2, 2020March 31, 2021September 15, 2021
Ember & EmberData3.16March 16, 2020October 12, 2020March 29, 2021
Ember & EmberData3.12September 25, 2019April 22, 2020October 7, 2020
Ember & EmberData3.8April 10, 2019November 6, 2019April 22, 2020
Ember & EmberData3.4October 15, 2018May 13, 2019October 28, 2019
Ember & EmberData2.18February 14, 2018September 12, 2018February 27, 2019
Ember & EmberData2.16November 20, 2017June 18, 2018December 3, 2018
Ember & EmberData2.12April 29, 2017November 25, 2017May 12, 2018
Ember & EmberData2.8October 17, 2016May 15, 2017October 30, 2017
Ember & EmberData2.4April 11, 2016November 7, 2016April 24, 2017
\ No newline at end of file + + {{#each this.dataLtsReleases as |release|}} + + {{release.version}} + {{format-date-time release.promotionDate 'MMMM D, YYYY'}} + {{format-date-time + (add-weeks release.promotionDate 30) + 'MMMM D, YYYY' + }} + {{format-date-time + (add-weeks release.promotionDate 54) + 'MMMM D, YYYY' + }} + {{if release.isActive 'Active' 'End of life'}} + + {{/each}} + + +
\ No newline at end of file From 2db0f26dad1282ad4552cc847a6adb4177ed4597 Mon Sep 17 00:00:00 2001 From: Jared Galanis Date: Fri, 3 May 2024 09:31:01 -0400 Subject: [PATCH 3/3] fix test --- tests/unit/routes/releases/lts-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/routes/releases/lts-test.js b/tests/unit/routes/releases/lts-test.js index c294b194..5e447fcf 100644 --- a/tests/unit/routes/releases/lts-test.js +++ b/tests/unit/routes/releases/lts-test.js @@ -6,7 +6,7 @@ module('Unit | Route | releases/lts', function (hooks) { test('The model hook returns the Ember LTS project', async function (assert) { const route = this.owner.lookup('route:releases/lts'); - const model = await route.model(); + const { ember: model } = await route.model(); assert.strictEqual( model?.id,