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 - run
python3 -m pip install --user -r tpn/requirements.txt
Release candidate (Tuesday, Aug 27)
- Ensure all new features are tracked via telemetry
- Announce the code freeze (not just to team but also to ptvsd and language server)
- Update master for the release
- Create a branch against
masterfor a pull request - Change the version in
package.jsonfrom a-devsuffix to-rc - Run
npm installto make surepackage-lock.jsonis up-to-date - Update
requirements.txtto point to latest release version of ptvsd. - Update
languageServerVersioninpackage.jsonto point to the latest version (???) of the Language Server. - Update
CHANGELOG.md- Run
news(typicallypython news --final --update CHANGELOG.md | code-insiders -) - Copy over the "Thanks" section from the previous release
- Make sure the "Thanks" section is up-to-date (e.g. compare to versions in requirements.json)
- Touch up news entries (e.g. add missing periods)
- Add any relevant news entries for ptvsd and the language server if they were updated
- Run
- Update
ThirdPartyNotices-Distribution.txtby runningtpn(typicallypython tpn --npm package-lock.json --npm-overrides package.datascience-ui.dependencies.json --config tpn/distribution.toml ThirdPartyNotices-Distribution.txt)- for each failure:
- go to the repo (from link on NPM page) and look for the license there
- copy the text from the failure into
tpn/distribution.toml - fill in the license found in the package's repo
- if there is no license in a package's repo then do one of the following:
- check the NPM metadata and fill in the corresponding license from the OSI site
- ask the package maintainer (e.g. via github)
- ask CELA
- for each failure:
- Update
ThirdPartyNotices-Repository.txtas appropriate - Create a pull request against
master - Merge pull request into
master
- Create a branch against
- Update the
releasebranch- (if necessary) Request from a repo admin that the branch be un-"protected"
- Delete the
releasebranch in the repo - Create a new
releasebranch frommaster - (alternately, force-push the master branch to the GitHub "release" branch)
- (if necessary) Request that the branch be set anew as "protected"
- Update master post-release
- Bump the version number to the next monthly ("YYYY.M.0-dev") release in the
masterbranch-
package.json -
package-lock.json
-
- Create a pull request against
master - Merge pull request into
master
- Bump the version number to the next monthly ("YYYY.M.0-dev") release in the
- Announce the code freeze is over
- Update Component Governance (Click on "microsoft/vscode-python" on that page)
- Provide details for any automatically detected npm dependencies
- Manually add any repository dependencies
- GDPR bookkeeping (@brettcannon)
- Open appropriate documentation issues
- new features
- settings changes
- etc. (ask the team)
- Begin drafting a blog post
- Ask CTI to test the release candidate
Final (Tuesday, Sep 03)
Preparation
- Make sure the appropriate pull requests for the documentation -- including the WOW page -- are ready
- final updates to the
releasebranch- Create a branch against
releasefor a pull request - Update the version in
package.json - 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 runningtpn(typicallypython tpn --npm package-lock.json --npm-overrides package.datascience-ui.dependencies.json --config tpn/distribution.toml ThirdPartyNotices-Distribution.txt; quite possible there will be no change) - Update
ThirdPartyNotices-Repository.txtmanually if necessary - Create pull request against
release - Merge pull request into
release
- Create a branch against
- Make sure component governance is happy
Release
- Publish the release via Azure DevOps
- Make sure CI is passing
- Make sure the "Upload" stage on the release page succeeded
- Make sure no extraneous files are being included in the
.vsixfile (make sure to check for hidden files) - Deploy the "Publish" stage
- Publish documentation changes
- Publish the blog post
- Determine if a hotfix is needed
- Merge
releaseback intomaster
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