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

[PM-12989] Create process for qa to build client with particular sdk version #11601

Conversation

coroiu
Copy link
Contributor

@coroiu coroiu commented Oct 17, 2024

🎟️ Tracking

Depends on bitwarden/sdk-internal#5

📔 Objective

This PR adds two things:

SDK version string

All clients now provide some way of displaying the underlying SDK version

  • Desktop: Available under Help -> About Bitwarden
  • Browser: Available under Settings -> About -> About Bitwarden
  • CLI: Printed as part of bw --version
  • Web: Available by running await __version() in the console

CI version override

Users can now trigger manual CI build with an optional SDK branch override. This override will download the latest successful SDK build for that branch and use it to build the client.

image

📸 Screenshots

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

@coroiu coroiu requested a review from a team as a code owner October 17, 2024 11:55
Copy link

codecov bot commented Oct 17, 2024

Codecov Report

Attention: Patch coverage is 13.46154% with 45 lines in your changes missing coverage. Please review.

Project coverage is 33.47%. Comparing base (a07b072) to head (2d1c698).
Report is 1 commits behind head on main.

✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
apps/desktop/src/platform/main/version.main.ts 0.00% 8 Missing ⚠️
...s/desktop/src/platform/services/version.service.ts 0.00% 8 Missing ⚠️
apps/web/src/app/platform/version.service.ts 45.45% 5 Missing and 1 partial ⚠️
apps/cli/src/program.ts 0.00% 5 Missing ⚠️
...up/settings/about-dialog/about-dialog.component.ts 0.00% 3 Missing ⚠️
apps/desktop/src/app/services/init.service.ts 0.00% 3 Missing ⚠️
apps/desktop/src/platform/preload.ts 0.00% 3 Missing ⚠️
apps/desktop/src/main.ts 0.00% 2 Missing ⚠️
apps/desktop/src/main/menu/menu.about.ts 0.00% 2 Missing ⚠️
apps/web/src/app/core/init.service.ts 33.33% 1 Missing and 1 partial ⚠️
... and 2 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #11601      +/-   ##
==========================================
- Coverage   33.48%   33.47%   -0.01%     
==========================================
  Files        2851     2854       +3     
  Lines       89283    89335      +52     
  Branches    17008    17012       +4     
==========================================
+ Hits        29900    29909       +9     
- Misses      57029    57071      +42     
- Partials     2354     2355       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


🚨 Try these New Features:

Copy link
Contributor

github-actions bot commented Oct 17, 2024

Logo
Checkmarx One – Scan Summary & Detailsd4f9fb50-1975-43c4-9027-a2b28507c7c8

New Issues

Severity Issue Source File / Package Checkmarx Insight
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1012 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1356 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 665 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-cli.yml: 465 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1505 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-web.yml: 307 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-web.yml: 133 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-browser.yml: 177 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-web.yml: 386 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-web.yml: 228 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1456 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-browser.yml: 414 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-browser.yml: 458 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 342 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-web.yml: 338 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 1101 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 191 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 853 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-desktop.yml: 357 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-cli.yml: 276 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-browser.yml: 359 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...
LOW Unpinned Actions Full Length Commit SHA /build-cli.yml: 121 Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...

Fixed Issues

Severity Issue Source File / Package
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health-members.component.html: 50
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health-members.component.html: 55
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health-members.component.html: 45
MEDIUM Client_Privacy_Violation /libs/tools/generator/components/src/credential-generator-history.component.html: 3
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 684
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 657
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 670
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 564
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 580
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 496
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 502
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 557
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 514
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 653
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 409
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 710
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 209
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 656
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1644
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 2768
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 136
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 2873
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 643
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 644
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 645
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 646
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 647
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 588
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1719
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1719
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 436
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 453
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 368
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 413
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 548
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1718
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 368
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 222
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /libs/vault/src/components/password-history-view/password-history-view.component.html: 6
MEDIUM Client_Privacy_Violation /libs/vault/src/components/password-history-view/password-history-view.component.html: 6
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health-members-uri.component.html: 35
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health-members-uri.component.html: 45
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health-members-uri.component.html: 40
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health.component.html: 50
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health.component.html: 45
MEDIUM Client_Privacy_Violation /apps/web/src/app/tools/access-intelligence/password-health.component.html: 40
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 817
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1072
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 816
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1143
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1125
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1106
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1096
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1044
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1190
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1102
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1083
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1043
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1178
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1167
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1078
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1073
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 1068
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 761
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 128
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 84
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 218
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 222
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 207
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 36
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 763
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 349
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 314
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 364
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 323
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 438
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/overlay/inline-menu/pages/list/autofill-inline-menu-list.ts: 806
MEDIUM Client_Privacy_Violation

More results are available on AST platform

@coroiu coroiu force-pushed the PM-12989-create-process-for-qa-to-build-client-with-particular-sdk-version branch 2 times, most recently from 0993fe9 to d07fe7c Compare October 17, 2024 12:20
@coroiu coroiu force-pushed the PM-12989-create-process-for-qa-to-build-client-with-particular-sdk-version branch from d07fe7c to 276da3e Compare October 17, 2024 12:23
Base automatically changed from PM-11764-implement-account-switching-and-sdk-initialization to main October 18, 2024 14:15
@coroiu coroiu dismissed michalchecinski’s stale review October 18, 2024 14:15

The base branch was changed.

@coroiu coroiu requested review from a team as code owners October 18, 2024 14:15
audreyality
audreyality previously approved these changes Oct 29, 2024
Copy link
Contributor

@audreyality audreyality left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻 Looking good!
🌱 Thank you for moving the error handling into the service layer!

There's a nit, but it's cool if we circle back. I don't think it's worth blocking this PR over. :)

Copy link
Member

@justindbaur justindbaur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can be for the future but I love the idea of having VersionService available with the exact same interface for all the clients and then deprecating the method from PlatformUtilsService. I want to slim down what is offered from PlatformUtilsService.

.github/workflows/build-browser.yml Outdated Show resolved Hide resolved
.github/workflows/build-browser.yml Outdated Show resolved Hide resolved
apps/web/src/app/platform/version.service.ts Show resolved Hide resolved
apps/web/src/app/platform/version.service.ts Outdated Show resolved Hide resolved
justindbaur
justindbaur previously approved these changes Nov 4, 2024
@coroiu coroiu added the needs-qa Marks a PR as requiring QA approval label Nov 5, 2024
justindbaur
justindbaur previously approved these changes Nov 5, 2024
package.json Outdated Show resolved Hide resolved
audreyality
audreyality previously approved these changes Nov 7, 2024
@coroiu coroiu dismissed stale reviews from audreyality and justindbaur via f241b15 November 15, 2024 10:01
@coroiu coroiu removed the needs-qa Marks a PR as requiring QA approval label Nov 15, 2024
@coroiu coroiu merged commit 33f7643 into main Nov 19, 2024
133 of 134 checks passed
@coroiu coroiu deleted the PM-12989-create-process-for-qa-to-build-client-with-particular-sdk-version branch November 19, 2024 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants