-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Conversation
🦋 Changeset detectedLatest commit: 244b32a The changes in this PR will be included in the next version bump. This PR includes changesets to release 49 packages
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 |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
WalkthroughThis pull request introduces patch updates to multiple components in the Changes
Assessment against linked issues
Possibly related PRs
Suggested labels
Suggested reviewers
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? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this 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 fieldThe 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 strategyWhile the version updates are correct and consistent across components, consider documenting the version management strategy to prevent future unintended major version bumps.
Consider:
- Adding a CONTRIBUTING.md section about version management
- Implementing automated version checks in CI/CD
- Creating a version management policy for maintainers
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
📒 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
andsystem@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:
- The CLI now has explicit support for checking peer dependencies
- The upgrade command has been optimized to handle version constraints
- 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
to2.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 at2.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
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
@nextui-org/theme
and@nextui-org/system
version>=2.4.0
, ensuring compatibility with the latest features and fixes.Bug Fixes
This release enhances the overall stability and functionality of the components within the
@nextui-org
library.