GeezerVison is showing github.com — pythonVSCode/.github/release_plan.md at main · LibraryofV/pythonVSCode
/
release_plan.md
Copy path 90 lines (78 loc) · 7.69 KB
/
release_plan.md
Copy pathFile metadata and controls
90 lines (78 loc) · 7.69 KB
Copy raw file
Download raw file
OutlineEdit and raw actions
- Python 3.7 and higher
- run
python3 -m pip install --user -r news/requirements.txt
Release candidate (Monday, XXX XX)
- 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
main for the release
- Create a branch against
main for a pull request
- Change the version in
package.json from a -dev suffix to -rc (🤖)
- Run
npm install to make sure package-lock.json is up-to-date (🤖)
- Extension will pick up latest version of
debugpy. If you need to pin to a particular version see install_debugpy.py.
- Update
languageServerVersion in package.json to point to the latest version of the Language Server. Check with the language server team if this needs updating.
- Update
CHANGELOG.md (🤖)
- Run
news (typically python 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
debugpy and the language server if they were updated
- Update
ThirdPartyNotices-Distribution.txt by 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.txt as 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
- Update the
release branch
- If there are
release branches that are two versions old (e.g. release-2020.[current month - 2]) you can delete them at this time
- Create a new
release-YYYY.MM branch from main
- Update
main post-release (🤖)
- Bump the version number to the next monthly ("YYYY.MM.0-dev") release in the
main branch
-
package.json
-
package-lock.json
- Create a pull request against
main
- Merge pull request into
main
- 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
- 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
- Publish the release (🤖)
- Make sure CI is passing
- Download the artifact containing the VSIX and make sure no extraneous files are being included in the
.vsix file (make sure to check for hidden files)
- Update the Marketplace
- From a VS Code 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 (🤖)
- 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
- Publish documentation changes
- Publish the blog post
- Determine if a hotfix is needed
- Merge
release-YYYY.MM back into main. Don't overwrite the -dev version in package.json. (🤖)
Clean up after this release
- Go through
info needed issues and close any that have no activity for over a month (🤖)
- GDPR bookkeeping (🤖)
Prep for the next release