Skip to content

Python: Update chromadb requirement from >=0.5,<1.4 to >=0.5,<1.6 and fix azure-search-documents compatibility#13951

Closed
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/pip/python/chromadb-gte-0.5-and-lt-1.6
Closed

Python: Update chromadb requirement from >=0.5,<1.4 to >=0.5,<1.6 and fix azure-search-documents compatibility#13951
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/pip/python/chromadb-gte-0.5-and-lt-1.6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github May 5, 2026

Copy link
Copy Markdown
Contributor

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-documents 11.7.0b2 removing internal _endpoint and _credential attributes from SearchIndexClient.

Description

Chromadb update:

  • Updated chromadb requirement from >=0.5,<1.4 to >=0.5,<1.6 in pyproject.toml
  • Updated uv.lock to resolve chromadb to version 1.5.9

Azure AI Search compatibility fix:

  • Refactored _get_search_client in azure_ai_search.py to accept explicit endpoint and credential parameters instead of accessing removed private attributes (_endpoint, _credential) on SearchIndexClient
  • Added _resolve_credential helper function to centralize credential resolution logic
  • Added search_endpoint and search_credential fields to AzureAISearchCollection and AzureAISearchStore so endpoint/credential are stored and passed explicitly when creating SearchClient instances
  • Updated unit tests to remove references to the removed private attributes, updated assertions, and added new tests for credential resolution and the pre-built client scenario

Contribution Checklist

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>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file. Used by Dependabot. python Pull requests for the Python Semantic Kernel labels May 5, 2026
Copilot AI review requested due to automatic review settings May 5, 2026 01:38
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file. Used by Dependabot. label May 5, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner May 5, 2026 01:38
@dependabot dependabot Bot added the python Pull requests for the Python Semantic Kernel label May 5, 2026
@dependabot
dependabot Bot removed the request for review from Copilot May 5, 2026 01:38
@github-actions github-actions Bot changed the title Update chromadb requirement from <1.4,>=0.5 to >=0.5,<1.6 in /python Python: Update chromadb requirement from <1.4,>=0.5 to >=0.5,<1.6 in /python May 5, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 chromadb range 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:80 widens 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 mock ClientAPI (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

Comment thread python/pyproject.toml
]
chroma = [
"chromadb >= 0.5,< 1.4"
"chromadb >= 0.5,< 1.6"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

@moonbox3

Copy link
Copy Markdown
Collaborator

@copilot: fix the CI/CD failures

Copilot AI review requested due to automatic review settings June 17, 2026 05:32
@dependabot
dependabot Bot removed the request for review from Copilot June 17, 2026 05:32

Copilot AI commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

@copilot: fix the CI/CD failures

Fixed in commit Fix CI failures: update azure-search-documents compatibility and chromadb lock.

The CI failures were caused by azure-search-documents 11.7.0b2 removing the internal _endpoint and _credential attributes from SearchIndexClient. The fix:

  1. Refactored _get_search_client to accept explicit endpoint and credential parameters instead of accessing private attributes on SearchIndexClient
  2. Added a _resolve_credential helper function
  3. Added search_endpoint and search_credential fields to AzureAISearchCollection and AzureAISearchStore
  4. Updated tests to remove references to the removed private attributes and added new tests for the credential resolution logic
  5. Updated uv.lock to reflect the chromadb >=0.5,<1.6 constraint (resolved to chromadb 1.5.9)

Copilot AI changed the title Python: Update chromadb requirement from <1.4,>=0.5 to >=0.5,<1.6 in /python Python: Update chromadb requirement from >=0.5,<1.4 to >=0.5,<1.6 and fix azure-search-documents compatibility Jun 17, 2026
Copilot AI requested a review from moonbox3 June 17, 2026 05:33
pull Bot pushed a commit to AmirulAndalib/semantic-kernel that referenced this pull request Jul 23, 2026
### 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>
@moonbox3

Copy link
Copy Markdown
Collaborator

Superseded by #14176

@moonbox3 moonbox3 closed this Jul 23, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

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 @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/pip/python/chromadb-gte-0.5-and-lt-1.6 branch July 23, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file. Used by Dependabot. python Pull requests for the Python Semantic Kernel

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants