Checklist
Build
Bump MockBot to Bot Framework SDK release 4.15.1 (not needed for patch release)
Bump botframework-directlinejs to 0.15.1
Bump to 4.15.1
Run daily pipeline manually, set "generate release version number" to true
(This will not push to NPM or CDN)
Pipeline name is BotFramework-WebChat-daily
The build number is 294611 and commit is a6b3788
Wait for WebChat-release-testing pipeline to complete
Pipeline name is Push-Release-Testing-to-GitHub-Pages
The release ID is 325
Check component governance and make sure there are no high/critical related to code under /packages/ folder
There could be some for projects under /samples/ folder, as they are pointing to previous version of Web Chat
Add manual tests to WebChat-release-testing as needed
Test
The test should run against the build artifacts from Azure Pipelines.
Manual testing on major browsers using webchat-release-testing
Test specific fixes related to 4.15.1 and previous releases
Release
Verify on WebChat-release-testing
Make sure you are on main or qfe branch, run git status to check
git pull
Verify /package.json, /package-lock.json, and CHANGELOG.md has a version of 4.15.1
git log
Verify the latest commit is a6b3788
git tag v4.15.1
git push -u upstream v4.15.1
You do not need to kick off a build again, use the previous build
Create a new GitHub release, copy entries from CHANGELOG.md
Kick off release to NPM
Kick off release to CDN (cutoff at 2PM PST, Mon-Thu only)
Prepare the email for approval
Release name is [[PROD]]Push-WebChat-to-Prod-CDN-with-approval
The build number is 294611 , release number is 42 and commit is a6b3788
Script build number is 131156 (this is fixed)
Send reminder email to approvers
Retain the build indefinitely
Post-release verification - complete within 30 minutes after release to NPM
Notification to interested parties
Post-release checklist
These are chores that we should do before starting the cycle to reduce ripple effects if we do it in mid-cycle.
Tips:
Clean your repo before start
Remove node_modules from all folder
Never delete package-lock.json
If you mess it up, tableflip and redo
In component/package.json
Remove reference to botframework-webchat-core by hand-modifying package.json
Then, npm install (symlinks will be broken afterward)
Then, add those references back by hand-modifying package.json
This also applies for other packages with similar dependencies/symlinks
To build afterward, do tableflip to rebuild those symlinks
Applies to all releases
This list should be copied to versions in the future.
The PR is https://github.com/microsoft/BotFramework-WebChat/pull/XXX
Applies to major/minor releases
Bump all dependencies to latest version
Obstacles to bump npm
Check if the followings are still valid. We should bump to npm@latest ([email protected] ) as soon as possible.
As of writing, [email protected] (bundled by node@16) has issue on running postinstall script.
[email protected] is peer-depends on @angular/common, which npm@7 will automatically install missing peer dependencies. Track the issue here .
Bump Docker image
The Docker image can be found at root docker-compose.yml and Dockerfile*.
Checklist
Build
Bump MockBot to Bot Framework SDK release 4.15.1(not needed for patch release)botframework-directlinejsto0.15.14.15.1CHANGELOG.mdto mark specific changes in4.15.1npm version --no-git-tag-version 4.15.1master, the PR number is Render/mount to a detached DOM node #4197a6b3788trueBotFramework-WebChat-daily294611and commit isa6b3788WebChat-release-testingpipeline to completePush-Release-Testing-to-GitHub-Pages325/packages/folder/samples/folder, as they are pointing to previous version of Web ChatWebChat-release-testingas neededTest
webchat-release-testing4.15.1and previous releasesRelease
mainorbranch, runqfegit statusto checkgit pull/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.15.1git loga6b3788git tag v4.15.1git push -u upstream v4.15.1CHANGELOG.mdcat webchat.js | openssl dgst -sha384 -binary | openssl base64 -Acurl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.15.1/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -Astats.jsonand 5 tarballswebchat-release-testing/drops[[PROD]]Push-WebChat-to-npmjs38and commit isa6b3788[[PROD]]Push-WebChat-to-Prod-CDN-with-approval294611, release number is42and commit isa6b3788131156(this is fixed)Post-release verification - complete within 30 minutes after release to NPM
webchat-release-testing01.create-react-app01.create-react-app/node_modulesnpm installnpm install [email protected](just install the bundle package)npm run buildnpx serve(at repo root)Notification to interested parties
Post-release checklist
These are chores that we should do before starting the cycle to reduce ripple effects if we do it in mid-cycle.
Tips:
node_modulesfrom all foldergit clean -fdxpackage-lock.jsoncomponent/package.jsonbotframework-webchat-coreby hand-modifyingpackage.jsonnpm install(symlinks will be broken afterward)package.jsonApplies to all releases
If on QFE branch, make sureCHANGELOG.mdand version number bump is cherry-picked tomastergit checkout mastergit cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)CHANGELOG.mdin PR #XXXCHANGELOG.mdpackage.jsonto4.15.2-0in PR Bump to 4.15.2-0 #4195npm version prepatch --no-git-tag-versionservicingPlan.jsonin PR Bump to 4.15.2-0 #41954.15.1in PR Bump to 4.15.2-0 #4195npm initwith default valuesnpm install [email protected]The PR is https://github.com/microsoft/BotFramework-WebChat/pull/XXX
Applies to major/minor releases
Bump all dependencies to latest version
npm run bumpnpm audit fixto make sure everything is fixedmicrosoft-cognitiveservices-speech-sdkObstacles to bump
npmCheck if the followings are still valid. We should bump to
npm@latest([email protected]) as soon as possible.As of writing,
[email protected](bundled bynode@16) has issue on runningpostinstallscript.[email protected]is peer-depends on@angular/common, whichnpm@7will automatically install missing peer dependencies. Track the issue here.Bump Docker image
Docker container for headless Chrome (#XXX)3.14.159-xxxtag scheme to a more sensible87.0tag scheme