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(package): moves yoga-icons dep to peer dependencies #869

Merged
merged 2 commits into from
Feb 11, 2025
Merged

Conversation

rafael-rollo
Copy link
Contributor

JIRA Issue

Description 📄

This PR only proposes making the dependency on @gympass/yoga-icons a peer dependency in @gympass/yoga.

Since client applications generally tend to depend directly on the @gympass/yoga-icons package, its presence as a direct dependency on the @gympass/yoga package often causes the application to have dependency duplication problems. In many cases, package managers such as Yarn do not resolve the conflict (see duplicate package errors) even by running deduplication programs, which can be problematic for optimizing the js bundle.

Below is evidence collected from initiatives in the Wellhub app.

Platforms 📲

  • Web
  • Mobile

Type of change 🔍

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
    • Maybe to clarify the need to install the icons package alongside yoga?

How Has This Been Tested? 🧪

  • Unit Test
  • Snapshot Test
  • By solving dependency duplicates in a client app

Checklist: 🔍

  • My code follows the contribution guide of this project Contributing Guide
  • Layout matches design prototype: FIGMA
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules
  • I have checked my code and corrected any misspellings

Screenshots 📸

  • After dedupe with yoga-icons base dependency pointing to a version lower than the yoga sub-dependency:
error @gympass/yoga-icons (found 4 copies)
warn   0.9.0 end-user-native/node_modules/@gympass/yoga-old/node_modules/@gympass/yoga-icons
warn   1.23.1 end-user-native/node_modules/@gympass/yoga-icons
warn   1.26.0 end-user-native/node_modules/@gympass/yoga/node_modules/@gympass/yoga-icons
warn   1.26.0 end-user-native/node_modules/@yoga-inner/native/node_modules/@gympass/yoga-icons
  • After dedupe with yoga-icons base dependency pointing to a greater version

unnamed

> deduplication solved 2 copies

  • After moving to peerDependencies
Screenshot 2025-01-29 at 16 42 41

> no duplication risk

Copy link
Collaborator

@wellhub-gsevla wellhub-gsevla left a comment

Choose a reason for hiding this comment

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

Besides my comment about the optional flag, I think you are absolutely right. Well done!

packages/yoga/package.json Outdated Show resolved Hide resolved
@alvim-wh alvim-wh merged commit db14a57 into master Feb 11, 2025
4 checks passed
@alvim-wh alvim-wh deleted the CODEME-1567 branch February 11, 2025 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants