router icon indicating copy to clipboard operation
router copied to clipboard

Freeze namespace versions at the time of publishing

Open Sheraff opened this issue 6 months ago • 2 comments

This might be a big change for a tiny issue, so I'd love some opinions on this. I'm really not at all an expert on npm / semver / publishing / ...


There is a minor issue when installing (at least w/ pnpm)

├─┬ @tanstack/router-cli 1.120.18
│ └─┬ @tanstack/router-generator 1.120.20
│   └── ✕ unmet peer @tanstack/react-router@^1.120.20: found 1.120.18

Most likely, this is usually a benign issue (since most releases of tanstack/* packages are "so that all sub-packages are on the same semver"). And it's also not an issue if you always stick to the latest version. But there might be some edge-cases where this will break something, right?

The expected behavior would be for @tanstack/router-cli to require @tanstack/router-generator in the same version as itself. But looking at the distributed package.json for 1.121.27 (current) we see

"@tanstack/router-generator": "^1.121.27"

Which means it accepts higher versions too.

But since router-generator then also has react-router in its dependencies, it's likely users will have an "unmet peer" dep issue, since they probably install router-cli and react-router, but not router-generator.

Looking at the pnpm docs on publishing (https://pnpm.io/workspaces#publishing-workspace-packages), we can see that the workspace:^ syntax results in ^1.2.3, but the workspace:* syntax would result in 1.2.3.

So for example, if we have foo, bar, qar, zoo in the workspace and they all are at version 1.5.0, the following:

{
    "dependencies": {
        "foo": "workspace:*",
        "bar": "workspace:~",
        "qar": "workspace:^",
        "zoo": "workspace:^1.5.0"
    }
}

Will be transformed into:

{
    "dependencies": {
        "foo": "1.5.0",
        "bar": "~1.5.0",
        "qar": "^1.5.0",
        "zoo": "^1.5.0"
    }
}

Sheraff avatar Jun 19 '25 19:06 Sheraff

View your CI Pipeline Execution ↗ for commit 659214da47a733978d0617b27558aa7994f65c32.

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 4m 37s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 2m 19s View ↗

☁️ Nx Cloud last updated this comment at 2025-06-19 19:30:09 UTC

nx-cloud[bot] avatar Jun 19 '25 19:06 nx-cloud[bot]

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@4475
@tanstack/directive-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/directive-functions-plugin@4475
@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@4475
@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@4475
@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@4475
@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@4475
@tanstack/react-router-with-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-with-query@4475
@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@4475
@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@4475
@tanstack/react-start-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-plugin@4475
@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@4475
@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@4475
@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@4475
@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@4475
@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@4475
@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@4475
@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@4475
@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@4475
@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@4475
@tanstack/server-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/server-functions-plugin@4475
@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@4475
@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@4475
@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@4475
@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@4475
@tanstack/solid-start-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-plugin@4475
@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@4475
@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@4475
@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@4475
@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@4475
@tanstack/start-server-functions-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-client@4475
@tanstack/start-server-functions-fetcher

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-fetcher@4475
@tanstack/start-server-functions-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-server@4475
@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@4475
@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@4475
@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@4475

commit: 659214d

pkg-pr-new[bot] avatar Jun 19 '25 19:06 pkg-pr-new[bot]