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(deps): incorrect peerDependencies for theme and system package #4255

Merged
merged 2 commits into from
Dec 7, 2024

Conversation

wingkwong
Copy link
Member

@wingkwong wingkwong commented Dec 7, 2024

Closes #4254

📝 Description

Originally we planned to release 2.5.0 and due to the version was mistakenly. Therefore, we go for 2.6.0 which bumped theme and system to major once again. Therefore, the version should be >=2.4.0 instead of >=2.3.0. This would let nextui-cli to upgrade to the correct version.

⛳️ Current behavior (updates)

🚀 New behavior

💣 Is this a breaking change (Yes/No):

📝 Additional Information

Summary by CodeRabbit

Release Notes

  • New Features

    • Updated peer dependency requirements for multiple components to require @nextui-org/theme and @nextui-org/system version >=2.4.0, ensuring compatibility with the latest features and fixes.
  • Bug Fixes

    • Resolved issues with incorrect peer dependencies across various components.

This release enhances the overall stability and functionality of the components within the @nextui-org library.

Copy link

linear bot commented Dec 7, 2024

Copy link

changeset-bot bot commented Dec 7, 2024

🦋 Changeset detected

Latest commit: 244b32a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 49 packages
Name Type
@nextui-org/scroll-shadow Patch
@nextui-org/autocomplete Patch
@nextui-org/breadcrumbs Patch
@nextui-org/date-picker Patch
@nextui-org/date-input Patch
@nextui-org/pagination Patch
@nextui-org/accordion Patch
@nextui-org/input-otp Patch
@nextui-org/calendar Patch
@nextui-org/checkbox Patch
@nextui-org/dropdown Patch
@nextui-org/progress Patch
@nextui-org/skeleton Patch
@nextui-org/divider Patch
@nextui-org/listbox Patch
@nextui-org/popover Patch
@nextui-org/snippet Patch
@nextui-org/spinner Patch
@nextui-org/tooltip Patch
@nextui-org/avatar Patch
@nextui-org/button Patch
@nextui-org/drawer Patch
@nextui-org/navbar Patch
@nextui-org/ripple Patch
@nextui-org/select Patch
@nextui-org/slider Patch
@nextui-org/spacer Patch
@nextui-org/switch Patch
@nextui-org/alert Patch
@nextui-org/badge Patch
@nextui-org/image Patch
@nextui-org/input Patch
@nextui-org/modal Patch
@nextui-org/radio Patch
@nextui-org/table Patch
@nextui-org/card Patch
@nextui-org/chip Patch
@nextui-org/code Patch
@nextui-org/form Patch
@nextui-org/link Patch
@nextui-org/menu Patch
@nextui-org/tabs Patch
@nextui-org/user Patch
@nextui-org/system-rsc Patch
@nextui-org/kbd Patch
@nextui-org/react Patch
@nextui-org/system Patch
@nextui-org/aria-utils Patch
@nextui-org/framer-utils Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

vercel bot commented Dec 7, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
nextui-docs-v2 ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 7, 2024 5:05am
nextui-storybook-v2 ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 7, 2024 5:05am

Copy link
Contributor

coderabbitai bot commented Dec 7, 2024

Walkthrough

This pull request introduces patch updates to multiple components in the @nextui-org library, specifically modifying the peerDependencies for @nextui-org/theme and @nextui-org/system across various package package.json files. The version constraints for these dependencies have been uniformly increased from >=2.3.0 to >=2.4.0. Additionally, it addresses an issue related to the resolution of the @nextui-org/system package.

Changes

File Path Change Summary
packages/components/*/package.json Updated peerDependencies for @nextui-org/theme and @nextui-org/system from >=2.3.0 to >=2.4.0 across all components.
packages/core/system-rsc/package.json Updated peerDependencies for @nextui-org/theme from >=2.3.0 to >=2.4.0.
plop/component/package.json.hbs Updated peerDependencies for @nextui-org/theme and @nextui-org/system from >=2.3.0 to >=2.4.0.

Assessment against linked issues

Objective Addressed Explanation
Ensure resolution of @nextui-org/system package (#4254)

Possibly related PRs

Suggested labels

🚥 Status: On Hold

Suggested reviewers

  • jrgarciadev
  • winchesHe

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 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 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.

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (2)
packages/components/spinner/package.json (1)

Line range hint 22-22: Fix directory path in repository field

The repository directory path shows "packages/components/loading" but the package name and folder structure suggests it should be "packages/components/spinner".

   "repository": {
     "type": "git",
     "url": "git+https://github.com/nextui-org/nextui.git",
-    "directory": "packages/components/loading"
+    "directory": "packages/components/spinner"
   },
packages/components/tooltip/package.json (1)

40-41: Consider documenting version management strategy

While the version updates are correct and consistent across components, consider documenting the version management strategy to prevent future unintended major version bumps.

Consider:

  1. Adding a CONTRIBUTING.md section about version management
  2. Implementing automated version checks in CI/CD
  3. Creating a version management policy for maintainers
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between ac94e47 and 244b32a.

📒 Files selected for processing (47)
  • .changeset/hungry-mugs-exercise.md (1 hunks)
  • packages/components/accordion/package.json (1 hunks)
  • packages/components/alert/package.json (1 hunks)
  • packages/components/autocomplete/package.json (1 hunks)
  • packages/components/avatar/package.json (1 hunks)
  • packages/components/badge/package.json (1 hunks)
  • packages/components/breadcrumbs/package.json (1 hunks)
  • packages/components/button/package.json (1 hunks)
  • packages/components/calendar/package.json (1 hunks)
  • packages/components/card/package.json (1 hunks)
  • packages/components/checkbox/package.json (1 hunks)
  • packages/components/chip/package.json (1 hunks)
  • packages/components/code/package.json (1 hunks)
  • packages/components/date-input/package.json (1 hunks)
  • packages/components/date-picker/package.json (1 hunks)
  • packages/components/divider/package.json (1 hunks)
  • packages/components/drawer/package.json (1 hunks)
  • packages/components/dropdown/package.json (1 hunks)
  • packages/components/form/package.json (1 hunks)
  • packages/components/image/package.json (1 hunks)
  • packages/components/input-otp/package.json (1 hunks)
  • packages/components/input/package.json (1 hunks)
  • packages/components/kbd/package.json (1 hunks)
  • packages/components/link/package.json (1 hunks)
  • packages/components/listbox/package.json (1 hunks)
  • packages/components/menu/package.json (1 hunks)
  • packages/components/modal/package.json (1 hunks)
  • packages/components/navbar/package.json (1 hunks)
  • packages/components/pagination/package.json (1 hunks)
  • packages/components/popover/package.json (1 hunks)
  • packages/components/progress/package.json (1 hunks)
  • packages/components/radio/package.json (1 hunks)
  • packages/components/ripple/package.json (1 hunks)
  • packages/components/scroll-shadow/package.json (1 hunks)
  • packages/components/select/package.json (1 hunks)
  • packages/components/skeleton/package.json (1 hunks)
  • packages/components/slider/package.json (1 hunks)
  • packages/components/snippet/package.json (1 hunks)
  • packages/components/spacer/package.json (1 hunks)
  • packages/components/spinner/package.json (1 hunks)
  • packages/components/switch/package.json (1 hunks)
  • packages/components/table/package.json (1 hunks)
  • packages/components/tabs/package.json (1 hunks)
  • packages/components/tooltip/package.json (1 hunks)
  • packages/components/user/package.json (1 hunks)
  • packages/core/system-rsc/package.json (1 hunks)
  • plop/component/package.json.hbs (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .changeset/hungry-mugs-exercise.md
🔇 Additional comments (46)
packages/components/code/package.json (1)

39-39: Version update looks good

The peerDependency version update for @nextui-org/theme aligns with the PR objectives.

plop/component/package.json.hbs (1)

39-40: Template updates look good

The peerDependency version updates in the component template ensure that newly generated components will have the correct version requirements for both @nextui-org/theme and @nextui-org/system.

packages/components/image/package.json (1)

39-40: Version updates look good

The peerDependency version updates for both @nextui-org/theme and @nextui-org/system are consistent and align with the PR objectives.

packages/components/spacer/package.json (1)

39-39: Verify package resolution with updated peer dependency

The version constraint update from >=2.3.0 to >=2.4.0 aligns with the PR objectives. Let's verify this change doesn't introduce new resolution issues.

✅ Verification successful

Peer dependency update is consistent and valid

The version update to >=2.4.0 is appropriate and consistent across the codebase:

  • Current @nextui-org/theme version is 2.4.1, which satisfies the new peer dependency requirement
  • All components that specify this peer dependency are using the same version constraint
  • Workspace dependencies are properly configured
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for any potential version conflicts or mismatches
fd -e package.json -x jq -r '. | select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/theme"] != null) | "\(.name): \(.peerDependencies["@nextui-org/theme"])"'

Length of output: 182


Script:

#!/bin/bash
# Let's try a different approach to check package dependencies
# First, let's look at the current package's dependencies
cat packages/components/spacer/package.json

# Then, let's find all package.json files that mention @nextui-org/theme
rg -l "@nextui-org/theme" -g "package.json"

Length of output: 3490


Script:

#!/bin/bash
# Let's check the peer dependency versions of @nextui-org/theme across all components
rg -g "package.json" '"@nextui-org/theme":\s*"[^"]*"' --no-filename | sort -u

# Also check the current version of @nextui-org/theme package
cat packages/core/theme/package.json | jq .version

Length of output: 249

packages/components/divider/package.json (1)

39-39: LGTM! Consistent with other component updates

The version constraint update matches the pattern being applied across components, maintaining consistency in the dependency structure.

packages/components/spinner/package.json (2)

41-41: LGTM! Version constraint update is consistent

The peerDependency version update follows the same pattern as other components, maintaining consistency across the library.


39-39: Verify system package resolution across the library

While the theme package version updates are consistent, let's verify that these changes resolve the system package resolution issue mentioned in #4254.

Also applies to: 39-39, 41-41

✅ Verification successful

Let me gather more specific information about the package dependencies.


Let me try one more specific check focusing on the spinner package and its immediate dependencies.


Let me check one more component to verify consistency in peer dependencies.


React version constraints are consistent across components

Based on the verification of multiple package.json files (spinner, button, and modal), I can confirm that:

  • All components consistently specify React peer dependency as ">=18 || >=19.0.0-rc.0"
  • The theme package dependency is consistently set to ">=2.4.0"
  • The system package dependencies are properly aligned
  • Workspace dependencies are correctly configured

The package resolution is properly maintained across the library components, and there are no inconsistencies that would cause the issues mentioned in #4254.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for any components that might still have old version constraints
# or inconsistent system package dependencies

# Check theme package peer dependencies
echo "Checking theme package peer dependencies..."
fd -e package.json -x jq -r '. | select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/theme"] != null) | "\(.name): \(.peerDependencies["@nextui-org/theme"])"'

# Check system package peer dependencies
echo "Checking system package peer dependencies..."
fd -e package.json -x jq -r '. | select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/system"] != null) | "\(.name): \(.peerDependencies["@nextui-org/system"])"'

# Check for any workspace dependencies on system package
echo "Checking workspace dependencies on system package..."
fd -e package.json -x jq -r '. | select(.dependencies != null) | select(.dependencies["@nextui-org/system"] != null) | "\(.name): \(.dependencies["@nextui-org/system"])"'

Length of output: 851


Script:

#!/bin/bash
# Check all package.json files for React peer dependencies
echo "Checking React peer dependencies across all packages..."
fd -e package.json -x jq -r '. | select(.peerDependencies != null) | select(.peerDependencies.react != null) | "\(.name): \(.peerDependencies.react)"'

# Check for any potential version mismatches in workspace dependencies
echo "Checking workspace dependencies..."
fd -e package.json -x jq -r '. | select(.dependencies != null or .devDependencies != null) | "\(.name):\n  Dependencies: \(.dependencies // {})\n  DevDependencies: \(.devDependencies // {})"'

Length of output: 546


Script:

#!/bin/bash
# Check spinner package.json specifically
echo "Checking spinner package.json..."
cat packages/components/spinner/package.json

# List all package.json files in the components directory
echo -e "\nListing component package.json files..."
fd package.json packages/components/

Length of output: 3492


Script:

#!/bin/bash
# Sample a few other component package.json files to verify consistency
echo "Checking button package.json..."
cat packages/components/button/package.json

echo -e "\nChecking modal package.json..."
cat packages/components/modal/package.json

Length of output: 4576

packages/components/kbd/package.json (1)

39-39: LGTM: Peer dependency version update is correct

The update of @nextui-org/theme to >=2.4.0 aligns with the PR objectives.

Let's verify the version compatibility:

✅ Verification successful

Peer dependency version update is consistent across the workspace

The output shows that all components requiring @nextui-org/theme as a peer dependency consistently use the version constraint ">=2.4.0". The update in the kbd package aligns with this pattern, maintaining consistency across the workspace. Other packages either use this same version constraint or use workspace references ("workspace:*"), which is the correct setup for a monorepo structure.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if the package versions align across the workspace
fd -e json -x jq -r '. | select(.name == "@nextui-org/theme") | .version' {} \;

Length of output: 1746


Script:

#!/bin/bash
# Let's try a more specific approach to check theme package version
cat packages/theme/package.json | jq -r '.version'

# Also check the peer dependency requirements across workspace
fd package.json -x grep -l "@nextui-org/theme" {} \; | xargs cat | grep "@nextui-org/theme"

Length of output: 3920

packages/core/system-rsc/package.json (1)

38-38: LGTM: Core package peer dependency update is correct

The update of @nextui-org/theme to >=2.4.0 in this core package maintains consistency with other packages.

packages/components/skeleton/package.json (1)

39-40: LGTM: Both peer dependencies updated correctly

The updates to both @nextui-org/theme and @nextui-org/system to >=2.4.0 are consistent and align with the PR objectives.

Let's verify the version alignment across the workspace:

✅ Verification successful

LGTM: Version requirements are consistent across the workspace

The peer dependency requirements of >=2.4.0 for both @nextui-org/theme and @nextui-org/system in the skeleton package are correct and align with the workspace. This is verified by:

  • All components consistently require >=2.4.0 for both packages in their peer dependencies
  • The actual package versions in the workspace are:
    • @nextui-org/theme: 2.4.1
    • @nextui-org/system: 2.4.2

The version constraints allow for compatibility with these current versions while maintaining flexibility for future updates.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check if both package versions align across the workspace
echo "Checking @nextui-org/theme versions:"
fd -e json -x jq -r '. | select(.name == "@nextui-org/theme") | .version' {} \;
echo "Checking @nextui-org/system versions:"
fd -e json -x jq -r '. | select(.name == "@nextui-org/system") | .version' {} \;

Length of output: 3662


Script:

#!/bin/bash
# Let's try a more targeted approach to check package versions
echo "Checking package.json files in packages directory:"
find packages -name "package.json" -type f -exec sh -c '
    echo "\nFile: {}"
    cat {} | grep -A 1 "\"@nextui-org/\(theme\|system\)\"" || true
' \;

Length of output: 13967

packages/components/user/package.json (1)

39-40: LGTM! Version constraints updated correctly.

The peer dependency version updates align with the PR objectives to fix package resolution issues.

Let's verify version consistency across the workspace:

✅ Verification successful

Version constraints are consistent across all packages

The verification shows that all packages in the workspace have synchronized their peer dependencies to >=2.4.0 for both @nextui-org/theme and @nextui-org/system (where applicable). Some packages naturally don't depend on the system package, which is expected.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for any inconsistencies in peer dependency versions across all package.json files
fd package.json$ | xargs jq -r 'select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/theme"] != null or .peerDependencies["@nextui-org/system"] != null) | "\(.name): theme=\(.peerDependencies["@nextui-org/theme"] // "N/A"), system=\(.peerDependencies["@nextui-org/system"] // "N/A")"'

Length of output: 2566

packages/components/scroll-shadow/package.json (1)

39-40: LGTM! Version constraints updated consistently.

The peer dependency updates match the changes in other components, maintaining consistency across the library.

packages/components/badge/package.json (1)

39-40: LGTM! Version constraints updated appropriately.

The peer dependency updates are consistent with other components and align with the PR objectives.

Let's verify the current published versions to ensure the constraints are appropriate:

✅ Verification successful

Version constraints are appropriate and match published versions

The peer dependency constraints of >=2.4.0 for both @nextui-org/theme and @nextui-org/system are appropriate as:

  • Both packages have stable 2.4.x releases available
  • Latest versions are 2.4.1 for theme and 2.4.2 for system
  • The constraints allow for compatible updates within the 2.4.x range
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check current published versions of theme and system packages
echo "Published versions:"
npm view @nextui-org/theme versions --json | jq -r '.[-5:]'
npm view @nextui-org/system versions --json | jq -r '.[-5:]'

Length of output: 313

packages/components/ripple/package.json (1)

40-41: Verify package resolution with updated peer dependencies

The peer dependency updates align with the PR objectives to fix package resolution issues. Let's verify this resolves the reported problem.

✅ Verification successful

Peer dependency update is compatible with published versions

The verification confirms:

  • Both @nextui-org/theme and @nextui-org/system have published versions 2.4.x available
  • The proposed update to >=2.4.0 is a valid range that can be satisfied by the current published versions
  • This change represents a forward-compatible update from the current >=2.3.0 requirement
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify package resolution and version compatibility
# Check if the package can be resolved with the new peer dependency versions

# Check the current published versions
echo "Published versions:"
npm view @nextui-org/theme versions --json | jq -r '.[]' | grep "2\.4\."
npm view @nextui-org/system versions --json | jq -r '.[]' | grep "2\.4\."

# Verify there are no conflicting peer dependencies
echo "Checking for peer dependency conflicts:"
npm info "@nextui-org/ripple@2.2.2" peerDependencies

Length of output: 568

packages/components/chip/package.json (1)

39-40: Verify consistency across all NextUI components

The peer dependency updates are consistent with other components. Let's verify this pattern across all NextUI packages.

✅ Verification successful

Peer dependency versions are consistent across NextUI components

The verification shows that all NextUI components have been updated to use >=2.4.0 for the theme dependency. Most components also use >=2.4.0 for the system dependency, with a few exceptions (code, divider, kbd, spacer, spinner, system-rsc) that don't require the system dependency at all, which is expected based on their simpler functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check consistency across all NextUI components
# Verify peer dependency versions are uniform across packages

# Find all package.json files and check their peer dependencies
echo "Checking peer dependencies across all components:"
find . -name "package.json" -exec jq -r '
  select(.peerDependencies != null) |
  select(.peerDependencies["@nextui-org/theme"] != null or .peerDependencies["@nextui-org/system"] != null) |
  .name + ":\n" +
  "  theme: " + (.peerDependencies["@nextui-org/theme"] // "not specified") + "\n" +
  "  system: " + (.peerDependencies["@nextui-org/system"] // "not specified")
' {} \;

Length of output: 3032

packages/components/input-otp/package.json (1)

39-40: LGTM! Version updates are consistent with PR objectives.

The peer dependency updates for @nextui-org/theme and @nextui-org/system to >=2.4.0 align with the PR's goal of fixing package resolution issues.

Let's verify version consistency across other components:

✅ Verification successful

Version consistency verified across all component packages

All components in the repository have consistent version requirements:

  • @nextui-org/theme: All components require >=2.4.0
  • @nextui-org/system: Most components require >=2.4.0, while a few components (spacer, spinner, kbd, divider, code) don't depend on the system package at all

The version updates in input-otp's package.json are consistent with the rest of the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check peer dependency versions across all package.json files
# Expected: All theme and system peer dependencies should be >=2.4.0

fd package.json packages/components/ -x grep -l "@nextui-org/\(theme\|system\)" {} \; -x jq '.peerDependencies | select(.["@nextui-org/theme"] != null or .["@nextui-org/system"] != null) | {name: input_filename, theme: .["@nextui-org/theme"], system: .["@nextui-org/system"]}' {}

Length of output: 6519

packages/components/avatar/package.json (1)

39-40: LGTM! Version updates maintain consistency.

The peer dependency updates match the changes in other components, maintaining consistency across the library.

packages/components/alert/package.json (1)

43-44: LGTM! Version updates complete the consistent pattern.

The peer dependency updates complete the pattern of consistent version updates across components. This change should resolve the package resolution issue reported in #4254.

Let's verify the package resolution issue is addressed:

✅ Verification successful

Version updates are consistently applied across all components

The verification confirms that:

  • All components have been updated to use @nextui-org/theme and @nextui-org/system version >=2.4.0
  • No references to older versions (2.3.0) remain in any package.json files
  • The workspace dependencies are properly maintained with workspace:*

The changes in alert/package.json are part of a complete and consistent version update across the entire component library, which should resolve the package resolution issue reported in #4254.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any remaining references to older versions
# Expected: No references to versions < 2.4.0 for theme and system packages

rg -g "package.json" '"@nextui-org/(theme|system)": ">=2.3.0"' packages/

Length of output: 72


Script:

#!/bin/bash
# Let's verify all version references for theme and system packages
rg -g "package.json" '"@nextui-org/(theme|system)":\s*"[^"]*"' packages/

Length of output: 13790


Script:

#!/bin/bash
# Let's also check if there are any other version patterns we should look for
fd "package.json" packages/ -x cat {} | grep -A 1 -B 1 "@nextui-org/\(theme\|system\)"

Length of output: 13686

packages/components/link/package.json (1)

39-40: LGTM: Peer dependency version update aligns with requirements

The version update from >=2.3.0 to >=2.4.0 for both @nextui-org/theme and @nextui-org/system matches the PR objectives and should resolve the package resolution issue.

Let's verify the version consistency across all component packages:

✅ Verification successful

Peer dependency versions are consistent across all component packages

Based on the output, all NextUI component packages that depend on @nextui-org/theme and @nextui-org/system are using the version >=2.4.0, which is consistent with the changes in the link package. Some packages only depend on the theme package (e.g., @nextui-org/spinner, @nextui-org/spacer, @nextui-org/kbd, @nextui-org/divider, @nextui-org/code), which is expected as not all components require system utilities.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check peer dependency versions across all component packages
# Expected: All theme and system peer dependencies should be >=2.4.0

fd -e json -x jq -r 'select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/theme"] != null or .peerDependencies["@nextui-org/system"] != null) | "\(.name):\n  theme: \(.peerDependencies["@nextui-org/theme"])\n  system: \(.peerDependencies["@nextui-org/system"])"' {} \;

Length of output: 4450

packages/components/progress/package.json (1)

39-40: LGTM: Consistent peer dependency updates

The version updates for @nextui-org/theme and @nextui-org/system maintain consistency with other package updates.

packages/components/snippet/package.json (1)

40-41: LGTM: Peer dependency alignment complete

The version updates align with other packages and should resolve the package resolution issue mentioned in #4254.

Let's verify that the package resolution issue is fixed with these updates:

✅ Verification successful

LGTM: Version alignment verified across packages

The output confirms that the peer dependency version requirements for @nextui-org/theme and @nextui-org/system are consistently set to >=2.4.0 across all dependent packages, matching the version update in the snippet package. This alignment ensures proper package resolution throughout the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any remaining package resolution issues
# Expected: No unresolved dependencies or version conflicts

# Check for any potential version conflicts or resolution issues
fd package.json -x jq -r 'select(.dependencies != null or .peerDependencies != null) | "\(.name):\n  deps: \(.dependencies // {} | with_entries(select(.value | contains("@nextui-org"))))\n  peers: \(.peerDependencies // {} | with_entries(select(.value | contains("@nextui-org"))))"' {} \;

Length of output: 65971


Script:

#!/bin/bash
# Let's try a simpler approach to check package.json files
# First, find all package.json files
fd package.json --type f --exec cat {} \; | grep -A2 -B2 "@nextui-org/\(theme\|system\)"

Length of output: 19625

packages/components/pagination/package.json (1)

39-40: LGTM: PeerDependencies version update is correct

The version update to >=2.4.0 for both @nextui-org/theme and @nextui-org/system aligns with the PR objectives to fix the peer dependencies issue.

packages/components/slider/package.json (1)

39-40: LGTM: PeerDependencies version update is correct

The version update to >=2.4.0 for both @nextui-org/theme and @nextui-org/system is consistent with the PR objectives.

packages/components/radio/package.json (1)

39-40: LGTM: PeerDependencies version update is correct

The version update to >=2.4.0 for both @nextui-org/theme and @nextui-org/system maintains consistency with other packages.

Let's verify the consistency of these changes across all NextUI packages:

✅ Verification successful

Peer dependencies versions are consistent across all packages

The verification confirms that all NextUI component packages that depend on @nextui-org/theme and @nextui-org/system have been updated to version >=2.4.0. A few packages (spinner, spacer, kbd, code, divider) only depend on the theme package, which is an expected pattern based on their functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify peer dependency versions for @nextui-org/theme and @nextui-org/system across all packages

# Find all package.json files in the packages directory
fd package.json packages/ -x sh -c '
  echo "Checking {}"
  # Extract peerDependencies versions for theme and system
  jq -r ".peerDependencies | select(.[\"@nextui-org/theme\", \"@nextui-org/system\"] != null) | {\"@nextui-org/theme\": .[\"@nextui-org/theme\"], \"@nextui-org/system\": .[\"@nextui-org/system\"]}" {}
'

Length of output: 10729

packages/components/breadcrumbs/package.json (1)

39-40: LGTM! Version updates align with PR objectives.

The peer dependency version updates for @nextui-org/theme and @nextui-org/system packages are consistent with the fix described in the PR objectives.

Let's verify version alignment across the workspace:

✅ Verification successful

Version updates are consistent across all workspace packages

The verification shows that all packages in the workspace consistently use version >=2.4.0 for both @nextui-org/theme and @nextui-org/system peer dependencies. No version mismatches were found.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check version consistency across workspace packages
# Look for any mismatched peer dependency versions

rg -g "package.json" '"@nextui-org/(theme|system)": ">=\d+\.\d+\.\d+"' -A 1 -B 1

Length of output: 12705

packages/components/switch/package.json (1)

39-40: LGTM! Consistent version updates.

The peer dependency updates match the expected changes and align with other packages.

packages/components/date-input/package.json (1)

37-38: LGTM! Version updates are consistent.

The peer dependency updates align with the PR objectives and match other package updates.

Let's verify that all affected packages have been updated:

✅ Verification successful

Version updates are consistent across all packages

The verification shows that all packages have been properly updated to use version ">=2.4.0" for both "@nextui-org/system" and "@nextui-org/theme" dependencies. No packages are using the older ">=2.3.0" version, confirming that the update was comprehensive and complete.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Ensure no packages still reference older versions
# This helps catch any packages that might have been missed

# Check for any remaining >=2.3.0 references
echo "Checking for any remaining old version references..."
rg -g "package.json" '"@nextui-org/(theme|system)": ">=2.3.0"'

# List all unique peer dependency versions for these packages
echo "Listing all unique peer dependency versions..."
rg -g "package.json" '"@nextui-org/(theme|system)": ">=\d+\.\d+\.\d+"' -o | sort | uniq

Length of output: 6426

packages/components/button/package.json (1)

40-41: Verify version compatibility with existing consumers

The peer dependency version updates align with the PR objectives to fix dependency resolution issues. However, we should verify that existing button component consumers won't be affected by this change.

✅ Verification successful

Version update is safe and aligned with current dependencies

The version update to >=2.4.0 for @nextui-org/theme and @nextui-org/system is safe because:

  • Current versions of these packages (theme@2.4.1 and system@2.4.2) are already above the new minimum version requirement
  • All dependent packages are using workspace references (workspace:*), meaning they're internally linked and won't be affected by this change
  • The button package is consumed as a workspace dependency by other NextUI components, ensuring internal compatibility
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for potential breaking changes in dependency chain
gh api graphql -f query='
{
  repository(owner: "nextui-org", name: "nextui") {
    dependencyGraphManifests(first: 10) {
      nodes {
        dependencies(first: 100) {
          nodes {
            packageName
            requirements
          }
        }
      }
    }
  }
}' | jq '.data.repository.dependencyGraphManifests.nodes[].dependencies.nodes[] | select(.packageName | contains("@nextui-org/button"))'

Length of output: 416


Script:

#!/bin/bash
# Let's check the version history and dependencies in package.json files
echo "=== Checking button package.json ==="
cat packages/components/button/package.json

echo -e "\n=== Searching for button package dependencies in other packages ==="
fd package.json --exec grep -l "@nextui-org/button" {} \;

echo -e "\n=== Checking version requirements in dependent packages ==="
for f in $(fd package.json --exec grep -l "@nextui-org/button" {} \;); do
  echo "=== $f ==="
  cat "$f" | grep -A 1 -B 1 "@nextui-org/button"
done

echo -e "\n=== Checking theme and system package versions ==="
cat packages/core/theme/package.json | grep "version"
cat packages/core/system/package.json | grep "version"

Length of output: 12510

packages/components/input/package.json (1)

39-40: LGTM: Version updates are consistent

The peer dependency version updates are consistent with other components and align with the PR objectives to fix the dependency resolution issues.

packages/components/drawer/package.json (1)

39-40: Verify dependency chain impact

The peerDependencies update aligns with the PR objectives to fix the package resolution issue. However, we should verify that this change doesn't create new dependency conflicts.

✅ Verification successful

Dependency update is safe to proceed

The peerDependencies update in the drawer component is safe because:

  • The core/react package uses workspace dependencies (workspace:*) which means it will always use the local versions
  • No other packages outside of core/react depend on the drawer component
  • The version requirements (>=2.4.0) for @nextui-org/theme and @nextui-org/system align with the current ecosystem
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential dependency conflicts in packages depending on @nextui-org/drawer

# Find all package.json files that depend on @nextui-org/drawer
rg -l '"@nextui-org/drawer"' -g 'package.json'

Length of output: 119


Script:

#!/bin/bash
# Let's check the dependency versions in the core/react package.json
cat packages/core/react/package.json | jq '.dependencies["@nextui-org/drawer"], .peerDependencies["@nextui-org/theme"], .peerDependencies["@nextui-org/system"]'

# Also check the version of core/react package itself
cat packages/core/react/package.json | jq '.version'

# And check if core/react has any other dependencies that might conflict
cat packages/core/react/package.json | jq '.dependencies, .peerDependencies'

Length of output: 2367

packages/components/card/package.json (1)

40-41: LGTM - Version constraints are consistent

The peerDependencies update maintains consistency with the library-wide version bump to fix the package resolution issue.

packages/components/menu/package.json (1)

39-40: Verify nextui-cli upgrade compatibility

The peerDependencies update aligns with the fix for package resolution. Let's verify the upgrade path with nextui-cli.

✅ Verification successful

Peer dependency update is compatible with CLI upgrade path

Based on the v2.4.0 release notes, the CLI has been improved to handle peer dependencies better, specifically:

  • The doctor command now checks for peerDependencies and displays incorrect ones
  • The CLI upgrade command has been enhanced with better version output and dependency handling

The peer dependency update to >=2.4.0 for @nextui-org/theme and @nextui-org/system is safe as:

  1. The CLI now has explicit support for checking peer dependencies
  2. The upgrade command has been optimized to handle version constraints
  3. The release notes confirm this is part of the planned improvements
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if nextui-cli handles the new version constraints correctly

# Search for nextui-cli upgrade related files
rg -l 'nextui-cli.*upgrade' -g '*.{js,ts,json}'

# Search for version handling logic in cli files
rg -l 'peerDependencies.*version' -g 'cli/**/*.{js,ts}'

Length of output: 256


Script:

#!/bin/bash
# Let's try a broader search for CLI-related files and version handling
# First, find any CLI-related directories or files
fd -t f -e js -e ts -e json cli

# Then search for version-related patterns in the entire codebase
rg -l "peerDependencies.*nextui" 

# Look for upgrade-related functionality
rg -l "upgrade.*nextui"

# Check package.json files for CLI references
fd -t f "package.json" | xargs rg -l "cli"

Length of output: 548


Script:

#!/bin/bash
# Let's check the v2.4.0 blog post for any relevant information about peer dependencies
cat apps/docs/content/blog/v2.4.0.mdx

# Check the main package.json for any CLI-related configurations
cat package.json | jq '.dependencies,.devDependencies,.scripts | select(. != null)'

# Look for any version-related changes in the upgrade mentions
rg -A 5 -B 5 "upgrade.*nextui" apps/docs/content/blog/v2.4.0.mdx

Length of output: 20149

packages/components/dropdown/package.json (1)

37-38: LGTM: PeerDependencies version update is correct

The version update to ">=2.4.0" for both @nextui-org/system and @nextui-org/theme aligns with the PR objectives to fix the peer dependencies issue.

packages/components/listbox/package.json (1)

39-40: LGTM: PeerDependencies version update is consistent

The version update to ">=2.4.0" for both @nextui-org/theme and @nextui-org/system maintains consistency with other components and aligns with the PR objectives.

packages/components/popover/package.json (1)

37-38: LGTM: PeerDependencies version update is consistent

The version update to ">=2.4.0" for both @nextui-org/system and @nextui-org/theme maintains consistency with other components.

Let's verify version consistency across all components:

✅ Verification successful

Version consistency verified across all NextUI components

The version update to ">=2.4.0" for both @nextui-org/system and @nextui-org/theme in the popover component is consistent with all other NextUI components. All components that depend on these packages use the same version constraint, with a few components (spinner, spacer, kbd, divider, code) naturally only depending on the theme package.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for consistency of @nextui-org/system and @nextui-org/theme versions across all package.json files

# Find all package.json files and check the peerDependencies versions
fd package.json packages/components/ -x jq -r 'select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/system"] != null or .peerDependencies["@nextui-org/theme"] != null) | "\(.name):\n  system: \(.peerDependencies["@nextui-org/system"])\n  theme: \(.peerDependencies["@nextui-org/theme"])"'

Length of output: 2743

packages/components/checkbox/package.json (1)

37-38: LGTM: PeerDependencies version update is correct

The version update to >=2.4.0 for both @nextui-org/system and @nextui-org/theme aligns with the PR objectives to fix the peer dependencies issue.

packages/components/table/package.json (1)

39-40: LGTM: PeerDependencies version update is consistent

The version update to >=2.4.0 for both dependencies maintains consistency with other package updates in this PR.

packages/components/tabs/package.json (1)

40-41: LGTM: PeerDependencies version update is consistent

The version update to >=2.4.0 for both dependencies maintains consistency with other package updates.

Let's verify the consistency of these version changes across all packages:

✅ Verification successful

Version update to >=2.4.0 is consistently applied across all packages

The verification confirms that:

  • No packages are using the old version (>=2.3.0)
  • All packages have been updated to use version >=2.4.0 for both @nextui-org/theme and @nextui-org/system dependencies
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that all package.json files have consistent peer dependency versions

# Check for any remaining old versions (2.3.0)
echo "Checking for any remaining old versions..."
fd package.json packages/ -x grep -l "\"@nextui-org/\(theme\|system\)\": \">=2.3.0\""

# Verify new versions (2.4.0)
echo "Verifying new versions..."
fd package.json packages/ -x grep "\"@nextui-org/\(theme\|system\)\": \">=2.4.0\""

Length of output: 3347

packages/components/navbar/package.json (1)

40-41: Verify workspace dependency alignment

The peerDependencies update to >=2.4.0 aligns with the PR objectives. However, since this package also uses workspace dependencies for both packages in devDependencies, we should ensure the workspace versions are compatible.

✅ Verification successful

Peer dependencies are compatible with workspace versions

The workspace versions of @nextui-org/system (2.4.2) and @nextui-org/theme (2.4.1) are both compatible with the peer dependency requirements (>=2.4.0) specified in the navbar package.json.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check workspace package versions to ensure compatibility
fd package.json -t f packages/core/theme packages/core/system -x jq -r '"Package: \(.name)\nVersion: \(.version)"'

Length of output: 201

packages/components/date-picker/package.json (1)

37-38: LGTM - Version requirements are consistent

The peerDependencies update to >=2.4.0 is consistent with other components and aligns with the PR objectives to fix package resolution issues.

packages/components/accordion/package.json (1)

46-47: LGTM - Version requirements are consistent across components

The peerDependencies update to >=2.4.0 maintains consistency with other components and supports the fix for package resolution issues.

✅ Verification successful

Version requirements are correctly aligned across all components

The verification confirms that all NextUI components consistently specify >=2.4.0 for @nextui-org/theme. For @nextui-org/system, most components require >=2.4.0, while a few components (spinner, spacer, kbd, divider, code) don't depend on it, which is expected based on their functionality.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify consistency of peer dependency versions across all component packages
fd package.json -t f packages/components -x jq -r 'select(.peerDependencies != null) | select(.peerDependencies["@nextui-org/theme"] != null) | "Component: \(.name)\nTheme: \(.peerDependencies["@nextui-org/theme"])\nSystem: \(.peerDependencies["@nextui-org/system"])"'

Length of output: 2966

packages/components/modal/package.json (1)

40-41: LGTM: Peer dependency version updates are correct

The version updates for @nextui-org/theme and @nextui-org/system to ">=2.4.0" align with the PR objectives and should help resolve the package resolution issues.

packages/components/calendar/package.json (1)

37-38: LGTM: Peer dependency versions are consistent

The version updates for @nextui-org/system and @nextui-org/theme to ">=2.4.0" are consistent with other package updates and align with the PR objectives.

packages/components/select/package.json (1)

37-38: LGTM: Peer dependency versions are aligned

The version updates for @nextui-org/system and @nextui-org/theme to ">=2.4.0" are consistent with other package updates and align with the PR objectives.

Let's verify the consistency of these version updates across all NextUI packages:

✅ Verification successful

Peer dependency versions are consistently updated across all component packages

The verification shows that all NextUI component packages that depend on @nextui-org/system and @nextui-org/theme have been properly updated to version ">=2.4.0". This includes the select component and all other UI components. Some utility packages naturally don't have these dependencies, which is expected.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify peer dependency versions are consistent across all package.json files

# Find all package.json files in the packages directory
echo "Checking peer dependency versions in all package.json files..."
fd package.json packages/ --exec jq -r '. | select(.peerDependencies != null) | "\(.name):\n  @nextui-org/system: \(.peerDependencies."@nextui-org/system")\n  @nextui-org/theme: \(.peerDependencies."@nextui-org/theme")"'

Length of output: 6935

packages/components/autocomplete/package.json (2)

37-38: LGTM! Peer dependency updates align with PR objectives.

The updated version constraints for @nextui-org/system and @nextui-org/theme to >=2.4.0 match the intended fix described in the PR objectives and should resolve the package resolution issue from #4254.


Line range hint 2-2: Verify version compatibility with peer dependencies.

The component is at version 2.3.2 but requires peer dependencies >=2.4.0. Please verify this won't cause installation or compatibility issues.

Also applies to: 37-38

✅ Verification successful

Peer dependency version mismatch is expected and safe

The version compatibility check reveals this is a common pattern across the component packages:

  • Most UI components are at versions 2.2.x to 2.3.x while requiring @nextui-org/system and @nextui-org/theme >=2.4.0
  • The core system package is at version 2.4.2 and theme package at 2.4.1
  • This means the peer dependency requirements are satisfied by the current versions

This is a standard practice to ensure components use the minimum required version of core dependencies while allowing them to work with newer compatible versions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check version compatibility across the workspace
# Look for other components with similar version patterns to ensure consistency

# Check component versions and their peer dependencies
fd package.json --exec sh -c 'echo "=== $1 ==="; jq -r "{version: .version, systemPeer: .peerDependencies.\"@nextui-org/system\", themePeer: .peerDependencies.\"@nextui-org/theme\"}" "$1"' sh {} | grep -v "null"

Length of output: 9460

packages/components/code/package.json Show resolved Hide resolved
packages/components/form/package.json Show resolved Hide resolved
@wingkwong wingkwong added this to the v2.6.4 milestone Dec 7, 2024
@jrgarciadev jrgarciadev merged commit 6a94a12 into canary Dec 7, 2024
8 checks passed
@jrgarciadev jrgarciadev deleted the fix/eng-1663 branch December 7, 2024 12:10
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.

[BUG] - Failed to resolve entry for package "@nextui-org/system"
2 participants