Hi all :)
I'm opening this to talk about what we want our SemVer MAJOR release policy to be.
Right now, for v7, we've opted for the approach of "implement as many breaking changes then release v7"
I'd like to discuss an alternative policy: Releasing SemVer MAJOR releases on a fixed schedule.
The main reason behind it is that a lot of our dependencies already release their Major versions following a fixed schedule ; and, more importantly, EOL their old versions at fixed dates.
If we wait until we have enough breaking changes for v7 to release, we'll be stuck supporting versions of Node, Postgres, etc that have been EOL for a long time (because of v6).
What I'd like to do instead is this:
- Every year in May-June, we release a new SemVer MAJOR version of Sequelize. I've picked these months because Node typically EOL in April.
- New SemVer MAJOR releases only support TypeScript versions that were released in the past 365 days (we don't drop TypeScript versions between SemVer MAJOR releases).
- New SemVer MAJOR releases only support maintained versions of connectors, databases, and Node (at time of release).
- We drop support for a Sequelize version 6 months after its replacement was released. As such, each version would be maintained for a year and a half total.
This also make it easy to be explicit about which version supports which dependency:
Imagine we're in mid-june 2022, our version table would look a bit like this (with most dialects omitted):
| Sequelize
| Node
| TypeScript
| Postgres
| pg (npm)
| Released
| EOL
|
| 8 (alpha)
| >=16
| >=4.7
| >=11
| >=8
| 2023-06-01
| 2025-01-01
|
| 7 (current)
| >=14
| >=4.4
| >=10
| >= 8
| 2022-06-01
| 2024-01-01
|
| 6 (maintenance)
| >=10 <=18
| >=4.1
| >=10 <=14
| >= 7 (node 10-12), >= 8 (node 14)
| 2020-06-24
| 2023-01-01
|
| 5 (EOL)
| >=6 <=12
|
|
| 7
| 2019-03-13
| 2022-01-01
|
Table built based on:
Hi all :)
I'm opening this to talk about what we want our SemVer MAJOR release policy to be.
Right now, for v7, we've opted for the approach of "implement as many breaking changes then release v7"
I'd like to discuss an alternative policy: Releasing SemVer MAJOR releases on a fixed schedule.
The main reason behind it is that a lot of our dependencies already release their Major versions following a fixed schedule ; and, more importantly, EOL their old versions at fixed dates.
If we wait until we have enough breaking changes for v7 to release, we'll be stuck supporting versions of Node, Postgres, etc that have been EOL for a long time (because of v6).
What I'd like to do instead is this:
This also make it easy to be explicit about which version supports which dependency:
Imagine we're in mid-june 2022, our version table would look a bit like this (with most dialects omitted):
<=18
<=14
>= 8 (node 14)
<=12
Table built based on: