-
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-directlinejs
to0.15.5
in PR #XXX - Update README.md with feature notes
- Bump to
4.17.1
- Update
CHANGELOG.md
to mark specific changes in4.17.1
- Run
npm version --no-git-tag-version 4.17.1
- Merged into
v4.17.1-qfe
, the PR number is [QFE] Bump version number to 4.17.1 #5524 - Commit is
f097f7e
- 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
413231
and commit isf097f7ea
- Run or wait for
BotFramework-WebChat-Release-Testing
pipeline to complete- The build ID is
413232
- The build ID is
- Wait for
WebChat-release-testing
pipeline to complete- The release ID is
587
- The release ID is
-
Check component governance and make sure there are no high/critical related to code under(We are on QFE)/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 toWebChat-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
- Before starting testing, update all the browser version to latest
- Chrome 138.0.7204.159
- Edge 138.0.3351.95
- Firefox 141.0
-
IE11 (Windows 11 22H2 23531.1001) - macOS Safari 18.5 (xxxxx.x.xx.xxx.x)
- iOS Safari 18.5 (22F76)
- iPadOS Safari 18.5 (22F76)
- Android Chrome 138.0.7204.157
-
Test specific fixes related to4.17.1
and previous releases- Keyboard help screen should be removed
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
main
orbranch, runqfe
git status
to check -
git pull -ff
- Verify
/package.json
,/package-lock.json
, andCHANGELOG.md
has a version of4.17.1
-
git log
- Verify the latest commit is
f097f7e
- Verify the latest commit is
-
git tag v4.17.1
-
git push -u upstream v4.17.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
- 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.17.1/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -A
- From local:
- Attach assets including 3 JS files,
stats.json
and 6 tarballs- You can copy the artifacts from the
BotFramework-WebChat-Official
build - Tarballs download from npmjs
curl -LO https://registry.npmjs.org/botframework-directlinespeech-sdk/-/botframework-directlinespeech-sdk-4.17.1.tgz curl -LO https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.17.1.tgz curl -LO https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.17.1.tgz curl -LO https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.17.1.tgz curl -LO https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.17.1.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 413231 release number is
4
and commit isf097f7ea
- 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
413231
, release number is6
and commit isf097f7ea
- 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.a.webpack4-cjs
- Repeat for
07.b.webpack4-esm
- Repeat for
08.webpack5
- Nuke
- Others
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.17.1, with subresource integrity
<script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/4.17.1/webchat.js" ></script> <script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/4.17.1/webchat-es5.js" ></script> <script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/4.17.1/webchat-minimal.js" ></script>
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.17.1, 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(Not updating for QFE) - 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_modules
from 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-core
by 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.md
and 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.17.1 inCHANGELOG.md
in PR #XXXThere could be last minute fixes that could push the planned date later than the one inCHANGELOG.md
-
Bumppackage.json
to4.18.1-0
in PR Bump to 4.18.1-0 #5242Runnpm version prepatch --no-git-tag-version
- Update
servicingPlan.json
in PR Add 4.17.1 toservicingPlan.json
#5525- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.17.1
-
Update all samples to use4.17.1
in 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(This is QFE)-
Create a new folder -
Runnpm init
with default values -
Runnpm 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(This is QFE) -
Update accessibility conformance report(This is QFE)- 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/pinDependencies
to 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
pinDependencies
list
-
Runnpm run bump
-
Runnpm audit fix
to 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.yml
andDockerfile*
.
-
Docker container for headless Chrome in PR #XXXX
Metadata
Metadata
Assignees
Labels
releaseRelease checklistRelease checklist