Skip to content

Relax posthog upper bound<6.0.0 to prevent installation conflicts. #2604

@sipa-echo-ngbm

Description

@sipa-echo-ngbm

Is your feature request related to a problem? Please describe.
I am encountering a dependency conflict that prevents me from installing deepeval. I'm always frustrated when I can't use the latest versions of other tools in my stack. Specifically, deepeval==3.9.6 restricts the posthog dependency to <6.0.0. However, my project requires posthog==7.9.6 (a much newer version).

Because of this strict upper bound, modern package managers like uv fail to resolve the dependencies, making it impossible to add deepeval to a project that is already utilizing current versions of PostHog.

Describe the solution you'd like
I would like deepeval to update its posthog dependency requirement to support version 7.x.x (e.g., posthog>=5.4.0,<8.0.0 or similar), assuming there are no breaking changes in the newer PostHog SDK that negatively impact deepeval's telemetry/tracking.

Describe alternatives you've considered

  • Downgrading PostHog: I considered downgrading my project's posthog dependency to a 5.x.x version, but this would break my application which relies on newer PostHog features.
  • Forcing the installation: Using the --frozen flag in uv or --no-deps in pip to skip locking, but this is a hacky workaround that could lead to unexpected runtime errors and unstable environments.
  • Forking the repo: Forking deepeval to manually bump the dependency constraint, which I'd prefer to avoid so I can stay on the official release track.

Additional context
Here is the exact terminal output when attempting to add the package using uv:

>uv add deepeval==3.9.6
  x No solution found when resolving dependencies:
  `-> Because deepeval==3.9.6 depends on posthog>=5.4.0,<6.0.0 and your project depends on deepeval==3.9.6, we can conclude that your project depends on posthog>=5.4.0,<6.0.0.
      And because your project depends on posthog==7.9.6, we can conclude that your project's requirements are unsatisfiable.
  help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions