# A central location for most common version constraints
# (across edx repos) for pip-installation.
#
# Similar to other constraint files this file doesn't install any packages.
# It specifies version constraints that will be applied if a package is needed.
# When pinning something here, please provide an explanation of why it is a good
# idea to pin this package across all edx repos, Ideally, link to other information
# that will help people in the future to remove the pin when possible.
# Writing an issue against the offending project and linking to it here is good.
#
# Note: Changes to this file will automatically be used by other repos, referencing
#  this file from Github directly. It does not require packaging in edx-lint.

# using LTS django version
Django<6.0

# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process.
# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html
# See https://github.com/openedx/edx-platform/issues/35126 for more info
elasticsearch<7.14.0

# 2026-07-06: Constrain social-auth-* packages to the latest version compatible with
# edx-drf-extensions<=10.6.0. (Newer versions require a POST instead of a GET.)
# Tracking issue: https://github.com/openedx/edx-drf-extensions/issues/561
social-auth-app-django<6.0.0
social-auth-core<5.0.0

# 2026-08-11: pip-tools is only tested against the latest pip released at the time
# pip-tools was released; also, pip-tools package dependencies are extremely permissive
# about the pip version required, so the dependency resolver will not prevent an unwanted
# pip upgrade which would break pip-tools. The end result is that pip MUST be constrained
# by all pip-tools users in order to avoid potentially weeks-long lapses in pip <->
# pip-tools compatibility.  We've constrained pip here in common_constraints.txt in the
# past, but always removed it once the issue was "fixed". Removing this constraint was
# always a mistake.
#
# This is a semi-permanent constraint and should be manually bumped after each pip-tools
# release.
#
# Exceptional conditions for removal:
# - We stop using pip-tools, OR
# - We migrate to the proposed `pip-tools[stable]` extra: https://github.com/jazzband/pip-tools/pull/2257
pip<26.2.1  # Known to work with pip-tools==7.6.1
