-
-
Notifications
You must be signed in to change notification settings - Fork 652
pnpm update #3324
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
pnpm update #3324
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
📝 WalkthroughWalkthroughDependency and devDependency version bumps across multiple package.json files (root, landing, shepherd.js, packages/react), a test setup change to extend Vitest expect with Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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: 1
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
landing/package.jsonpackage.jsonshepherd.js/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Tests
🔇 Additional comments (4)
landing/package.json (2)
27-29: LGTM - DevDependency updates look good.The devDependency updates for typography plugin, sharp, and vite are standard patch/minor updates.
14-24: TypeScript alignment verified and Astro configuration is compatible.The landing package has TypeScript ^5.9.3, which aligns with the monorepo root and shepherd.js package. The astro.config.mjs correctly references all installed integrations (@astrojs/mdx, @astrojs/sitemap, @astrojs/tailwind, @astrojs/vercel), and the tsconfig.json extends Astro's strict configuration. The dependency updates are minor version changes with no evident breaking changes. Verify the build succeeds with
pnpm buildin the landing directory.shepherd.js/package.json (1)
50-50: No issues with @floating-ui/dom 1.7.4 update.This is a safe patch release containing a single fix for
scrollbar-gutter: stablehandling. No breaking changes.package.json (1)
30-46: Dependency updates are safe—no breaking changes or security advisories identified.Svelte 5.46.1 contains only patch fixes (type for currentTarget in on, skipping static optimisation for stateless deriveds after await, and preventing HMR loops) with no breaking changes. The Babel 7.28.5 packages have no known security advisories. The updates are ready to proceed.
| "@babel/core": "^7.28.5", | ||
| "@babel/plugin-transform-typescript": "^7.28.5", | ||
| "@babel/preset-env": "^7.28.5", | ||
| "@babel/preset-typescript": "^7.28.5", | ||
| "@rollup/plugin-babel": "^6.1.0", | ||
| "@rollup/plugin-node-resolve": "^16.0.3", | ||
| "@rollup/plugin-replace": "^6.0.3", | ||
| "@rollup/plugin-terser": "^0.4.4", | ||
| "autoprefixer": "^10.4.22", | ||
| "cssnano": "^7.1.1", | ||
| "autoprefixer": "^10.4.23", | ||
| "cssnano": "^7.1.2", | ||
| "dts-bundle-generator": "^9.5.1", | ||
| "eslint-plugin-svelte": "^2.46.1", | ||
| "execa": "^9.3.1", | ||
| "execa": "^9.6.1", | ||
| "postcss": "^8.5.6", | ||
| "prettier": "^3.3.3", | ||
| "prettier-plugin-svelte": "^3.3.3", | ||
| "renamer": "^5.0.0", | ||
| "prettier": "^3.7.4", | ||
| "prettier-plugin-svelte": "^3.4.1", | ||
| "renamer": "^5.0.2", | ||
| "replace": "^1.2.2", | ||
| "rimraf": "^6.0.1", | ||
| "rollup": "^4.50.2", | ||
| "rimraf": "^6.1.2", | ||
| "rollup": "^4.54.0", | ||
| "rollup-plugin-analyzer": "^4.0.0", | ||
| "rollup-plugin-filesize": "^10.0.0", | ||
| "rollup-plugin-license": "^3.5.3", | ||
| "rollup-plugin-license": "^3.6.0", | ||
| "rollup-plugin-livereload": "^2.0.5", | ||
| "rollup-plugin-postcss": "^4.0.2", | ||
| "rollup-plugin-serve": "^2.0.2", | ||
| "rollup-plugin-svelte": "^7.2.2", | ||
| "rollup-plugin-serve": "^2.0.3", | ||
| "rollup-plugin-svelte": "^7.2.3", | ||
| "rollup-plugin-visualizer": "^5.14.0", | ||
| "svelte": "^5.25.3", | ||
| "svelte": "^5.46.1", | ||
| "svelte-preprocess": "^6.0.3", | ||
| "svelte2tsx": "0.7.13", | ||
| "typescript": "^5.7.3" | ||
| "typescript": "^5.9.3" |
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.
🧩 Analysis chain
🏁 Script executed:
# First, let's find the package.json and understand the repo structure
find . -name "package.json" -type f | head -20Repository: shipshapecode/shepherd
Length of output: 237
🏁 Script executed:
# Check if we're in the right location and explore the structure
ls -laRepository: shipshapecode/shepherd
Length of output: 1887
🏁 Script executed:
# Verify the lines in question in the shepherd.js/package.json
if [ -f "shepherd.js/package.json" ]; then
echo "=== Lines 55-86 of shepherd.js/package.json ==="
sed -n '55,86p' shepherd.js/package.json
else
echo "shepherd.js/package.json not found, checking current directory"
pwd
fiRepository: shipshapecode/shepherd
Length of output: 1219
🏁 Script executed:
# Get the full shepherd.js/package.json to see the scripts
cat shepherd.js/package.jsonRepository: shipshapecode/shepherd
Length of output: 3096
🏁 Script executed:
# Check for build configuration files
ls -la shepherd.js/ | grep -E "rollup|webpack|tsconfig|vite"Repository: shipshapecode/shepherd
Length of output: 197
🏁 Script executed:
# List all files in shepherd.js to understand the structure
ls -la shepherd.js/Repository: shipshapecode/shepherd
Length of output: 1171
🏁 Script executed:
# Check the rollup configuration
cat shepherd.js/rollup.config.mjsRepository: shipshapecode/shepherd
Length of output: 4217
🏁 Script executed:
# Check tsconfig.json
cat shepherd.js/tsconfig.jsonRepository: shipshapecode/shepherd
Length of output: 2073
🏁 Script executed:
# Check if there are any recent commit messages related to these changes
git log --oneline shepherd.js/package.json | head -10Repository: shipshapecode/shepherd
Length of output: 85
🏁 Script executed:
# Let's verify that all the imports in rollup.config.mjs match the devDependencies
# Extract imports from rollup.config.mjs
echo "=== Imports in rollup.config.mjs ==="
grep "^import" shepherd.js/rollup.config.mjs | sed "s/.*from ['\"]\([^'\"]*\)['\"].*/\1/" | sort
echo ""
echo "=== Checking these against devDependencies ==="
# Get the list of devDependencies (just the package names, without versions)
python3 << 'EOF'
import json
import re
with open('shepherd.js/package.json', 'r') as f:
pkg = json.load(f)
dev_deps = set(pkg['devDependencies'].keys())
# Imports from rollup.config.mjs
imports = [
'autoprefixer',
'execa',
'cssnano',
'@rollup/plugin-babel',
'rollup-plugin-serve',
'rollup-plugin-livereload',
'rollup-plugin-filesize',
'rollup-plugin-license',
'rollup-plugin-postcss',
'@rollup/plugin-replace',
'@rollup/plugin-node-resolve',
'svelte-preprocess',
'rollup-plugin-svelte',
'rollup-plugin-visualizer',
'svelte2tsx',
'@rollup/plugin-terser'
]
print("Checking all imports are in devDependencies:")
all_present = True
for imp in imports:
if imp in dev_deps:
print(f"✓ {imp}")
else:
print(f"✗ MISSING: {imp}")
all_present = False
print(f"\nAll imports present: {all_present}")
EOFRepository: shipshapecode/shepherd
Length of output: 152
🏁 Script executed:
# Check babel.config.cjs to ensure it's compatible
cat shepherd.js/babel.config.cjsRepository: shipshapecode/shepherd
Length of output: 464
🏁 Script executed:
# Check svelte.config.js
cat shepherd.js/svelte.config.jsRepository: shipshapecode/shepherd
Length of output: 301
🏁 Script executed:
# Let's check if there are any CI configuration files that might show how the build is tested
find . -name ".github" -type d
ls -la .github/workflows/ | head -20Repository: shipshapecode/shepherd
Length of output: 372
🏁 Script executed:
# Check for workflow files that test the build
cat .github/workflows/test.yml 2>/dev/null || cat .github/workflows/ci.yml 2>/dev/null || echo "No main CI workflow found, listing all workflows:"
ls -la .github/workflows/Repository: shipshapecode/shepherd
Length of output: 1621
🏁 Script executed:
# Check the publish workflow to see if it runs the build
cat .github/workflows/publish.ymlRepository: shipshapecode/shepherd
Length of output: 1094
🏁 Script executed:
# Let's also check the root package.json to see if there's a workspace build script
cat package.json | grep -A 20 '"scripts"'Repository: shipshapecode/shepherd
Length of output: 1001
🏁 Script executed:
# Check if there's a dist directory and build artifacts that indicate successful builds
ls -la shepherd.js/dist/ 2>/dev/null || echo "No dist directory found"Repository: shipshapecode/shepherd
Length of output: 89
🏁 Script executed:
# Check the pnpm-lock.yaml to ensure it has entries for all the dependencies
grep -A 2 "@babel/core" pnpm-lock.yaml | head -5Repository: shipshapecode/shepherd
Length of output: 184
🏁 Script executed:
# Check if the last commit's CI workflow passed by looking at the commit
git log --oneline --all -20Repository: shipshapecode/shepherd
Length of output: 1066
🏁 Script executed:
cd shepherd.js
pnpm build
pnpm types:checkRepository: shipshapecode/shepherd
Length of output: 1171
🏁 Script executed:
# Install dependencies first
cd shepherd.js
pnpm installRepository: shipshapecode/shepherd
Length of output: 8457
🏁 Script executed:
# Check if there's a known issue or version mismatch with rollup-plugin-postcss
grep -i "postcss" shepherd.js/package.jsonRepository: shipshapecode/shepherd
Length of output: 129
🏁 Script executed:
# Look at the git history to see what the previous state was
git log --oneline -1 shepherd.js/package.json
git show HEAD:shepherd.js/package.json | grep -A 5 "rollup-plugin-postcss"Repository: shipshapecode/shepherd
Length of output: 302
🏁 Script executed:
# Check if there are any notes in the codebase about this
grep -r "rollup-plugin-postcss" shepherd.js/Repository: shipshapecode/shepherd
Length of output: 204
🌐 Web query:
rollup-plugin-postcss 4.0.2 rollup 4.54.0 compatibility
💡 Result:
Short answer: Probably not fully compatible. rollup-plugin-postcss v4.0.2 was published ~4 years ago and its README documents compatibility up to Rollup v2/v3-era behavior (no explicit support for Rollup 4). Rollup 4 introduced plugin-API changes (see Rollup 4 migration notes) that can break older plugins, so expect issues unless the plugin has been updated to handle those changes—otherwise you’ll need to test or update the plugin. [1][2]
Sources
- rollup-plugin-postcss (v4.0.2) package info / README. [1]
- Rollup 4 “Migrating to Rollup 4” / plugin API breaking changes. [2]
If you want, I can:
- check the plugin’s GitHub issues/PRs for Rollup 4 fixes, or
- suggest current maintained alternatives or forks known to support Rollup 4.
🌐 Web query:
rollup-plugin-postcss rollup 4 extract css
💡 Result:
Yes — rollup-plugin-postcss supports extracting CSS. Use the plugin's extract option (true or a path). Example (Rollup 4, ESM config):
-
install: npm/yarn add postcss rollup-plugin-postcss --dev
-
rollup.config.mjs example:
import path from 'path'
import postcss from 'rollup-plugin-postcss'export default {
input: 'src/index.js',
output: {
dir: 'dist',
format: 'es'
},
plugins: [
postcss({
// extract into dist/.css
extract: true,// OR extract to a specific file: // extract: path.resolve('dist/my-styles.css'), plugins: [] // your PostCSS plugins })]
}
Notes:
- extract: true writes a .css next to the generated JS bundle; extract can also be a string (relative or absolute path). [1][2]
Sources:
[1] egoist/rollup-plugin-postcss README (GitHub).
[2] rollup-plugin-postcss package README (npm).
🏁 Script executed:
# Check the exact postcss configuration in rollup.config.mjs
grep -A 5 "postcss({" shepherd.js/rollup.config.mjsRepository: shipshapecode/shepherd
Length of output: 207
🏁 Script executed:
# Look at the postcss plugin version history to see if there's a newer/compatible version
# Also check if there are any issues or workarounds documented
git log --all --oneline --grep="postcss" | head -10Repository: shipshapecode/shepherd
Length of output: 600
🏁 Script executed:
# Check the last successful build commit before the pnpm update
git show e776198:shepherd.js/package.json | grep -E "rollup|postcss" | head -10Repository: shipshapecode/shepherd
Length of output: 472
🏁 Script executed:
# Check if there's a newer version of rollup-plugin-postcss available
# by looking at the lock file for available versions
grep "rollup-plugin-postcss" pnpm-lock.yaml | head -20Repository: shipshapecode/shepherd
Length of output: 171
🏁 Script executed:
# Verify the exact versions in the current state vs previous commit
echo "=== Current versions ==="
grep -E "rollup|postcss" shepherd.js/package.json
echo ""
echo "=== Previous versions (e776198) ==="
git show e776198:shepherd.js/package.json | grep -E "rollup|postcss"Repository: shipshapecode/shepherd
Length of output: 1417
🏁 Script executed:
# Let's check if the build worked before the pnpm update by testing checkout e776198
# First, let's see if the issue is specific to rollup-plugin-postcss by checking error logs
# and looking for any known issues
# Test with the previous rollup version to see if that's the culprit
cd shepherd.js
git log --oneline --all | grep -i "postcss\|css" | head -5Repository: shipshapecode/shepherd
Length of output: 333
🏁 Script executed:
# Check if there's been any recent discussion or issues about this in the repo
git log --all --oneline --grep="css\|postcss\|rollup" | head -10Repository: shipshapecode/shepherd
Length of output: 642
🏁 Script executed:
# Let's check the commit that updated rollup to 4.50.2 to see if the build was passing then
git show 8c6cee7 --stat | head -20Repository: shipshapecode/shepherd
Length of output: 834
🏁 Script executed:
# Look for any open issues or comments about rollup-plugin-postcss in the codebase
find . -name "*.md" -o -name "*.js" -o -name "*.mjs" | xargs grep -l "postcss" 2>/dev/null | head -5Repository: shipshapecode/shepherd
Length of output: 389
Build fails with Rollup 4.54.0 due to rollup-plugin-postcss incompatibility.
The build fails with error: cp: cannot stat './tmp/js/css/shepherd.css': No such file or directory. The CSS file is not being extracted by rollup-plugin-postcss v4.0.2 when used with Rollup 4.54.0. The plugin was last updated ~4 years ago and does not support breaking changes introduced in recent Rollup 4.x versions.
Either downgrade Rollup to a compatible version (e.g., 4.50.2 which worked previously) or upgrade to a maintained fork/alternative of rollup-plugin-postcss that supports Rollup 4.54.0.
🤖 Prompt for AI Agents
In shepherd.js/package.json around lines 55 to 86 the build breaks because
rollup version 4.54.0 is incompatible with the unmaintained
rollup-plugin-postcss (v4.0.2) so the CSS asset isn’t extracted; fix by either
pinning Rollup to a working version (change the rollup dependency to "4.50.2"
and run install, then verify build) or replace rollup-plugin-postcss with a
maintained alternative that supports Rollup 4.54.0 (update package.json to the
chosen maintained fork/package, update rollup config imports/usages accordingly,
reinstall deps and verify the CSS extraction and build succeed).
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: 1
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
test/unit/setupTests.js
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Tests
| import * as matchers from '@testing-library/jest-dom/matchers'; | ||
| import { expect } from 'vitest'; | ||
|
|
||
| expect.extend(matchers); |
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.
🧩 Analysis chain
🌐 Web query:
@testing-library/jest-dom 6.x vitest setup require expect.extend
💡 Result:
Use the new vitest entry in v6 (it no longer auto-runs extend-expect). Options:
- Recommended — add a Vitest setup file that imports the vitest entry:
- vitest.setup.ts (or .js)
import '@testing-library/jest-dom/vitest' - point Vitest to it (vitest.config.ts):
test: { environment: 'jsdom', setupFiles: ['./vitest.setup.ts'], globals: true }
- Manual — extend Vitest's expect yourself:
- vitest.setup.ts
import * as matchers from '@testing-library/jest-dom/matchers'
import { expect } from 'vitest'
expect.extend(matchers)
If using TypeScript, include types in tsconfig:
- "types": ["vitest/globals", "@testing-library/jest-dom/vitest"] (or "@testing-library/jest-dom" if using the default path).
References: testing-library docs and repo (vitest-specific entry + v6 breaking change). [1][2][3]
Sources
[1] testing-library setup (Vitest examples).
[2] testing-library/jest-dom GitHub release notes (v6 breaking change; new import paths).
[3] testing-library docs showing import '@testing-library/jest-dom/vitest' in setup.
🌐 Web query:
vitest 4.x @testing-library/jest-dom matchers import pattern
💡 Result:
Use the vitest-specific entry or import the matchers and extend expect.
Recommended (simple, put in your Vitest setup file and add it to test.setupFiles):
- import '@testing-library/jest-dom/vitest' // loads and registers matchers for Vitest. [1][2]
Alternative (manual extend):
- import * as matchers from '@testing-library/jest-dom/matchers'
- import { expect } from 'vitest'
- expect.extend(matchers) // register only the exported matchers. [1]
TypeScript tips:
- Make your setup file a .ts and add types in tsconfig: "types": ["vitest/globals", "@testing-library/jest-dom/vitest"] (or "@testing-library/jest-dom" if using the manual approach). Ensure the setup file is included in "include". [1][2]
References
- @testing-library/jest-dom README (Vitest usage). [1]
- Testing Library setup examples (Vitest setupFiles / tsconfig notes). [2]
🌐 Web query:
@testing-library/jest-dom vitest entry point /vitest vs /matchers
💡 Result:
Short answer: import '@testing-library/jest-dom/vitest' in your Vitest setup file. That path automatically registers the jest-dom matchers with Vitest's expect. Use the '/matchers' export only if you want to manually extend expect (import * as matchers from '@testing-library/jest-dom/matchers' and call expect.extend(matchers)). Also add the package to your TS types or include the setup file in tsconfig for typings. [1][2][3]
Sources:
- @testing-library/jest-dom README (Vitest import path). [1]
- Testing Library docs (Vitest setup example). [2]
- Release notes / changelog describing platform-specific entry points (vitest vs matchers). [3]
Consider using the recommended Vitest entry point for @testing-library/jest-dom 6.x instead.
The manual expect.extend(matchers) approach works, but @testing-library/jest-dom 6.x provides a recommended /vitest entry point that automatically registers matchers in a simpler way. Replace the current import with:
import '@testing-library/jest-dom/vitest'
This is equivalent but more concise than separately importing matchers and calling expect.extend(). Ensure your vitest.config.ts includes this setup file in test.setupFiles and update your TypeScript config types to include "@testing-library/jest-dom/vitest" if applicable.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.