Skip to content

fix: remove invalid empty version fields from workspace packages#1333

Merged
Crunchyman-ralph merged 1 commit intomainfrom
fix/remove-empty-version-fields
Oct 21, 2025
Merged

fix: remove invalid empty version fields from workspace packages#1333
Crunchyman-ralph merged 1 commit intomainfrom
fix/remove-empty-version-fields

Conversation

@Crunchyman-ralph
Copy link
Collaborator

@Crunchyman-ralph Crunchyman-ralph commented Oct 21, 2025

What type of PR is this?

  • 🐛 Bug fix
  • ✨ Feature
  • 🔌 Integration
  • 📝 Docs
  • 🧹 Refactor
  • Other:

Description

Removes "version": "" from internal workspace packages to fix
changesets validation errors. These private packages don't need
explicit version fields as they use workspace protocol.

Fixes validation errors:

  • Package "task-master-ai" must depend on the current version of "@tm/ai-sdk-provider-grok-cli": "" vs "*"
  • Package "task-master-ai" must depend on the current version of "@tm/cli": "" vs "*"
  • Package "@tm/cli" must depend on the current version of "@tm/core": "" vs "*"
  • Package "extension" must depend on the current version of "@tm/core": "" vs "*"
  • Package "@tm/mcp" must depend on the current version of "@tm/core": "" vs "*"

Related Issues

How to Test This

# Example commands or steps

Expected result:

Contributor Checklist

  • Created changeset: npm run changeset
  • Tests pass: npm test
  • Format check passes: npm run format-check (or npm run format to fix)
  • Addressed CodeRabbit comments (if any)
  • Linked related issues (if any)
  • Manually tested the changes

Changelog Entry


For Maintainers

  • PR title follows conventional commits
  • Target branch correct
  • Labels added
  • Milestone assigned (if applicable)

Summary by CodeRabbit

  • Chores
    • Cleaned package metadata across the repository by removing empty top-level "version" fields from multiple package manifests.
    • Simplified publishing metadata by removing an unused publishConfig entry from one package manifest.

@changeset-bot
Copy link

changeset-bot bot commented Oct 21, 2025

⚠️ No Changeset found

Latest commit: 2d988a1

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 21, 2025

Walkthrough

Removed empty top-level "version" fields from several package.json manifests and removed publishConfig (including access: public) from packages/ai-sdk-provider-grok-cli/package.json. No runtime or control-flow changes.

Changes

Cohort / File(s) Change Summary
Version field removals
apps/cli/package.json, apps/mcp/package.json, packages/build-config/package.json, packages/tm-core/package.json
Removed empty top-level "version" property from each package.json manifest. No other fields or logic were modified.
PublishConfig & version removals
packages/ai-sdk-provider-grok-cli/package.json
Removed top-level "publishConfig" (including its access: public) and removed the empty "version" property. Other fields (e.g., files, dependencies, scripts) left unchanged.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • eyaltoledano

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "fix: remove invalid empty version fields from workspace packages" directly and accurately describes the primary change in the changeset. The title clearly identifies both the action (removing empty version fields) and the scope (workspace packages across multiple package.json files), making it easy for reviewers to understand the change at a glance. The title is concise, specific, and avoids vague terminology or noise, aligning well with the actual modifications made to apps/cli, apps/mcp, packages/ai-sdk-provider-grok-cli, packages/build-config, and packages/tm-core package.json files.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/remove-empty-version-fields

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f98e0db and 2d988a1.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (5)
  • apps/cli/package.json (1 hunks)
  • apps/mcp/package.json (0 hunks)
  • packages/ai-sdk-provider-grok-cli/package.json (1 hunks)
  • packages/build-config/package.json (1 hunks)
  • packages/tm-core/package.json (1 hunks)
💤 Files with no reviewable changes (1)
  • apps/mcp/package.json
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/tm-core/package.json
  • packages/ai-sdk-provider-grok-cli/package.json
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.337Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/build-config/package.json:14-15
Timestamp: 2025-09-22T19:45:13.323Z
Learning: In the eyaltoledano/claude-task-master repository, Crunchyman-ralph intentionally omits version fields from internal packages (like tm/build-config) to prevent changesets from releasing new versions for these packages. This is the desired behavior for internal tooling packages that should not be published or versioned independently.
⏰ 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: Test
🔇 Additional comments (2)
apps/cli/package.json (1)

1-53: Removal of empty version field is correct.

The removal of the empty "version" field from this private workspace package aligns with the PR objective. @tm/cli already correctly uses the workspace protocol ("*") for internal dependency @tm/core (line 26), so it will be managed through changesets' workspace mechanism rather than explicit versioning. This resolves the reported changesets validation mismatch between task-master-ai and @tm/cli.

packages/build-config/package.json (1)

1-28: Removal of empty version field is consistent with workspace internal-package pattern.

The removal of the empty "version" field from @tm/build-config aligns with the established pattern in this monorepo of omitting versions from private internal packages. As noted in your prior learnings, this prevents changesets from releasing versions of internal tooling while still allowing them to be processed for dependency updates. This package has no internal workspace dependencies exposed, so the removal is safe.


Comment @coderabbitai help to get the list of available commands and usage tips.

@Crunchyman-ralph Crunchyman-ralph changed the base branch from main to next October 21, 2025 09:20
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: 0

🧹 Nitpick comments (1)
packages/ai-sdk-provider-grok-cli/package.json (1)

32-34: Minor observation: Verify publishConfig intent for private package.

This package is marked "private": true but has publishConfig.access: "public". While this may be intentional (the publishConfig is only consulted during publish attempts), confirm this is the desired configuration. This is unrelated to the current PR but worth verifying.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 675cd71 and 520272a.

📒 Files selected for processing (5)
  • apps/cli/package.json (1 hunks)
  • apps/mcp/package.json (0 hunks)
  • packages/ai-sdk-provider-grok-cli/package.json (1 hunks)
  • packages/build-config/package.json (1 hunks)
  • packages/tm-core/package.json (1 hunks)
💤 Files with no reviewable changes (1)
  • apps/mcp/package.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.337Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/build-config/package.json:14-15
Timestamp: 2025-09-22T19:45:13.323Z
Learning: In the eyaltoledano/claude-task-master repository, Crunchyman-ralph intentionally omits version fields from internal packages (like tm/build-config) to prevent changesets from releasing new versions for these packages. This is the desired behavior for internal tooling packages that should not be published or versioned independently.
📚 Learning: 2025-09-22T19:45:04.337Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.337Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.

Applied to files:

  • packages/build-config/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: Test
🔇 Additional comments (4)
packages/build-config/package.json (1)

14-27: Metadata cleanup is correct and aligns with workspace configuration.

Removing the empty version field from this private package allows the workspace protocol to manage versioning automatically, which resolves the changesets validation error. This is consistent with your prior design decisions for internal packages.

apps/cli/package.json (1)

42-52: Correct metadata removal for private package.

The empty version field has been cleanly removed. Note that this package already declares the correct workspace dependency protocol for @tm/core (line 26 uses "*"), so this change resolves the validation error reported in the PR description.

packages/tm-core/package.json (1)

46-49: License metadata added and version field removed correctly.

Adding "license": "MIT" improves metadata transparency for this core package. The removal of the empty version field allows workspace versioning to apply, resolving the changesets validation error. Both changes are metadata-only and do not affect the module's exports or runtime behavior.

packages/ai-sdk-provider-grok-cli/package.json (1)

27-34: Workspace metadata update is correct.

Removing the empty version field from this private package resolves the changesets validation error mentioned in the PR description. The file structure is valid and consistent with other updated packages.

@Crunchyman-ralph Crunchyman-ralph changed the base branch from next to main October 21, 2025 09:23
@Crunchyman-ralph Crunchyman-ralph force-pushed the fix/remove-empty-version-fields branch 2 times, most recently from cd8d7b4 to f98e0db Compare October 21, 2025 09:27
Removes `"version": ""` from internal workspace packages to fix
changesets validation errors. These private packages don't need
explicit version fields as they use workspace protocol.

Fixes validation errors:
- Package "task-master-ai" must depend on the current version of "@tm/ai-sdk-provider-grok-cli": "" vs "*"
- Package "task-master-ai" must depend on the current version of "@tm/cli": "" vs "*"
- Package "@tm/cli" must depend on the current version of "@tm/core": "" vs "*"
- Package "extension" must depend on the current version of "@tm/core": "" vs "*"
- Package "@tm/mcp" must depend on the current version of "@tm/core": "" vs "*"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@Crunchyman-ralph Crunchyman-ralph force-pushed the fix/remove-empty-version-fields branch from f98e0db to 2d988a1 Compare October 21, 2025 09:33
@Crunchyman-ralph Crunchyman-ralph merged commit 5838184 into main Oct 21, 2025
8 checks passed
sfc-gh-dflippo pushed a commit to sfc-gh-dflippo/task-master-ai that referenced this pull request Dec 4, 2025
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.

2 participants