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

Fix/apply-global-patches-after-focus-install #17212

Merged
merged 3 commits into from
Mar 11, 2025

Conversation

matejkriz
Copy link
Member

@matejkriz matejkriz commented Feb 25, 2025

Description

Packages are automatically patched by postinstall script only if yarn install is called but not in case of yarn workspaces focus.

Unfortunately, this cannot be applied globally after every yarn workspaces focus because it’s not possible to apply a patch to a package that hasn’t been installed, which results in an error. Therefore, as a safer option for all releases, we run a full yarn install, while for tests and dev builds, we keep the faster focus install.

@matejkriz matejkriz marked this pull request as ready for review February 25, 2025 09:14
@matejkriz matejkriz added the mobile Suite Lite issues and PRs label Feb 25, 2025
@matejkriz matejkriz requested review from karliatto, Nodonisko and a team February 25, 2025 09:15
@matejkriz matejkriz force-pushed the fix/apply-global-patches-after-focus-install branch from fffe208 to b85cfbb Compare February 25, 2025 09:17
Copy link
Member

@vdovhanych vdovhanych left a comment

Choose a reason for hiding this comment

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

should this also be updated then?

yarn workspaces focus @trezor/suite-web @trezor/connect-iframe @trezor/connect-web @trezor/suite-data @trezor/suite-build

@matejkriz
Copy link
Member Author

matejkriz commented Feb 25, 2025

should this also be updated then?

yarn workspaces focus @trezor/suite-web @trezor/connect-iframe @trezor/connect-web @trezor/suite-data @trezor/suite-build

It is staging release but that build is then used also for production directly, right? So yes, I will change it there too stay on a safe side.

1006e6a

Copy link

github-actions bot commented Feb 25, 2025

🚀 Expo preview is ready!

  • Project → trezor-suite-preview
  • Platforms → android, ios
  • Scheme → trezorsuitelite
  • Runtime Version → 26
  • More info

Learn more about 𝝠 Expo Github Action

@matejkriz matejkriz requested a review from a team February 25, 2025 09:24
@trezor trezor deleted a comment from coderabbitai bot Feb 25, 2025
@matejkriz matejkriz added the no-project This label is used to specify that PR doesn't need to be added to a project label Feb 25, 2025
Copy link

coderabbitai bot commented Feb 25, 2025

Walkthrough

The pull request updates several GitHub Actions workflows by modifying the dependency installation steps. In some workflows, the previous selective installation using yarn workspaces focus has been replaced with yarn install --immutable, ensuring that all dependencies and global patches are applied during the build process. In other workflows, the command for installing dependencies via yarn workspaces focus is now followed by the npx patch-package command, immediately applying any necessary global patches. These changes are applied consistently across workflows for Connect, suite-native (preview, develop, production), and suite-desktop-web staging, without altering the public or exported entity declarations.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bb350b3 and b834966.

📒 Files selected for processing (5)
  • .github/actions/release-connect/action.yml (1 hunks)
  • .github/workflows/build-suite-native-preview.yml (1 hunks)
  • .github/workflows/release-suite-desktop-web-staging.yml (1 hunks)
  • .github/workflows/release-suite-native-develop.yml (1 hunks)
  • .github/workflows/release-suite-native-production.yml (3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (7)
  • GitHub Check: build-deploy
  • GitHub Check: run-desktop-tests (@group=passphrase, trezor-user-env-unix)
  • GitHub Check: EAS Update
  • GitHub Check: run-desktop-tests (@group=device-management, trezor-user-env-unix)
  • GitHub Check: Setup and Cache Dependencies
  • GitHub Check: build-web
  • GitHub Check: Analyze with CodeQL (javascript)
🔇 Additional comments (7)
.github/actions/release-connect/action.yml (1)

61-61: Switch to Full Dependency Installation
Changing from a selective workspace focus to yarn install --immutable ensures that all dependencies—including global patches—are applied during the release. This aligns with the PR’s objective to enhance build safety and reliability.

.github/workflows/build-suite-native-preview.yml (1)

51-53: Ensure Global Patches Are Applied
Adding npx patch-package immediately after yarn workspaces focus @suite-native/app guarantees that any necessary global patches are applied in the preview build. This change improves consistency with other workflows and boosts overall build integrity.

.github/workflows/release-suite-native-develop.yml (1)

35-38: Apply Global Patches After Library Installation
Modifying the "Install libs" step to include npx patch-package right after focusing on the workspace ensures that all required patches are applied before further steps. This adjustment strengthens the reliability of the develop build.

.github/workflows/release-suite-desktop-web-staging.yml (1)

171-172: Switch to Comprehensive Dependency Installation
Replacing the previous selective install with yarn install --immutable ensures that all global patches are applied during the staging build for suite-web. Please verify that this change does not negatively impact any workspace-specific behaviors.

.github/workflows/release-suite-native-production.yml (3)

40-43: Apply Global Patches in iOS Build
Appending npx patch-package after yarn workspaces focus @suite-native/app in the iOS job ensures that all necessary global patches are applied before building. This change increases build robustness for the iOS release.


70-73: Ensure Global Patches for Android Build
The Android build job now applies npx patch-package right after installing the @suite-native/app libraries, ensuring global patches are applied. It is recommended to monitor for any potential patch conflicts during the build process.


105-108: Apply Global Patches in Android APK Workflow
Including npx patch-package in the Android APK build section ensures that patches are consistently applied, which is critical for release quality. Test to confirm that this approach does not introduce unexpected runtime issues.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@@ -58,7 +58,7 @@ runs:
shell: bash
run: |
echo -e "\nenableScripts: false" >> .yarnrc.yml
yarn workspaces focus @trezor/connect-iframe @trezor/connect-web @trezor/connect-popup @trezor/connect-webextension @trezor/connect-explorer-theme @trezor/connect-explorer
yarn install --immutable # focus install is not used here to make sure that all global patches are applied for the release.
Copy link
Member

Choose a reason for hiding this comment

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

👍

run: yarn workspaces focus @suite-native/app
run: |
yarn workspaces focus @suite-native/app
npx patch-package # Apply global patches.
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe we can add this as postinstall to @suite-native/app

@matejkriz
Copy link
Member Author

/rebase

Copy link

- Packages are automatically patched by postinstall script only if `yarn install` is called but not in case of yarn workspaces focus.
@trezor-ci trezor-ci force-pushed the fix/apply-global-patches-after-focus-install branch from 1006e6a to b834966 Compare March 10, 2025 13:55
@matejkriz
Copy link
Member Author

I'm pretty sure that this can't break the failing tests, so merging.

@matejkriz matejkriz merged commit 612976f into develop Mar 11, 2025
53 of 55 checks passed
@matejkriz matejkriz deleted the fix/apply-global-patches-after-focus-install branch March 11, 2025 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mobile Suite Lite issues and PRs no-project This label is used to specify that PR doesn't need to be added to a project
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants