-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Open
Labels
releaseRelease checklistRelease checklist
Description
Checklist
Build
-
Bump MockBot to latest Bot Framework SDK release(not needed for patch release) -
Bumpbotframework-directlinejsto0.15.5in PR #XXX - Update README.md with feature notes
- Bump to
4.18.0- Update
CHANGELOG.mdto mark specific changes in4.18.0 - Run
npm version --no-git-tag-version 4.18.0 - Merged into
main, the PR number is Bump to 4.18.0 #5240 - Commit is
20f73e0 - Do not merge any other unrelated changes after this PR. Any other PR merged, will need to be re-tested
- Update
- Run official build pipeline manually, set "Generate_Prod_Version_Number" to
true- (This will not push to NPM or CDN)
- Pipeline name is
BotFramework-WebChat-Official - The build number is
391743and commit is20f73e0
- Run or wait for
BotFramework-WebChat-Release-Testingpipeline to complete- The build ID is `391746
- Wait for
WebChat-release-testingpipeline to complete- The release ID is
531
- The release ID is
- 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
- There could be some for projects under
- Add manual tests to
WebChat-release-testingas needed
Test
The test should run against the build artifacts from Azure Pipelines.
- Manual testing on major browsers using
webchat-release-testing- Before starting testing, update all the browser version to latest
- Chrome 126.0.6478.127
- Edge 128.0.2703.0
- Firefox 127.0.2
-
IE11 (Windows 11 22H2 23531.1001) - macOS Safari 17.5 (18618.2.12.111.5)
- iOS Safari 17.5.1 (21F90)
- iPadOS Safari 17.4.1 (21E236)
- Android Chrome 126.0.6478.122
-
Test specific fixes related to4.18.0and previous releases
Note: when the bot is sending a long message (say,
markdown) via Direct Line Speech, the service may kill the connection. This is an issue on Direct Line Speech service and is not an issue about Web Chat.
Release
- Make sure you are on
mainorbranch, runqfegit statusto check -
git pull -ff - Verify
/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.18.0 -
git log- Verify the latest commit is
20f73e0
- Verify the latest commit is
-
git tag v4.18.0 -
git push -u upstream v4.18.0- You do not need to kick off a build again, use the previous build
- Create a new GitHub release
- Copy entries from
CHANGELOG.md - Subresource Integrity can be generated by
- From local:
for file in $(ls *.js); do echo $file $(cat $file | openssl dgst -sha384 -binary | openssl base64 -A); done - From CDN:
curl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.18.0/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -A
- From local:
- Attach assets including 3 JS files,
stats.jsonand 6 tarballs- You can copy the artifacts from the
BotFramework-WebChat-Officialbuild - Tarballs download from npmjs
curl -LO https://registry.npmjs.org/botframework-directlinespeech-sdk/-/botframework-directlinespeech-sdk-4.18.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.18.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.18.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.18.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.18.0.tgz
- You can copy the artifacts from the
- Copy entries from
- Kick off release to NPM
- Release name is
[[PROD]]Push-WebChat-Official-to-npmjs - The build number is 391743 release number is
3and commit is20f73e03 - Verify package content then click Resume
- Retain the release indefinitely
- Release name is
- Kick off release to CDN (cutoff at 10 PM PST, Sun-Wed only)
- Prepare the message for approval
-
If there are any breaking changes, explain in the email if it will affect any customers - Release name is
[[PROD]]Push-WebChat-Official-to-Prod-CDN-with-approval - The build number is
391743, release number is19and commit is20f73e03 - Script build number is
320590(this is fixed)
-
- Send message to approvers
- Retain the build indefinitely
- Prepare the message for approval
Post-release verification - complete within 30 minutes after release to NPM
- Test using
webchat-release-testing- Clone https://github.com/corinagum/WebChat-release-testing/
-
01.create-react-app- Nuke
01.create-react-app/node_modules -
npm install -
npm install [email protected] -
npm install [email protected] -
npm run build - Repeat for
06.esbuild - Repeat for
07.webpack4 - Repeat for
08.webpack5
- Nuke
- Others
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.18.0, with subresource integrity
<script crossorigin="anonymous" integrity="sha384-YCF4860lf811lnrrIBL4pfZ+UqiNit+8lXEhSY3R+dSc+C1rg6UnEQR5avdOTbj0" src="https://cdn.botframework.com/botframework-webchat/4.18.0/webchat.js" ></script> <script crossorigin="anonymous" integrity="sha384-RuyQM7i2h9QDvJTm5quFymi0qfuWyIZocRdsgUaPIhlZnAM/Qz1/YnUxH55Dt9Rd" src="https://cdn.botframework.com/botframework-webchat/4.18.0/webchat-es5.js" ></script> <script crossorigin="anonymous" integrity="sha384-YXzfTEuq6x+8VEBZcHmPE9rM+NpSTVfRQsU1X0v4drgjp3S4F8d8rnq/anR3WLpj" src="https://cdn.botframework.com/botframework-webchat/4.18.0/webchat-minimal.js" ></script>
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.18.0, with subresource integrity
-
npx serve(at repo root) - Go to http://localhost:5000/ to test
Notification to interested parties
- Update partner page on Adaptive Cards doc
- Notify related parties for the following fixes
- Azure Bot Services
- Omnichannel
- Copilot Studio
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_modulesfrom all foldergit clean -fdx
- Never delete
package-lock.json - If you mess it up, tableflip and redo
- In
component/package.json- Remove reference to
botframework-webchat-coreby hand-modifyingpackage.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
- Remove reference to
Applies to all releases
This list should be copied to versions in the future.
-
If on QFE branch, make sureCHANGELOG.mdand version number bump is cherry-picked tomain-
git checkout main -
git cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)
-
-
If needed, correct the date for 4.18.0 inCHANGELOG.mdin PR #XXXThere could be last minute fixes that could push the planned date later than the one inCHANGELOG.md
- Bump
package.jsonto4.18.1-0in PR Bump to 4.18.1-0 #5242- Run
npm version prepatch --no-git-tag-version
- Run
- Update
servicingPlan.jsonin PR Bump to 4.18.1-0 #5242- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.18.0
-
Update all samples to use4.18.0in PR #XXXX- Some samples are pointing to GitHub Releases because the sample need new features from daily build
- Search "https://github.com/microsoft/BotFramework-WebChat/releases/download/"
- And replace with "https://cdn.botframework.com/botframework-webchat/latest/"
-
Clean up unnecessary branch on official repo - Understand production-hitting vulnerabilities
- Create a new folder
- Run
npm initwith default values - Run
npm install [email protected] [email protected] - Look at the result and see if there are any production-hitting vulnerabilities, investigate if needed
- No vulnerabilities found
- Bump in Copilot Studio
-
Update accessibility conformance report- For any accessibility bugs resolved, remove them from external notes
- Update version number and publish date
Applies to major/minor releases
Bump all dependencies to latest version
In PR #5174, we are bumping most dependencies to latest version.
After bumping, if a package broke compatibility, we should investigate:
- Upgrade our code to use the latest package if possible, otherwise;
- Add it to
package.json/pinDependenciesto prevent bumping deliberately
- Pinning dependencies incur unpredictable technical debts, say, security issue found in the unsupported version, causing us slow to react
- Every time we bump, we need to go through the whole
pinDependencieslist
- Run
npm run bump - Run
npm audit fixto make sure everything is fixed -
List steps to verify bumpingmicrosoft-cognitiveservices-speech-sdk
Bump Docker image
The Docker image can be found at root
docker-compose.ymlandDockerfile*.
-
Docker container for headless Chrome in PR #XXXX
Metadata
Metadata
Assignees
Labels
releaseRelease checklistRelease checklist