Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: explicit EOL for previous releases #16263

Merged
merged 4 commits into from
Jul 24, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions docs/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,25 @@ A full changelog of past releases is [available on GitHub](https://github.com/vi

Vite does not have a fixed release cycle.

- **Patch** releases are released as needed.
- **Minor** releases always contain new features and are also released as needed. Minor releases always go through a beta pre-release phase.
- **Major** releases generally align with [Node.js EOL schedule](https://endoflife.date/nodejs), and will be announced ahead of time. These releases will go through an early discussion phase, and both alpha and beta pre-release phases.
- **Patch** releases are released as needed (usually every week).
- **Minor** releases always contain new features and are released as needed. Minor releases always have a beta pre-release phase (usually every two months).
- **Major** releases generally align with [Node.js EOL schedule](https://endoflife.date/nodejs), and will be announced ahead of time. These releases will go through long-term discussions with the ecosystem, and have alpha and beta pre-release phases (usually every year).

The previous Vite Major will keep receiving important fixes and security patches. After that, it would only get updates if there are security concerns. We recommend updating Vite regularly. Check out the [Migration Guides](https://vitejs.dev/guide/migration.html) when you update to each Major.
The Vite team supports previous Vite versions until their End of Life (EOL). The EOL for each release is automatically determined by:

The Vite team partners with the main projects in the ecosystem to test new Vite versions before they are released through the [vite-ecosystem-ci project](https://github.com/vitejs/vite-ecosystem-ci). Most projects using Vite should be able to quickly offer support or migrate to new versions as soon as they are released.
- **Current Minor** gets regular fixes.
- **Previous Major** (only for its latest minor) and **Previous Minor** receives important fixes and security patches.
- **Second-to-last Major** (only for its latest minor) and **Second-to-last Minor** receives security patches.
- All versions before these are considered to have reached their EOL.

As an example, if the Vite latest is at 5.3.10:

- Regular patches are released for `[email protected]`.
- Important fixes and security patches are backported to `vite@4` and `[email protected]`.
- Security patches are also backported to `vite@3` and `[email protected]`.
- `vite@2` and `[email protected]` reached their EOL.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little bit scary to say that Vite 5.0 would already be EOL 😅 I'm not sure how to re-word it, but I suppose it's because we consider EOL on a minor level while other tools consider on the major level only.

Not a blocker though

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we need a new name like "minor-EOL". I think it is good to be explicit, if we have 5.10, it doesn't scale to be backporting fixes to 5.0

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I don't think we have to backport fixes to different minors on the current major. I notice we do that for security fixes which felt a bit overkill. Minor/patches are non-breaking so there isn't a reason for them not to upgrade all the way to latest.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think backporting security fixes at least to the prev 2 minors is a good idea given that some downstream projects may have the minor pinned because they are using experimental features. This has been very common in Nuxt for example. They should move as fast as they can though, so we only need the last one or two minors.
We could remove the explicit minor EOL, but I still prefer to have it so there is a clear contract with downstream projects.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If they pin the versions then they should also upgrade as soon as possible, otherwise EOL is only going to prolong it 😬 But anyways we can revise this again in the future, I'm ok with merging this for now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that EOL has a somewhat different connotation from, and sounds much stronger than "versions that will no longer receive updates". Usually it is only associated with major versions or entire projects.

Maybe this whole section should just be renamed "Supported Version Ranges", and instead of EOL, use "unsupported" or "no longer supported".

Since the range isn't always straightforward, we should probably:

  • Have a visualized graph that highlights currently supported versions (like the one at https://nodejs.org/en/about/previous-releases), ideally auto generated during VitePress build based on the latest Vite version.
  • Always list the versions that goes "unsupported" in future release posts.


We recommend updating Vite regularly. Check out the [Migration Guides](https://vitejs.dev/guide/migration.html) when you update to each Major. The Vite team works closely with the main projects in the ecosystem to ensure the quality of new versions. We test new Vite versions before releasing them through the [vite-ecosystem-ci project](https://github.com/vitejs/vite-ecosystem-ci). Most projects using Vite should be able to quickly offer support or migrate to new versions as soon as they are released.

## Semantic Versioning Edge Cases

Expand Down