Skip to content

[WEB-4837] feat: adding more packages to catalog#7693

Merged
sriramveeraghanta merged 4 commits intopreviewfrom
chore-packages-to-catalog
Sep 2, 2025
Merged

[WEB-4837] feat: adding more packages to catalog#7693
sriramveeraghanta merged 4 commits intopreviewfrom
chore-packages-to-catalog

Conversation

@sriramveeraghanta
Copy link
Member

@sriramveeraghanta sriramveeraghanta commented Sep 1, 2025

Description

  • Adding reused packages to catalog

Type of Change

  • Improvement (change that would cause existing functionality to not work as expected)

Summary by CodeRabbit

  • Chores
    • Standardized dependency resolution across apps and packages via a centralized catalog (common libs like axios, lodash, MobX, React, Next, SWR, uuid, lucide-react, sharp, and type defs).
    • Expanded workspace package discovery to include all app and package directories, excluding API and proxy services.
    • Marked sharp as a built dependency to improve install/build reliability.
    • No user-facing behavior changes.

Copilot AI review requested due to automatic review settings September 1, 2025 15:03
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 1, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Manifest updates across apps and packages replace explicit version pins with pnpm’s catalog: specifier; workspace globs and the workspace catalog are expanded and sharp added to onlyBuiltDependencies. No source code or public API changes.

Changes

Cohort / File(s) Summary of changes
Apps: package manifests
apps/admin/package.json, apps/live/package.json, apps/space/package.json, apps/web/package.json
Replaced concrete dependency versions with catalog: entries for shared libs (examples: axios, lodash, lucide-react, mobx, mobx-react, mobx-utils, next, react, react-dom, sharp, swr, uuid) and moved @types/lodash to catalog: in devDependencies where present.
Packages: package manifests
packages/editor/package.json, packages/i18n/package.json, packages/propel/package.json, packages/services/package.json, packages/shared-state/package.json, packages/ui/package.json, packages/utils/package.json
Converted specific dependency pins to catalog: for various shared libs (e.g., lodash, lucide-react, uuid, axios, mobx, mobx-react, mobx-utils, plus react/react-dom additions in some packages); @types/lodash set to catalog: where present. No code changes.
Workspace & root manifest
pnpm-workspace.yaml, package.json
Expanded workspace package globs (apps/*, packages/*) with exclusions for !apps/api and !apps/proxy; added multiple entries to the pnpm catalog (e.g., axios, mobx, mobx-react, mobx-utils, lodash, @types/lodash, lucide-react, next, sharp, swr, uuid); added sharp to onlyBuiltDependencies; root package.json pnpm override for sharp switched to catalog:.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

ready to merge

Suggested reviewers

  • twtaylor

Poem

I hopped through manifests, nibbling old pins,
Planted catalog: seeds where the version wind thins.
Sharp got a passport, the workspace grew wide,
Apps and packages now share a single tide.
Thump-thump—builds hum, the burrow’s aligned. 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore-packages-to-catalog

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.

❤️ 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.
    • 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.
  • 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 the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

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

CodeRabbit Configuration File (.coderabbit.yaml)

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

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • 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

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds commonly used packages to the pnpm workspace catalog to centralize version management across the monorepo. By moving packages like axios, lodash, mobx, and others to the catalog, version consistency is enforced across all packages and applications.

  • Added 12 new packages to the pnpm workspace catalog with specific versions
  • Updated all package.json files to use catalog references instead of individual version specifications
  • Standardized dependency versions across the entire monorepo

Reviewed Changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pnpm-workspace.yaml Added 12 new packages to the catalog including axios, mobx, lodash, lucide-react, next, sharp, swr, and uuid
packages/utils/package.json Updated lodash, lucide-react, uuid, and @types/lodash to use catalog references
packages/ui/package.json Updated lodash, lucide-react, and @types/lodash to use catalog references
packages/shared-state/package.json Updated mobx to use catalog reference
packages/services/package.json Updated axios to use catalog reference
packages/propel/package.json Updated lucide-react to use catalog reference
packages/i18n/package.json Updated mobx, mobx-react, lodash, and @types/lodash to use catalog references
packages/editor/package.json Updated lucide-react and uuid to use catalog references
apps/web/package.json Updated multiple dependencies (axios, lodash, lucide-react, mobx packages, next, sharp, swr, uuid, @types/lodash) to use catalog references
apps/space/package.json Updated multiple dependencies (axios, lodash, lucide-react, mobx packages, next, sharp, swr, uuid, @types/lodash) to use catalog references
apps/live/package.json Updated axios, lodash, and uuid to use catalog references
apps/admin/package.json Updated multiple dependencies (axios, lodash, lucide-react, mobx, mobx-react, next, sharp, swr, uuid, @types/lodash) to use catalog references
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

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: 3

🧹 Nitpick comments (5)
packages/shared-state/package.json (1)

18-18: Optional: Move zod to catalog for consistency.

To centralize versions, consider switching zod to "catalog:" and adding it to the workspace catalog. Low effort, improves consistency across packages.

-    "zod": "^3.22.2"
+    "zod": "catalog:"
packages/propel/package.json (1)

40-42: Library best practice: make React peerDependencies (avoid duplicate React).

As a component library, @plane/propel should declare react and react-dom as peerDependencies (and devDependencies for local dev) to prevent multiple React copies and hook errors. Keeping them in dependencies can cause duplication when consumed by apps.

Apply within this hunk:

   "dependencies": {
@@
-    "lucide-react": "catalog:",
-    "react": "catalog:",
-    "react-dom": "catalog:",
+    "lucide-react": "catalog:",

Then add peer deps (outside this hunk):

   "dependencies": {
     "recharts": "^2.15.1",
     "tailwind-merge": "^3.3.1"
   },
+  "peerDependencies": {
+    "react": "catalog:",
+    "react-dom": "catalog:"
+  },
   "devDependencies": {
apps/live/package.json (1)

31-31: All required catalog entries exist; add @types/uuid to catalog for consistency

The workspace catalog already includes axios, lodash, uuid, tsup, and typescript. To prevent version drift, move the devDependency @types/uuid into the catalog and switch its entry in apps/live/package.json to catalog::

# pnpm-workspace.yaml (under catalog:)
-    "@types/uuid": "^9.0.1",
+    "@types/uuid": "catalog:",
# apps/live/package.json (devDependencies)
-    "@types/uuid": "^9.0.1",
+    "@types/uuid": "catalog:",
packages/utils/package.json (1)

29-35: Unify typing dependency: move @types/uuid to catalog.

For consistency with other deps now using catalog, consider catalog-pinning @types/uuid.

Apply after adding @types/uuid to the workspace catalog:

-    "@types/uuid": "^9.0.8",
+    "@types/uuid": "catalog:",

Also applies to: 39-45

pnpm-workspace.yaml (1)

26-28: onlyBuiltDependencies: sharp — good call. Consider CI cache/toolchain notes.

If builds run on fresh runners, ensure prebuilds are available or toolchain (python3, make, gcc) is present. Optional: cache ~/.pnpm-store to speed up sharp installs.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between f42eeec and 5fbc859.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (12)
  • apps/admin/package.json (1 hunks)
  • apps/live/package.json (1 hunks)
  • apps/space/package.json (1 hunks)
  • apps/web/package.json (3 hunks)
  • packages/editor/package.json (1 hunks)
  • packages/i18n/package.json (1 hunks)
  • packages/propel/package.json (1 hunks)
  • packages/services/package.json (1 hunks)
  • packages/shared-state/package.json (1 hunks)
  • packages/ui/package.json (2 hunks)
  • packages/utils/package.json (1 hunks)
  • pnpm-workspace.yaml (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: sriramveeraghanta
PR: makeplane/plane#7672
File: pnpm-workspace.yaml:8-9
Timestamp: 2025-08-29T08:45:15.953Z
Learning: The makeplane/plane repository uses pnpm v10.12.1, which supports onlyBuiltDependencies configuration in pnpm-workspace.yaml files.
📚 Learning: 2025-08-29T08:45:15.953Z
Learnt from: sriramveeraghanta
PR: makeplane/plane#7672
File: pnpm-workspace.yaml:8-9
Timestamp: 2025-08-29T08:45:15.953Z
Learning: The makeplane/plane repository uses pnpm v10.12.1, which supports onlyBuiltDependencies configuration in pnpm-workspace.yaml files.

Applied to files:

  • packages/services/package.json
  • apps/live/package.json
  • packages/i18n/package.json
  • apps/space/package.json
  • apps/admin/package.json
  • pnpm-workspace.yaml
⏰ 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). (2)
  • GitHub Check: Build and lint web apps
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (8)
packages/services/package.json (1)

20-20: Verify pnpm lockfile presence and axios entries
Lockfile pnpm-lock.yaml not found; run pnpm install to regenerate it and ensure it includes the axios entries before merging.

packages/editor/package.json (1)

73-73: Catalog entries verified
lucide-react@0.469.0 and uuid@10.0.0 are present in pnpm-workspace.yaml’s catalog and both publish ESM‐compatible builds—no further changes required.

packages/i18n/package.json (1)

20-23: Catalog pins for MobX, MobX React, Lodash, and @types/lodash verified. All four are defined in pnpm-workspace.yaml (mobx@6.12.0, mobx-react@9.1.1, lodash@4.17.21, @types/lodash@4.17.20), and no package declares these as peerDependencies.

apps/space/package.json (1)

33-56: pnpm-workspace.yaml catalogs and onlyBuiltDependencies verified: next/react/react-dom/swr/axios/lodash/lucide-react/mobx/mobx-react/mobx-utils/uuid are all pinned, and sharp is listed in onlyBuiltDependencies.

apps/admin/package.json (1)

29-43: Align @types/uuid with catalog and verify Next/React pins

  • Optional: switch "@types/uuid" to "catalog:" for consistency.
  • Manually confirm that the catalog versions of next, react and react-dom are mutually compatible.
apps/web/package.json (2)

36-50: Catalog migration looks good; centralizes versions workspace-wide.

This aligns with the expanded catalog in pnpm-workspace.yaml and should dedupe installs. Given the repo runs pnpm v10.12.1 (per learnings), catalog: is supported.

Also applies to: 53-57, 64-69


69-69: Remove @types/uuid from apps/web/package.json

uuid@10 includes its own TypeScript definitions; no default imports or legacy subpath usage were found when scanning the codebase.
Apply:

-    "@types/uuid": "^8.3.4",
pnpm-workspace.yaml (1)

2-5: Workspace globs verified; only intended workspaces are included. Confirmed apps/api is excluded, there is no apps/proxy, and only apps/admin, apps/live, apps/space, apps/web plus all packages/* are pulled in.

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: 1

♻️ Duplicate comments (2)
package.json (1)

35-37: Nice: sharp override now follows the catalog

This addresses the prior note to replace the pinned sharp with the catalog alias.

pnpm-workspace.yaml (1)

1-29: Do a quick sweep for stragglers not using catalog

Ensure no package.json still pins these catalog-managed deps to non-catalog versions.

#!/bin/bash
# Search for non-catalog versions of catalog-managed libs
pkgs='axios|lodash|lucide-react|mobx|mobx-react|mobx-utils|next|sharp|swr|uuid|react|react-dom|@types/lodash|@types/react|@types/react-dom|typescript'
rg -nP --glob '!**/node_modules/**' --glob '*package.json' \
  "\"($pkgs)\"\\s*:\\s*\"(?!catalog:)[^\"]+\"" -C1
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 5fbc859 and f43e71f.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (5)
  • apps/space/package.json (1 hunks)
  • package.json (1 hunks)
  • packages/propel/package.json (1 hunks)
  • packages/ui/package.json (2 hunks)
  • pnpm-workspace.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/ui/package.json
  • apps/space/package.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-29T08:45:15.953Z
Learnt from: sriramveeraghanta
PR: makeplane/plane#7672
File: pnpm-workspace.yaml:8-9
Timestamp: 2025-08-29T08:45:15.953Z
Learning: The makeplane/plane repository uses pnpm v10.12.1, which supports onlyBuiltDependencies configuration in pnpm-workspace.yaml files.

Applied to files:

  • pnpm-workspace.yaml
⏰ 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). (2)
  • GitHub Check: Build and lint web apps
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (3)
packages/propel/package.json (1)

44-44: Switch to catalog for lucide-react looks good

This aligns with the workspace catalog entry and keeps versions uniform.

package.json (1)

24-37: Verify catalog overrides applied in pnpm-lock.yaml
Open pnpm-lock.yaml and confirm that under “packages:” there are entries for /registry.npmjs.org/sharp/0.33.5 and /registry.npmjs.org/typescript/5.8.3.

pnpm-workspace.yaml (1)

7-17: Catalog entries and onlyBuiltDependencies update look consistent

Centralizing versions for axios/mobx/lodash/lucide-react/next/sharp/swr/uuid (+ react/types) and building sharp at root is solid.

Also applies to: 24-24

Comment on lines +44 to 46
"lucide-react": "catalog:",
"react": "catalog:",
"react-dom": "catalog:",
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Make React a peerDependency to avoid duplicate React in consumers

Libraries should not ship React as a prod dependency. Duplicate React breaks hooks and context. Move react/react-dom to peerDependencies (and keep types in devDependencies).

   "dependencies": {
@@
-    "lucide-react": "catalog:",
-    "react": "catalog:",
-    "react-dom": "catalog:",
+    "lucide-react": "catalog:",
     "recharts": "^2.15.1",
     "tailwind-merge": "^3.3.1",
     "use-font-face-observer": "^1.3.0"
   },
+  "peerDependencies": {
+    "react": "catalog:",
+    "react-dom": "catalog:"
+  },
   "devDependencies": {
@@
-    "@types/react": "catalog:",
-    "@types/react-dom": "catalog:",
+    "@types/react": "catalog:",
+    "@types/react-dom": "catalog:",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"lucide-react": "catalog:",
"react": "catalog:",
"react-dom": "catalog:",
"dependencies": {
"lucide-react": "catalog:",
"recharts": "^2.15.1",
"tailwind-merge": "^3.3.1",
"use-font-face-observer": "^1.3.0"
},
"peerDependencies": {
"react": "catalog:",
"react-dom": "catalog:"
},
"devDependencies": {
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
// …other devDependencies…
}
🤖 Prompt for AI Agents
In packages/propel/package.json around lines 44-46, react and react-dom are
listed as production dependencies which can cause duplicate React in consuming
apps; remove the "react" and "react-dom" entries from dependencies and add them
to peerDependencies using the same version spec (i.e. "catalog:"), and keep or
add the corresponding type packages (e.g. @types/react, @types/react-dom) under
devDependencies so consumers provide React while types remain for local
development.

@sriramveeraghanta sriramveeraghanta changed the title feat: adding more packages to catalog [WEB-4837] feat: adding more packages to catalog Sep 2, 2025
@sriramveeraghanta sriramveeraghanta merged commit 4b74751 into preview Sep 2, 2025
6 of 8 checks passed
@sriramveeraghanta sriramveeraghanta deleted the chore-packages-to-catalog branch September 2, 2025 15:33
@makeplane
Copy link

makeplane bot commented Sep 2, 2025

Pull Request Linked with Plane Work Items

Comment Automatically Generated by Plane

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants