BotFramework-WebChat
BotFramework-WebChat copied to clipboard
4.18.0 Release checklist
Checklist
Build
- [x] ~Bump MockBot to latest Bot Framework SDK release~ (not needed for patch release)
- https://www.npmjs.com/package/botbuilder/v/latest
- [x] ~Bump
botframework-directlinejsto0.15.5in PR #XXX~ - [x] Update README.md with feature notes
- [x] Bump to
4.18.0- [x] Update
CHANGELOG.mdto mark specific changes in4.18.0 - [x] Run
npm version --no-git-tag-version 4.18.0 - [x] Merged into
main, the PR number is #5240 - Commit is
20f73e0 - Do not merge any other unrelated changes after this PR. Any other PR merged, will need to be re-tested
- [x] Update
- [x] 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
- [x] Run or wait for
BotFramework-WebChat-Release-Testingpipeline to complete- The build ID is `391746
- [x] Wait for
WebChat-release-testingpipeline to complete- The release ID is
531
- The release ID is
- [x] 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
- [x] Add manual tests to
WebChat-release-testingas needed
Test
The test should run against the build artifacts from Azure Pipelines.
- [x] Manual testing on major browsers using
webchat-release-testing- [x] Before starting testing, update all the browser version to latest
- [x] Chrome 126.0.6478.127
- [x] Edge 128.0.2703.0
- [x] Firefox 127.0.2
- [x] ~IE11 (Windows 11 22H2 23531.1001)~
- [x] macOS Safari 17.5 (18618.2.12.111.5)
- [x] iOS Safari 17.5.1 (21F90)
- [x] iPadOS Safari 17.4.1 (21E236)
- [x] Android Chrome 126.0.6478.122
- [x] ~Test specific fixes related to
4.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
- [x] Make sure you are on
main~orqfe~ branch, rungit statusto check - [x]
git pull -ff - [x] Verify
/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.18.0 - [x]
git log- Verify the latest commit is
20f73e0
- Verify the latest commit is
- [x]
git tag v4.18.0 - [x]
git push -u upstream v4.18.0- You do not need to kick off a build again, use the previous build
- [x] Create a new GitHub release
- [x] Copy entries from
CHANGELOG.md - [x] 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:
- [x] 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
- [x] Copy entries from
- [x] 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 - [x] Verify package content then click Resume
- [x] 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
XXXXXX, release number is4and commit isf03d1f05 - 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
- [x] Test using
webchat-release-testing- [x] Clone https://github.com/corinagum/WebChat-release-testing/
- [x]
01.create-react-app- [x] Nuke
01.create-react-app/node_modules - [x]
npm install - [x]
npm install [email protected] - [x]
npm install [email protected] - [x]
npm run build - [x] Repeat for
06.esbuild - [x] Repeat for
07.webpack4 - [x] Repeat for
08.webpack5
- [x] Nuke
- [x] 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
- [x]
npx serve(at repo root) - [x] Go to http://localhost:5000/ to test
Notification to interested parties
- [x] Update partner page on Adaptive Cards doc
- https://docs.microsoft.com/en-us/adaptive-cards/resources/partners
- PR at https://github.com/MicrosoftDocs/AdaptiveCards/pull/548
- [ ] Notify related parties for the following fixes
- [ ] Azure Bot Services
- [x] 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.
- [x] ~If on QFE branch, make sure
CHANGELOG.mdand version number bump is cherry-picked tomain~- [x] ~
git checkout main~ - [x] ~
git cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)~
- [x] ~
- [x] ~If needed, correct the date for 4.18.0 in
CHANGELOG.mdin PR #XXX~- ~There could be last minute fixes that could push the planned date later than the one in
CHANGELOG.md~
- ~There could be last minute fixes that could push the planned date later than the one in
- [x] Bump
package.jsonto4.18.1-0in PR #5242- Run
npm version prepatch --no-git-tag-version
- Run
- [x] Update
servicingPlan.jsonin PR #5242- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.18.0
- [x] ~Update all samples to use
4.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/"
- [x] ~Clean up unnecessary branch on official repo~
- [ ] Understand production-hitting vulnerabilities
- [x] Create a new folder
- [x] Run
npm initwith default values - [x] Run
npm install [email protected] [email protected] - [x] 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 bumping
microsoft-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~
All 4.18 CDN scripts is not available.
<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>
It seems that are still not available
Working on CDN today, asking for approvals.