Python: Update chromadb requirement from >=0.5,<1.4 to >=0.5,<1.6 and fix azure-search-documents compatibility#13951
Conversation
Updates the requirements on [chromadb](https://github.com/chroma-core/chroma) to permit the latest version. - [Release notes](https://github.com/chroma-core/chroma/releases) - [Changelog](https://github.com/chroma-core/chroma/blob/main/RELEASE_PROCESS.md) - [Commits](chroma-core/chroma@0.5.0...1.5.8) --- updated-dependencies: - dependency-name: chromadb dependency-version: 1.5.8 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
There was a problem hiding this comment.
Automated Code Review
Reviewers: 4 | Confidence: 93%
✓ Correctness
This is a simple upper-bound version bump for the chromadb dependency from < 1.4 to < 1.6. The change allows users to install newer chromadb versions. The existing code imports standard chromadb public APIs (Client, Collection, GetResult, QueryResult, ClientAPI, Settings, EmbeddingFunction, Space, and collection configuration classes) which are stable across minor versions. No correctness issues found.
✓ Security Reliability
This is a minimal, low-risk change that widens the upper version bound for the chromadb optional dependency from < 1.4 to < 1.6. There are no security or reliability concerns — it simply allows users to install newer chromadb versions (1.4.x and 1.5.x) which may contain their own bug fixes and security patches. No injection risks, secrets, resource leaks, or unsafe patterns are introduced.
✓ Test Coverage
This is a minor dependency upper-bound bump for chromadb from < 1.4 to < 1.6 in pyproject.toml. The existing unit tests in tests/unit/connectors/memory/test_chroma.py use MagicMock for the chromadb client, so they verify connector logic but don't exercise real chromadb API compatibility. No new behavior is introduced by relaxing a version constraint, so no new tests are strictly required. The existing test suite remains valid.
✗ Design Approach
I found one design-level issue: this PR widens the supported
chromadbrange to include 1.4/1.5 without any corresponding compatibility work or PR-time validation for the actual Chroma integration. That is risky here because the connector imports and calls Chroma-specific APIs directly, while the only pull-request coverage for Chroma is mocked unit tests; the real memory integration suite runs later in non-PR merge-gate/scheduled workflows.
Flagged Issues
-
python/pyproject.toml:80widens supported Chroma versions to<1.6, but the Chroma connector is tightly coupled to specific Chroma APIs (python/semantic_kernel/connectors/chroma.py:9-13,123-180) and the PR path does not exercise a real Chroma client. Unit tests mockClientAPI(python/tests/unit/connectors/memory/test_chroma.py:12-116), while the real memory integration suite only runs in non-PR jobs (.github/workflows/python-integration-tests.yml:299-355,357-462). The better approach is to keep the existing cap until compatibility with 1.4/1.5 is explicitly verified, or add/update coverage that validates the connector against the newly admitted versions before widening the dependency range.
Automated review by dependabot[bot]'s agents
| ] | ||
| chroma = [ | ||
| "chromadb >= 0.5,< 1.4" | ||
| "chromadb >= 0.5,< 1.6" |
There was a problem hiding this comment.
This advertises support for Chroma 1.4/1.5, but the connector depends on Chroma-specific APIs (python/semantic_kernel/connectors/chroma.py:9-13, 123-180) and PR-time coverage does not exercise a real Chroma client: the unit tests mock ClientAPI (python/tests/unit/connectors/memory/test_chroma.py:12-116), while the real memory integration tests only run in non-PR jobs (.github/workflows/python-integration-tests.yml:299-355, 357-462). Please either keep the old cap until compatibility is verified, or add coverage that validates the connector against the newly admitted versions before widening the range.
|
@copilot: fix the CI/CD failures |
Fixed in commit The CI failures were caused by
|
### Motivation and Context Semantic Kernel currently has 43 open Dependabot pull requests spanning GitHub Actions, .NET, Python, npm, and Yarn dependency graphs. This rollup applies their compatible net changes together on the latest `main`, making it possible to validate and merge the updates as one coherent dependency state. Supersedes: - microsoft#13133 - microsoft#13134 - microsoft#13136 - microsoft#13172 - microsoft#13507 - microsoft#13601 - microsoft#13606 - microsoft#13666 - microsoft#13673 - microsoft#13688 - microsoft#13700 - microsoft#13707 - microsoft#13708 - microsoft#13712 - microsoft#13721 - microsoft#13873 - microsoft#13930 - microsoft#13939 - microsoft#13949 - microsoft#13950 - microsoft#13951 - microsoft#13997 - microsoft#14000 - microsoft#14053 - microsoft#14069 - microsoft#14088 - microsoft#14091 - microsoft#14094 - microsoft#14103 - microsoft#14106 - microsoft#14107 - microsoft#14108 - microsoft#14109 - microsoft#14110 - microsoft#14128 - microsoft#14148 - microsoft#14149 - microsoft#14160 - microsoft#14161 - microsoft#14164 - microsoft#14171 - microsoft#14172 - microsoft#14173 ### Description - Updates the requested GitHub Actions and preserves the PR-file-scoped typos workflow fix. - Consolidates the .NET Aspire, AWS SDK, ReportGenerator, JavaScript, and SQLite security updates. - Regenerates the npm, Yarn, and uv lockfiles from the combined manifests instead of resolving generated-file conflicts by selection. - Rolls overlapping updates forward to one compatible result: pyasn1 0.6.4 supersedes 0.6.3; pyOpenSSL 26.2.0 remains compatible with cryptography 48.0.1; and Vite 8/Rolldown makes the older Rollup-only overrides obsolete. - Retains updates already present on current `main` without reintroducing stale pins, including Aspire Hosting Azure Search 13.3.0 and Prompty.Core 2.0.0-beta.3. The full .NET solution builds in Debug with zero warnings and errors. Focused validation passed 82 .NET tests (3 skipped), 1,096 Python tests, both frontend production builds, and uv lock consistency checks for the main Python project and OAuth sample. ### Contribution Checklist - [x] The code builds clean without any errors or warnings - [ ] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [ ] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone 😄 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
|
Superseded by #14176 |
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
Motivation and Context
Updates the requirements on chromadb to permit the latest version (up to 1.6). Also fixes CI failures caused by
azure-search-documents11.7.0b2 removing internal_endpointand_credentialattributes fromSearchIndexClient.Description
Chromadb update:
chromadbrequirement from>=0.5,<1.4to>=0.5,<1.6inpyproject.tomluv.lockto resolve chromadb to version 1.5.9Azure AI Search compatibility fix:
_get_search_clientinazure_ai_search.pyto accept explicitendpointandcredentialparameters instead of accessing removed private attributes (_endpoint,_credential) onSearchIndexClient_resolve_credentialhelper function to centralize credential resolution logicsearch_endpointandsearch_credentialfields toAzureAISearchCollectionandAzureAISearchStoreso endpoint/credential are stored and passed explicitly when creatingSearchClientinstancesContribution Checklist