VS Code Python Release Plan V2025.12.0: A Comprehensive Guide
Hey everyone! Let's dive into the release plan for v.2025.12.0 of the Python extension for VS Code. This document outlines all the steps and timelines to ensure a smooth and successful release. We'll cover everything from version bumping to final release and even point release procedures. So, grab your coffee, and let's get started!
General Notes
It's super important that all dates align with VS Code's iteration and endgame plans. We need to stay in sync with the VS Code release cycle to avoid any hiccups. Remember, guys, the feature freeze is set for Monday @ 17:00 America/Vancouver, XXX XX. After this deadline, commits to main
should only address bugs found during endgame testing until the release candidate is ready. This helps us ensure stability and quality in our releases.
Release Primary and Secondary Assignments for the 2025 Calendar Year
Month and version number | Primary | Secondary |
---|---|---|
January v2025.0.0 | Eleanor | Karthik |
February v2025.2.0 | Anthony | Eleanor |
March v2025.4.0 | Karthik | Anthony |
April v2025.6.0 | Eleanor | Karthik |
May v2025.8.0 | Anthony | Eleanor |
June v2025.10.0 | Karthik | Anthony |
July v2025.12.0 | Eleanor | Karthik |
August v2025.14.0 | Anthony | Eleanor |
September v2025.16.0 | Karthik | Anthony |
October v2025.18.0 | Eleanor | Karthik |
November v2025.20.0 | Anthony | Eleanor |
December v2025.22.0 | Karthik | Anthony |
Release Candidate (Thursday, Jul 31)
Mark your calendars: the release candidate is scheduled for Thursday, July 31st. This Thursday falls during our testing week, so branching needs to happen then to freeze the release with only the correct changes. Any last-minute fixes will be treated as candidates for the release branch and will require team approval. This process ensures that only thoroughly vetted changes make it into the final release.
Other important notes to keep in mind:
- Third-Party Notices are automatically added by our build pipelines using https://tools.opensource.microsoft.com/notice.
- The version number for this release is in the issue title and can be substituted wherever you see [YYYY.minor]. This helps keep everything consistent and organized.
Step 1: Bump the Version of main
to Be a Release Candidate ❄️
This step involves updating the version in our package.json
and related files to mark main
as a release candidate. These steps with the snowflake (❄️) indicate that they should happen while main
is frozen (🥶). It’s like putting on the brakes so we can make these critical changes without disruption.
- First, checkout to
main
on your local machine and rungit fetch
to ensure your local repo is up-to-date with the remote. We want to make sure everyone is working with the latest version. - Next, create a new branch called
bump-release-[YYYY.minor]
. This branch will house all the version-bumping changes. Think of it as our temporary workshop for this task. - Now, let's update
pet
(Python Environment Tools):- Go to the pet repo and check
main
and the latestrelease/*
branch. If there are new changes inmain
, create a branch calledrelease/YYYY.minor
(matching the Python extension releasemajor.minor
). This ensures our environment tools are aligned with the extension release. - Update
build\azure-pipeline.stable.yml
to point to the latestrelease/YYYY.minor
forpython-environment-tools
. This step links our build pipeline to the correct version ofpet
.
- Go to the pet repo and check
- Change the version in
package.json
to the next even number. (🤖) This is an automated step (🤖), making it a breeze. - Run
npm install
to make surepackage-lock.json
is up-to-date. At this point, you should see changes only to thepackage.json
andpackage-lock.json
files, which update the version number. (🤖) Again, this is mostly automated. - Update
ThirdPartyNotices-Repository.txt
as appropriate. You can check the commit history to see if any code has been pulled directly into the repository from elsewhere. If unsure, check with the team. We want to ensure proper attribution and compliance. - Finally, create a PR from your branch
bump-release-[YYYY.minor]
tomain
. Add the `