Skip to content

Release plan for 2020.9 #13924

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
67 of 68 tasks
DavidKutu opened this issue Sep 14, 2020 · 0 comments
Closed
67 of 68 tasks

Release plan for 2020.9 #13924

DavidKutu opened this issue Sep 14, 2020 · 0 comments

Comments

@DavidKutu
Copy link

DavidKutu commented Sep 14, 2020

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 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 (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

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 .vsix file (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.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

@DavidKutu DavidKutu self-assigned this Sep 14, 2020
@brettcannon brettcannon pinned this issue Sep 14, 2020
@DavidKutu DavidKutu unpinned this issue Sep 24, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants