Repository navigation
Remove the default embedding package from the chromadb dev dependencies - #1505
Merged
Merged
Conversation
onnxruntime-node, a dev dependency of the chromadb module, downloads CUDA binaries from GitHub in its postinstall script. Every job now installs every workspace, so a failed download fails the Lint job.
The chromadb tests pass without @chroma-core/default-embed. It pulls in onnxruntime-node, whose install script downloads CUDA binaries and failed the Lint job on main. With the package gone, nothing installs onnxruntime-node, so the switch that skipped that download goes too.
cristianrgreco
marked this pull request as ready for review
October 12, 2026 13:26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Removes
@chroma-core/default-embedfrom the chromadb module's dev dependencies. That takesonnxruntime-nodeout of the install, which is what brokeLintonmain.packages/modules/chromadb/package.json: the dev dependency is removed. The lockfile loses 55 packages (@chroma-core/*,@huggingface/transformers,onnxruntime-node,onnxruntime-web,sharpand its platform packages) and nothing else changes.docs/modules/chromadb.md: the package is now listed as optional for the examples, with what happens without it.ONNXRUNTIME_NODE_INSTALL_CUDA=skipin thenpm-setupaction. With the package gone that's no longer needed, so the action is unchanged frommain.Why
The
Lintjob failed onmainafter #1495 (run). It wasn't a lint error.npm cifailed:onnxruntime-nodecame in through@chroma-core/default-embed. On Linux x64 its postinstall script downloads a 214 MB archive of CUDA libraries from GitHub. Since #1495 every job installs every workspace, so when the shared cache is missing, a failed download fails whichever job hits it. The same error also failed a test job on #1492.The chromadb tests don't need the package. They pass embeddings explicitly or supply their own embedding function. Without it, chromadb logs a warning when a collection has no embedding function and carries on.
Verification
require.resolve("@chroma-core/default-embed")fails: 5 of 5 tests pass, including the Ollama embedding test. chromadb logged its "Please install @chroma-core/default-embed" warning 12 times.npm cisucceeds with the new lockfile and leaves it unchanged. The lockfile diff is the 55 removed packages plus the workspace's manifest entry.npm run format,npm run lint,npm run check-compiles: pass.Effect on installs
node_modulesgoes from 1.3 GB to 934 MB.Follow-up for #1492
#1492's
knip.jsoncignores@chroma-core/default-embedfor the chromadb workspace. Once this is merged that entry is unneeded; knip will print a configuration hint for it until it's removed.Why this isn't breaking
@chroma-core/default-embedwas a dev dependency, so@testcontainers/chromadb's published dependencies don't change. No package source changes.