4.14.0 Release checklist
See original GitHub issueChecklist
Build
- Bump MockBot to Bot Framework SDK release 4.14.0
- ~Bump
botframework-directlinejs
to0.14.1
~- No newer version
- Bump to
4.14.0
- Update
CHANGELOG.md
to mark specific changes in4.14.0
- Run
npm version --no-git-tag-version 4.14.0
- Merged into
master
, the PR number is #3984 - Commit is
af70aaa
- Do not merge any other unrelated changes after this PR. Any other PR merged, will need to be re-tested
- Update
- 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
257964
and commit isaf70aaa
- Wait for
WebChat-release-testing
pipeline to complete- Pipeline name is
Push-Release-Testing-to-GitHub-Pages
- The release ID is
2751
- Pipeline name is
- 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
- Before starting testing, update all the browser version to latest
- Chrome 91.0.4472.124
- Edge 91.0.864.64
- Firefox 89.0.2
- IE11 (IE Mode under Windows 11 22000.51)
- macOS Safari 14.1.1 (16611.2.7.1.4)
- iOS Safari 14.6
- Android Chrome 91.0.4472.120
- Test specific fixes related to
4.14.0
and previous releases- Using a new engine to strip Markdown (PR #3917)
Release
- Verify on WebChat-release-testing
- Make sure you are on
master
~orqfe
~ branch, rungit status
to check -
git pull
- Verify
/package.json
,/package-lock.json
, andCHANGELOG.md
has a version of4.14.0
-
git log
- Verify the latest commit is
af70aaa
- Verify the latest commit is
-
git tag v4.14.0
-
git push -u upstream v4.14.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 CDN:
curl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.14.0/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -A
- From local:
cat webchat.js | openssl dgst -sha384 -binary | openssl base64 -A
- From CDN:
- Attach assets including 3 JS files,
stats.json
and 5 tarballs- You can copy the artifacts from
webchat-release-testing/drops
- Tarballs download from npmjs
curl -L -o botframework-directlinespeech-sdk-4.14.0.tgz https://registry.npmjs.org/botframework-directlinespeech-sdk/-/botframework-directlinespeech-sdk-4.14.0.tgz curl -L -o botframework-webchat-4.14.0.tgz https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.14.0.tgz curl -L -o botframework-webchat-core-4.14.0.tgz https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.14.0.tgz curl -L -o botframework-webchat-api-4.14.0.tgz https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.14.0.tgz curl -L -o botframework-webchat-component-4.14.0.tgz https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.14.0.tgz
- You can copy the artifacts from
- Subresource Integrity can be generated by
- Kick off release to NPM
- Kick off release to CDN (CDN CUTOFF TIME IS 2PM PST)
- Prepare the email for approval
- Release name is
[[PROD]]Push-WebChat-to-Prod-CDN-with-approval
- The build number is
257964
, release number is39
and commit isaf70aaa
- Script build number is
131156
(this is fixed)
- Send reminder email to approvers
- Retain the build indefinitely
Post-release verification - complete within 30mins / 1hr of the release
- 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 botframework-webchat@4.14.0
(just install the bundle package) -
npm run build
- Nuke
- Others
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.14.0, with subresource integrity
<script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/latest/webchat-es5.js" ></script>
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.14.0, with subresource integrity
-
npx serve
(at repo root) - Go to http://localhost:5000/ to test, including IE11
Notification to interested parties
- Update partner page on Adaptive Cards doc
- Notify related parties for the following fixes
- SDK team
- Omnichannel
- Pooja
- Update root README.md with feature notes – Note: PR will be combined with post-release checklist PR
- Update https://github.com/microsoft/BotFramework-sdk/issues/6334
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 sure
CHANGELOG.md
and version number bump is cherry-picked tomaster
~- ~
git checkout master
~ - ~
git cherry-pick XXX
(the commitish for bumping version number andCHANGELOG.md
)~
- ~
- Correct the date for 4.14.0 in
CHANGELOG.md
- 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
- Bump
package.json
to4.14.1-0
- Run
npm version prepatch --no-git-tag-version
- Run
- Update
servicingPlan.json
- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.14.0
- Update all samples to use
4.14.0
- 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
The PR is https://github.com/microsoft/BotFramework-WebChat/pull/XXX
Applies to major/minor releases
Bump all dependencies to latest version
On each package.json
under root and /packages/
:
- All NPM packages (
@babel/*
,jest
,lerna
,typescript
,webpack
, etc) in PR #XXX- Don’t bump the following packages
react
,react-dom
,redux
,redux-saga
,@types/react
sanitize-html
- When bumping
sanitize-html
, make surebundle/postinstall
scripts continue to works as we only transpile a singleindex.js
file and assume thesanitize-html
package will keep it that way
- When bumping
serve
- Because newer version could be buggy on Windows
rxjs@5
onplayground
webpack@4
- Starting from version 5, they dropped Node.js polyfills for browsers
- Keep the following dependencies because their latest version requires
webpack@5
microsoft-cognitiveservices-speech-sdk
- We will bump it in a separate PR
adaptivecards
- We will bump it in a separate PR
expect@25
undertest/harness
- The newer version requires Node.js (
graceful-fs
)
- The newer version requires Node.js (
- Don’t bump the following packages
- Run
npm audit fix
to make sure everything is fixed - Test under IE11 to make sure all dependencies are working
- List steps to verify bumping
microsoft-cognitiveservices-speech-sdk
Obstacles to bump npm
As of writing, npm@7.19.1
(bundled by node@16
) has issue on running postinstall
script.
Also, microsoft-cognitiveservices-speech-sdk@1.17.0
is peer-depends on @angular/common
, which npm@7
will automatically install missing peer dependencies. Track the issue here.
We need at least both issues to be fixed before we can jump to npm@7
.
Bump Docker image
The Docker image can be found at root
docker-compose.yml
andDockerfile*
.
- Docker container for headless Chrome (#XXX)
- They recently moved from
3.14.159-xxx
tag scheme to a more sensible87.0
tag scheme - Tags can be found at https://hub.docker.com/r/selenium/node-chrome/tags
- Preferably in separate PR because screenshots change can be large occasionally
- Run tests locally, as the screenshots can be slightly different
- They recently moved from
Issue Analytics
- State:
- Created 2 years ago
- Comments:6 (4 by maintainers)
Top GitHub Comments
FYI, I tested transpiling
sanitize-html@2.4.0
and it works on IE11. 😉@christopherjbaker 4.14.1 is out.
sanitize-html
is bumped to2.4.0
. Now with zero production-hitting vulnerabilities (as of now). Also works with IE11. Everyone should be happy. 😉FYI,
sanitize-html@2.5.0
was released just an hour ago.