forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Labels
Description
Prerequisites
- Python 3.7 and higher
- run
python3 -m pip install --user -r news/requirements.txt
Release candidate (Monday, Sep 14)
- Announce the code 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- Create a branch against
mainfor a pull request - Change the version in
package.jsonfrom a-devsuffix to-rc(🤖) - Run
npm installto make surepackage-lock.jsonis up-to-date (🤖) - Extension will pick up latest version of
debugpy. If you need to pin to a particular version seeinstall_debugpy.py. - 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. - Create a pull request against
main(🤖) - Merge pull request into
main
- Create a branch against
- Update the
releasebranch- If there are
releasebranches that are two versions old (e.g. release-2020.[current month - 2]) you can delete them at this time - Create a new
release-YYYY.MMbranch frommain
- If there are
- Update
mainpost-release (🤖)- Bump the version number to the next monthly ("YYYY.MM.0-dev") release in the
mainbranch-
package.json -
package-lock.json
-
- Create a pull request against
main - Merge pull request into
main
- Bump the version number to the next monthly ("YYYY.MM.0-dev") release in the
- Announce the code freeze is over on the same channels
- Update Component Governance (Click on "microsoft/vscode-python" on that page). Notes are in the OneNote under Python VS Code -> Dev Process -> Component Governance.
- Provide details for any automatically detected npm dependencies
- Manually add any repository dependencies
- GDPR bookkeeping (@brettcannon) (🤖; Notes in OneNote under Python VS Code -> Dev Process -> GDPR)
- Open appropriate documentation issues
- new features
- settings changes
- etc. (ask the team)
- Schedule a bug bash. Aim for close after freeze so there is still time to fix release bugs before release. Ask teams before bash for specific areas that need testing.
- Begin drafting a blog post. Contact the PM team for this.
- Ask CTI to test the release candidate
Final (Wednesday, Sep 23)
Preparation
- Make sure the appropriate pull requests for the documentation -- including the WOW page -- are ready
- Final updates to the
release-YYYY.MMbranch- Create a branch against
release-YYYY.MMfor 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
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.MM(🤖) - Merge pull request into
release-YYYY.MM
- Create a branch against
- Make sure component governance is happy
Release
- Publish the release via Azure DevOps
- Make sure CI is passing. Try a re-run on any failing CI test stages. If tests still won't pass contact the owning team.
- On Azure DevOps on the page for the CI run after it succeeds there will now be a "Releases" tab which is populated with a release entry. Click that entry to go to the release page, which shows the "Upload" and "Publish" stages
- Click the deploy button on the "Upload" stage and make sure that it succeeds
- Make sure no extraneous files are being included in the
.vsixfile (make sure to check for hidden files) - Click the deploy button on the "Publish" stage, this will push out the release to the public
- From a VSCode instance uninstall the python extension. After the publish see if the new version is available from the extensions tab. Download it and quick sanity check to make sure the extension loads.
- Create a GitHub release
- The previous publish step should have created a release here, but it needs to be edited
- Edit the tag to match the version of the released extension
- Copy the changelog entry into the release as the description
- Publish documentation changes
- Publish the blog post
- Determine if a hotfix is needed
- Merge
release-YYYY.MMback intomain. Don't overwrite the-devversion in package.json. (🤖)
Clean up after this release
- Go through
info neededissues and close any that have no activity for over a month (🤖) - GDPR bookkeeping (🤖)
Prep for the next release
- Create a new release plan (🤖)
- (Un-)pin release plan issues (🤖)