Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.18.0 Release checklist #5239

Open
64 of 79 tasks
compulim opened this issue Jul 11, 2024 · 2 comments
Open
64 of 79 tasks

4.18.0 Release checklist #5239

compulim opened this issue Jul 11, 2024 · 2 comments
Assignees
Labels
release Release checklist

Comments

@compulim
Copy link
Contributor

compulim commented Jul 11, 2024

Checklist

Build

  1. Bump MockBot to latest Bot Framework SDK release (not needed for patch release)
  2. Bump botframework-directlinejs to 0.15.5 in PR #XXX
  3. Update README.md with feature notes
  4. Bump to 4.18.0
    • Update CHANGELOG.md to mark specific changes in 4.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
  5. 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 391743 and commit is 20f73e0
  6. Run or wait for BotFramework-WebChat-Release-Testing pipeline to complete
  7. Wait for WebChat-release-testing pipeline to complete
    • The release ID is 531
  8. 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
  9. Add manual tests to WebChat-release-testing as needed

Test

The test should run against the build artifacts from Azure Pipelines.

  1. 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
  2. Test specific fixes related to 4.18.0 and 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

  1. Make sure you are on main or qfe branch, run git status to check
  2. git pull -ff
  3. Verify /package.json, /package-lock.json, and CHANGELOG.md has a version of 4.18.0
  4. git log
    • Verify the latest commit is 20f73e0
  5. git tag v4.18.0
  6. git push -u upstream v4.18.0
    • You do not need to kick off a build again, use the previous build
  7. 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
    • 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.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
        
  8. Kick off release to NPM
  9. Kick off release to CDN (cutoff at 10 PM PST, Sun-Wed only)
    1. Prepare the message for approval
    2. Send message to approvers
    3. Retain the build indefinitely

Post-release verification - complete within 30 minutes after release to NPM

  • Test using webchat-release-testing
    1. Clone https://github.com/corinagum/WebChat-release-testing/
    2. 01.create-react-app
      1. Nuke 01.create-react-app/node_modules
      2. npm install
      3. npm install [email protected]
      4. npm install [email protected]
      5. npm run build
      6. Repeat for 06.esbuild
      7. Repeat for 07.webpack4
      8. Repeat for 08.webpack5
    3. 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>
    4. npx serve (at repo root)
    5. Go to http://localhost:5000/ to test

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
    • git 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-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.

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
  • Run npm run bump
  • Run npm audit fix to 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.yml and Dockerfile*.

  • Docker container for headless Chrome in PR #XXXX
@dinowang
Copy link

dinowang commented Jul 23, 2024

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>
image

@CaselIT
Copy link

CaselIT commented Nov 18, 2024

It seems that are still not available

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release checklist
Projects
None yet
Development

No branches or pull requests

3 participants