All dates should align with VS Code's iteration and endgame plans.
Feature freeze (Monday @ 17:00 America/Vancouver, XXX XX)
- Announce the feature freeze on both Teams and e-mail, leave enough time for teams to surface any last minute issues that need to get in before freeze. Make sure debugger and Language Server teams are looped in as well.
- Update
mainfor the release- Change the version in
package.jsonto the next even number (🤖) - Run
npm installto make surepackage-lock.jsonis up-to-date (🤖) - Check
pypi.organd update the version ofdebugpyininstall_debugpy.pyif necessary. - Update
languageServerVersioninpackage.jsonto point to the latest version of the Language Server. Check with the language server team if this needs updating (🤖) - Update
CHANGELOG.md(🤖)- Run
news(typicallypython news --final --update CHANGELOG.md | code-insiders -) - Copy over the "Thanks" section from the previous release into the "Thanks" section for the new release
- Make sure the "Thanks" section is up-to-date (e.g. compare to versions in
requirements.txt) - Touch up news entries (e.g. add missing periods)
- Check the Markdown rendering to make sure everything looks good
- Add any relevant news entries for
debugpyand the language server if they were updated
- Run
- Update
ThirdPartyNotices-Distribution.txtby using https://tools.opensource.microsoft.com/notice (Notes for this process are in the Team OneNote under Python VS Code → Dev Process → Third-Party Notices / TPN file) - Update
ThirdPartyNotices-Repository.txtas appropriate. This file is manually edited so you can check with the teams if anything needs to be added here. - Merge pull request into
main
- Change the version in
- Create the
releasebranch- If there are
releasebranches that are two versions old (e.g. release-2020.[minor - 2]) you can delete them at this time - Create a new
release/YYYY.minorbranch frommain
- If there are
- Update
mainpost-release (🤖)- Bump the minor version number to the next ("YYYY.[minor+1]") release in the
mainbranch to an odd number (🤖)-
package.json -
package-lock.json
-
- Create a pull request against
main - Merge pull request into
main
- Bump the minor version number to the next ("YYYY.[minor+1]") release in the
- Announce the code freeze is over on the same channels
- Update Component Governance (Notes are in the team OneNote under Python VS Code → Dev Process → Component Governance).
- Make sure there are no active alerts
- Manually add any repository/embedded/CG-incompatible dependencies
- Open appropriate documentation issues
- Begin drafting a blog post. Contact the PM team for this.
- Make sure the appropriate pull requests for the documentation -- including the WOW page -- are ready
- Final updates to the
release-YYYY.minorbranch- Create a branch against
release-YYYY.minorfor a pull request - Update the version in
package.jsonto remove the-rc(🤖) - Run
npm installto make surepackage-lock.jsonis up-to-date (the only update should be the version number ifpackage-lock.jsonhas been kept up-to-date) (🤖)- Update
CHANGELOG.md(🤖)- Update version and date for the release section
- Run
newsand copy-and-paste new entries (typicallypython news --final | code-insiders -; quite possibly nothing new to add)
- Update
- Update
ThirdPartyNotices-Distribution.txtby using https://tools.opensource.microsoft.com/notice (🤖; see team notes)- Update
ThirdPartyNotices-Repository.txtmanually if necessary - Create pull request against
release-YYYY.minor(🤖) - Merge pull request into
release-YYYY.minor
- Update
- Create a branch against
- Make sure CI is passing (🤖)
- Create a GitHub release (🤖)
- Start creating a new release
- Make the tag match the version of the released extension
- Copy the changelog entry into the release as the description
- Run the CD pipeline
- Publish documentation changes
- Publish the blog post
- Determine if a hotfix is needed
- Merge the release branch back into
main. Don't overwrite the main branch version. (🤖)
- Create a new release plan (🤖)
- (Un-)pin release plan issues (🤖)