Skip to content

fix(deps): relax tenacity requirement to support google-genai 1.21.1 #1625

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 20, 2025

Conversation

jxnl
Copy link
Collaborator

@jxnl jxnl commented Jun 20, 2025

Summary

  • Relaxed tenacity requirement from >=9.0.0 to >=8.2.3 to resolve dependency conflict
  • Bumped version to 1.9.0
  • Enables compatibility with latest google-genai (1.21.1)

Problem

The latest versions of instructor (1.8.3) and google-genai (1.21.1) have conflicting tenacity requirements:

  • google-genai 1.21.1 requires: tenacity>=8.2.3,<9.0.0
  • instructor 1.8.3 requires: tenacity>=9.0.0,<10.0.0

These ranges are mutually exclusive, preventing users from installing both packages together.

Solution

By relaxing instructor's tenacity requirement to >=8.2.3,<10.0.0, we allow both packages to coexist while maintaining compatibility with the functionality instructor needs from tenacity.

Test plan

  • Verified installation works with uv pip install "instructor[google-genai]" google-genai==1.21.1
  • Ran linter and type checks
  • Existing tests should pass with the relaxed dependency

Fixes #1641

🤖 Generated with Claude Code


Important

Relaxed tenacity dependency to resolve conflict with google-genai and updated version to 1.9.0.

  • Dependencies:
    • Relaxed tenacity requirement in pyproject.toml and uv.lock from >=9.0.0 to >=8.2.3 to resolve conflict with google-genai 1.21.1.
    • Added cairosvg and pillow to docs dependencies in pyproject.toml and uv.lock.
    • Added examples dependencies: cohere, datasets, pyright, ruff, trafilatura in pyproject.toml and uv.lock.
  • Versioning:
    • Bumped version from 1.8.3 to 1.9.0 in pyproject.toml and uv.lock.

This description was created by Ellipsis for 85d84ad. You can customize this summary. It will automatically update as commits are pushed.

This change resolves the dependency conflict between instructor and google-genai
by relaxing the tenacity requirement from >=9.0.0 to >=8.2.3, allowing both
packages to be installed together.

Bump version to 1.9.0

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

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions bot added dependencies Pull requests that update a dependency file python Pull requests that update python code size:M This PR changes 30-99 lines, ignoring generated files. labels Jun 20, 2025
Copy link

cloudflare-workers-and-pages bot commented Jun 20, 2025

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
instructor 85d84ad Commit Preview URL Jun 20 2025, 07:14 PM

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Caution

Changes requested ❌

Reviewed everything up to 9ede693 in 2 minutes and 36 seconds. Click for details.
  • Reviewed 65 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 7 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. pyproject.toml:12
  • Draft comment:
    Ensure instructor’s usage of tenacity is fully compatible with versions >=8.2.3 now allowed.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 85% This comment is asking the author to ensure compatibility with a specific version of a library. It is not a specific code suggestion or a request for a test to be written. It also does not address any of the additional rules provided. Therefore, it should be removed.
2. pyproject.toml:27
  • Draft comment:
    Version bump to 1.9.0 is applied; ensure related documentation and upgrade notes are updated accordingly.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. uv.lock:1676
  • Draft comment:
    Version update in uv.lock to 1.9.0 is in sync with pyproject.toml; verify consistency in downstream processes.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 85% This comment is about verifying consistency in downstream processes, which is not specific enough and asks the author to ensure something without providing a specific suggestion or question. It also relates to dependency changes, which are not to be commented on unless they are about documentation or tests.
4. uv.lock:1682
  • Draft comment:
    The addition of mkdocs and mkdocs-material as core dependencies here is unusual; if they’re only needed for docs generation, consider making them optional.
  • Reason this comment was not posted:
    Marked as duplicate.
5. uv.lock:1931
  • Draft comment:
    Relaxed tenacity constraint to '>=8.2.3,<10.0.0'; double-check that all tenacity usage in instructor works with older versions.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 85% This comment is asking the PR author to double-check compatibility with older versions of a dependency, which violates the rule against asking the author to confirm or double-check things. It also relates to dependency changes, which we should not comment on unless we recognize the library and have specific knowledge about it.
6. uv.lock:1922
  • Draft comment:
    There are duplicate mkdocs constraints: one unconditional (>=1.6.1) and one conditional for docs extras (>=1.4.3,<2.0.0). Consider unifying these to avoid potential version conflicts.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
7. uv.lock:1935
  • Draft comment:
    Duplicate mkdocs-material constraints detected: one set to '>=9.5.49' unconditionally and another for docs extras ('>=9.5.9,<10.0.0'). Consolidate these to ensure clear dependency resolution.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 0% vs. threshold = 85% The comment identifies a real issue with potentially conflicting dependency specifications. Having two different version constraints could lead to confusion or dependency resolution issues. The change is in the lock file and relates to dependency management. However, lock files are typically generated automatically and the actual fix would need to happen in the source requirements files. The comment might be addressing a symptom rather than the root cause - the actual fix would need to be made in pyproject.toml or requirements.txt, not the lock file directly. While the fix location might be elsewhere, identifying inconsistent dependency specifications is still valuable for maintaining clean dependency management. The comment should be deleted because it's commenting on a generated lock file rather than the source of the dependency specifications, and our rules specify not to comment on dependency-related issues.

Workflow ID: wflow_6Hu17rsMwnSLa8qm

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

pyproject.toml Outdated
"pydantic-core<3.0.0,>=2.18.0",
"jiter>=0.6.1,<0.11",
"jinja2<4.0.0,>=3.1.4",
"requests<3.0.0,>=2.32.3",
"pre-commit>=4.2.0",
"mkdocs>=1.6.1",
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider moving mkdocs and mkdocs-material to an extras or dev-dependencies group if they are only used for documentation, to avoid unnecessary core dependency bloat.

- Remove mkdocs from main dependencies (already in docs group)
- Add cairosvg and pillow to docs group from requirements-doc.txt
- Create new examples group with dependencies from requirements-examples.txt
- Keep consistent with existing dependency files
Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

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

Important

Looks good to me! 👍

Reviewed 85d84ad in 2 minutes and 7 seconds. Click for details.
  • Reviewed 175 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 9 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. pyproject.toml:16
  • Draft comment:
    Removed mkdocs and mkdocs-material from the main dependencies. Ensure these documentation tools are now intentionally moved to the extras to avoid unnecessary installation for users.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
2. pyproject.toml:126
  • Draft comment:
    Added cairosvg and pillow to the docs extra. Confirm these are required for the documentation build and that their version constraints meet your needs.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 30% <= threshold 85% The comment is asking the PR author to confirm the necessity of the added dependencies for the documentation build. This violates the rule against asking the author to confirm their intention or to ensure behavior is intended. However, it does touch on dependency changes, which are relevant if they affect documentation or tests. Since it mentions the docs extra, it could be relevant to documentation, but the comment is still asking for confirmation rather than making a specific suggestion or observation.
3. pyproject.toml:167
  • Draft comment:
    A new 'examples' extra group has been added with dependencies (cohere, datasets, pyright, ruff, trafilatura). Ensure that example usage is documented for users.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 0% vs. threshold = 85% Since this is a library project (instructor), having examples documented is important for users. However, the comment is asking to "ensure" something, which violates our rules about not asking for verification. Additionally, it's not clear if documentation is actually missing - the comment is speculative. The comment also doesn't point to specific documentation that needs to be updated. The comment raises a valid point about documentation, but it's phrased as a verification request rather than a specific issue. We might be missing existing documentation that already covers these examples. While documentation is important, this comment violates our rules by asking for verification without pointing to specific missing documentation. It's too speculative. The comment should be deleted because it asks for verification and is speculative rather than pointing to specific missing documentation.
4. uv.lock:1682
  • Draft comment:
    Removed mkdocs and mkdocs-material from the global dependencies in the lockfile. This aligns the lockfile with the updated pyproject.toml configuration.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 85% This comment is purely informative, explaining a change made to dependencies. It doesn't provide a suggestion or ask for a specific action, which violates the rules against purely informative comments.
5. uv.lock:1808
  • Draft comment:
    Added cairosvg and pillow in the docs extra within the lockfile. Verify that these version constraints match those in pyproject.toml.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 85% The comment is asking the author to verify version constraints, which is against the rules. It doesn't provide a specific suggestion or point out a specific issue with the code.
6. uv.lock:1817
  • Draft comment:
    The new examples extra group is now present in the lockfile. Ensure the examples dependencies are correctly documented for user guidance.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 85% This comment is asking the author to ensure that the examples dependencies are documented, which is related to documentation updates. However, it doesn't directly suggest a specific action or point out a specific issue with the code. It also doesn't align with the rules about documentation updates for library code changes, as it doesn't specify a change in the library code itself. Therefore, this comment is not approved.
7. uv.lock:3750
  • Draft comment:
    Bumped pyright from version 1.1.391 to 1.1.401. Verify that this update does not adversely affect any downstream integrations.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
8. uv.lock:4273
  • Draft comment:
    Updated ruff from 0.8.4 to 0.11.13 with numerous wheel adjustments. Double-check that this major version bump is compatible with your linter configurations.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
9. pyproject.toml:1
  • Draft comment:
    The PR title mentions relaxing the tenacity requirement, but no changes targeting tenacity are visible in this diff. Please ensure that the intended tenacity constraint relaxation is included if required.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_6ntfHLR3Wi4PGrLG

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@jxnl jxnl merged commit 245d192 into main Jun 20, 2025
9 of 16 checks passed
@jxnl jxnl deleted the fix/google-genai-tenacity-conflict branch June 20, 2025 19:15
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 python Pull requests that update python code size:M This PR changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant