Files
mlflow--mlflow/mlflow/ml-package-versions.yml
2026-07-13 13:22:34 +08:00

1113 lines
38 KiB
YAML

sklearn:
package_info:
repo: https://github.com/scikit-learn/scikit-learn/tree/HEAD
pip_release: "scikit-learn"
install_dev: |
uv pip install --system git+https://github.com/scikit-learn/scikit-learn.git
models:
minimum: "1.5.1"
maximum: "1.9.0"
run: |
pytest tests/sklearn/test_sklearn_model_export.py
autologging:
minimum: "1.5.1"
maximum: "1.9.0"
requirements:
">= 0.0.0": ["matplotlib", "polars"]
run: |
pytest tests/sklearn/test_sklearn_autolog.py
# Ensure sklearn autologging works without matplotlib
pip uninstall -q -y matplotlib
pytest tests/sklearn/test_sklearn_autolog_without_matplotlib.py
pytorch:
package_info:
repo: https://github.com/pytorch/pytorch/tree/HEAD
pip_release: "torch"
module_name: "torch"
install_dev: |
uv pip install --system --upgrade --pre torch -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html
models:
minimum: "2.4.0"
maximum: "2.12.0"
requirements:
">= 0.0.0": ["torchvision", "scikit-learn"]
">= 1.8": ["transformers"]
# transformers 5.x trips torch.library.infer_schema on EmbeddingBag.forward
# for torch < 2.5 (annotations stored as strings under `from __future__`).
# https://github.com/huggingface/transformers/issues/42352
"< 2.5": ["transformers<5"]
# transformers 5.10.x references torch.float8_e8m0fnu at import time, which
# only exists in torch >= 2.7, so importing any model fails on older torch.
# Fixed (guarded) in transformers 5.11.0, so exclude only the broken 5.10
# line and keep testing newer transformers on torch 2.5/2.6.
">= 2.5, < 2.7": ["transformers!=5.10.*"]
run: |
pytest tests/pytorch/test_pytorch_model_export.py tests/pytorch/test_pytorch_metric_value_conversion_utils.py
autologging:
minimum: "2.4.0"
maximum: "2.12.0"
requirements:
">= 0.0.0": ["tensorboard"]
run: |
pytest tests/pytorch/test_tensorboard_autolog.py
pytorch-lightning:
package_info:
repo: https://github.com/Lightning-AI/pytorch-lightning/tree/HEAD
pip_release: "pytorch-lightning"
module_name: "lightning"
install_dev: |
export PACKAGE_NAME=pytorch
uv pip install --system git+https://github.com/PytorchLightning/pytorch-lightning.git
autologging:
minimum: "2.3.1"
maximum: "2.6.5"
requirements:
">= 0.0.0":
[
"scikit-learn",
"torchvision",
"protobuf<4.0.0",
"tensorboard",
"greenlet<3",
"pytorch-forecasting",
]
run: |
pytest tests/pytorch/test_pytorch_autolog.py
models:
minimum: "2.3.1"
maximum: "2.6.5"
requirements:
">= 0.0.0": ["pytorch-forecasting"]
run: |
pytest tests/pytorch/test_forecasting_model.py
keras:
package_info:
repo: https://github.com/keras-team/keras/tree/HEAD
pip_release: "keras"
install_dev: |
uv pip install --system --upgrade git+https://github.com/keras-team/keras.git
models:
minimum: "3.4.0"
maximum: "3.14.1"
requirements:
">= 3.0.0": ["jax[cpu]>0.4"]
"< 3.10.0": ["jax[cpu]<0.6"]
run: |
export KERAS_BACKEND=jax
pytest tests/keras/test_callback.py
autologging:
minimum: "3.4.0"
maximum: "3.14.1"
requirements:
">= 3.0.0": ["jax[cpu]>0.4"]
"< 3.10.0": ["jax[cpu]<0.6"]
run: |
export KERAS_BACKEND=jax
pytest tests/keras/test_autolog.py
tensorflow:
package_info:
repo: https://github.com/tensorflow/tensorflow/tree/HEAD
pip_release: "tensorflow"
install_dev: |
uv pip install --system --pre tf-nightly
models:
minimum: "2.16.2"
maximum: "2.21.0"
requirements:
# Requirements to run tests for keras
">= 0.0.0": ["scikit-learn", "pyspark", "pyarrow", "transformers!=4.38.0,!=4.38.1"]
">= 2.21.0": ["tensorboard"]
run: |
pytest \
tests/tensorflow/test_tensorflow2_core_model_export.py \
tests/tensorflow/test_tensorflow2_metric_value_conversion_utils.py \
tests/tensorflow/test_keras_model_export.py \
tests/tensorflow/test_keras_pyfunc_model_works_with_all_input_types.py
autologging:
minimum: "2.16.2"
maximum: "2.21.0"
requirements:
"== dev": ["scikit-learn"]
">= 2.21.0": ["tensorboard"]
run: |
pytest tests/tensorflow/test_tensorflow2_autolog.py
xgboost:
package_info:
repo: https://github.com/dmlc/xgboost/tree/HEAD
pip_release: "xgboost"
install_dev: |
uv pip install --system git+https://github.com/dmlc/xgboost.git#subdirectory=python-package
models:
minimum: "2.1.0"
maximum: "3.2.0"
requirements:
">= 0.0.0": ["scikit-learn"]
run: |
pytest tests/xgboost/test_xgboost_model_export.py
autologging:
minimum: "2.1.0"
maximum: "3.2.0"
requirements:
">= 0.0.0": ["scikit-learn", "matplotlib"]
run: |
pytest tests/xgboost/test_xgboost_autolog.py
lightgbm:
package_info:
repo: https://github.com/microsoft/LightGBM/tree/HEAD
pip_release: "lightgbm"
install_dev: |
git clone --recursive https://github.com/microsoft/LightGBM --depth=1 --branch master /tmp/LightGBM
cd /tmp/LightGBM
bash build-python.sh install
models:
minimum: "4.5.0"
maximum: "4.6.0"
requirements:
">= 0.0.0": ["scikit-learn"]
run: |
pytest tests/lightgbm/test_lightgbm_model_export.py
autologging:
minimum: "4.5.0"
maximum: "4.6.0"
requirements:
">= 0.0.0": ["scikit-learn", "matplotlib", "polars"]
run: |
pytest tests/lightgbm/test_lightgbm_autolog.py
catboost:
package_info:
pip_release: "catboost"
models:
minimum: "1.2.6"
maximum: "1.2.10"
requirements:
">= 0.0.0": ["scikit-learn"]
"< 1.3": ["numpy<2"]
run: |
pytest tests/catboost/test_catboost_model_export.py
onnx:
package_info:
repo: https://github.com/onnx/onnx/tree/HEAD
pip_release: "onnx"
install_dev: |
# This workflow describes how to build a wheel for Linux:
# https://github.com/onnx/onnx/blob/bf3f63ece5cadea625265a42e17dd685f4cf17eb/.github/workflows/release_linux.yml
tmp_dir=$(mktemp -d)
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/onnx/onnx.git $tmp_dir
cd $tmp_dir
# Build wheel
python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
docker run --rm -v $(pwd):/github/workspace --workdir /github/workspace --entrypoint bash \
quay.io/pypa/manylinux_2_28_x86_64 .github/workflows/manylinux/entrypoint.sh $python_version manylinux_2_28_x86_64 pull_request
# Install wheel
uv pip install --system dist/*manylinux*.whl
models:
minimum: "1.17.0"
maximum: "1.21.0"
requirements:
">= 0.0.0": ["onnxruntime", "onnxscript", "torch", "scikit-learn"]
run: |
pytest tests/onnx/test_onnx_model_export.py
semantic_kernel:
package_info:
genai: true
repo: https://github.com/microsoft/semantic-kernel/tree/HEAD/python
pip_release: "semantic-kernel"
install_dev: |
uv pip install --system git+https://github.com/microsoft/semantic-kernel.git@main#subdirectory=python
autologging:
minimum: "1.34.0"
maximum: "1.43.0"
requirements:
">= 1.34.0": [
"pydantic>=2.0,<2.12",
# 1.99.2 ~ 1.99.8 have unintended breaking changes:
# https://github.com/openai/openai-python/issues/2525
"openai>=1.99.9",
]
# semantic-kernel>=1.36.1 depends on azure-ai-agents>=1.2.0b3 (pre-release).
# Explicitly specifying the prerelease requirement allows uv to resolve it without --prerelease=allow.
">= 1.36.1": ["azure-ai-agents>=1.2.0b3"]
run: |
pytest tests/semantic_kernel/test_semantic_kernel_autolog.py
spacy:
package_info:
repo: https://github.com/explosion/spaCy/tree/HEAD
pip_release: "spacy"
install_dev: |
uv pip install --system git+https://github.com/explosion/spaCy.git
models:
minimum: "3.8.2"
maximum: "3.8.14"
run: |
pytest tests/spacy/test_spacy_model_export.py
statsmodels:
package_info:
repo: https://github.com/statsmodels/statsmodels/tree/HEAD
pip_release: "statsmodels"
install_dev: |
uv pip install --system git+https://github.com/statsmodels/statsmodels.git
models:
minimum: "0.14.3"
maximum: "0.14.6"
run: |
pytest tests/statsmodels/test_statsmodels_model_export.py
autologging:
minimum: "0.14.3"
maximum: "0.14.6"
run: |
pytest tests/statsmodels/test_statsmodels_autolog.py
spark:
package_info:
repo: https://github.com/apache/spark/tree/HEAD
pip_release: "pyspark"
module_name: "pyspark"
install_dev: |
temp_dir=$(mktemp -d)
git clone --depth 1 https://github.com/apache/spark.git $temp_dir
cd $temp_dir
# -Pconnect -Phive is required by spark connect
./build/sbt -Pconnect -Phive clean package connect/assembly
cd python/packaging/classic
uv pip install --system '.[connect]'
pyspark --version
models:
minimum: "3.2.1"
maximum: "4.1.2"
java:
"<= 3.4.1": "11"
# NB: Allow unreleased maximum versions for the pyspark package to support models and
# autologging use cases in environments where newer versions of pyspark are available
# prior to their release on PyPI (e.g. Databricks)
allow_unreleased_max_version: True
requirements:
">= 0.0.0": ["boto3", "scikit-learn", "pyarrow", "numpy<2"]
"< 3.4.0": ["pandas<2"]
">= 3.5.0": ["torch<2.6.0", "scikit-learn", "torcheval"]
">= 3.5.0, < dev": ["pyspark[connect]"]
run: |
SAGEMAKER_OUT=$(mktemp)
if mlflow sagemaker build-and-push-container --no-push --mlflow-home . > $SAGEMAKER_OUT 2>&1; then
echo "Sagemaker container build succeeded.";
else
echo "Sagemaker container build failed, output:";
cat $SAGEMAKER_OUT;
exit 1
fi
pytest tests/spark --ignore tests/spark/autologging --ignore tests/spark/test_spark_connect_model_export.py
if [[ $(python -c "from packaging.version import Version;import pyspark;print(Version(pyspark.__version__) >= Version('3.5'))") = "True" ]]; then
pytest tests/spark/test_spark_connect_model_export.py;
fi
autologging:
minimum: "3.3.0"
maximum: "4.1.2"
java:
"<= 3.4.1": "11"
# NB: Allow unreleased maximum versions for the pyspark package to support models and
# autologging use cases in environments where newer versions of pyspark are available
# prior to their release on PyPI (e.g. Databricks)
allow_unreleased_max_version: True
requirements:
">= 0.0.0": ["scikit-learn", "numpy<2"]
"< 3.4.0": ["pandas<2"]
run: |
# Build Java package
# Pyspark 4.0 ('dev' version) exclusively supports Scala 2.13
if [[ $(python -c "import pyspark;from packaging.version import Version;print(Version(pyspark.__version__).major >= 4)") = "True" ]]; then
pushd mlflow/java/spark_2.13
else
pushd mlflow/java/spark_2.12
fi
mvn package -DskipTests -q
popd
# `test_spark_disable_autologging.py` is flaky if it runs with other tests
# so run it individually
pytest tests/spark/autologging/datasource/test_spark_disable_autologging.py
# NB: Running each .py file individually is important (instead of
# 'pytest tests/spark/autologging') not to share SparkSession across tests
# `test_spark_datasource_autologging_crossframework.py` fails when run with other tests
pytest tests/spark/autologging/datasource/test_spark_datasource_autologging_crossframework.py
find tests/spark/autologging -name 'test*.py' | grep -v crossframework | grep -v test_spark_disable_autologging | xargs -L 1 pytest
prophet:
package_info:
pip_release: "prophet"
models:
minimum: "1.1.6"
maximum: "1.3.0"
requirements:
# Prophet does not handle numpy 2 yet. https://github.com/facebook/prophet/issues/2595
">= 0.0.0": ["numpy<2"]
# cmdstanpy>=1.3.0 is not compatible with prophet<=1.2.0: https://github.com/facebook/prophet/issues/2697
"<= 1.2.0": ["cmdstanpy<1.3.0"]
# Avoid holidays 0.25 due to https://github.com/dr-prodigy/python-holidays/issues/1200 on
# older version of prophet. Compatibility updates have been released as part of the 1.1.4
# release of prophet.
run: |
pytest tests/prophet/test_prophet_model_export.py
pmdarima:
package_info:
pip_release: "pmdarima"
# TODO: Uncomment once https://github.com/alkaline-ml/pmdarima/issues/582 is fixed.
# install_dev: |
# # pip install Cython
# # pip install git+https://github.com/alkaline-ml/pmdarima.git
models:
minimum: "2.1.0"
maximum: "2.1.1"
requirements:
">= 0.0.0": [
"prophet",
# Avoid holidays 0.25 due to https://github.com/dr-prodigy/python-holidays/issues/1200
"holidays!=0.25",
# TODO: Try the latest version of moto (https://github.com/getmoto/moto/issues/8498) and remove this pin
"boto3<1.36",
]
run: |
pytest tests/pmdarima/test_pmdarima_model_export.py
h2o:
package_info:
pip_release: "h2o"
models:
minimum: "3.46.0.4"
maximum: "3.46.0.11"
run: |
pytest tests/h2o
shap:
package_info:
pip_release: "shap"
models:
minimum: "0.46.0"
maximum: "0.52.0"
unsupported:
# shap >= 0.52.0 dropped Python 3.10/3.11 support and requires Python >= 3.12.
# The cross version test CI only runs Python 3.10/3.11 (the setup-python action
# rejects other versions), so mark these releases unsupported until CI can run
# Python 3.12.
- ">= 0.52.0"
run: |
pytest tests/shap
paddle:
package_info:
pip_release: "paddlepaddle"
models:
minimum: "2.6.2"
maximum: "3.3.1"
requirements:
run: |
pytest tests/paddle/test_paddle_model_export.py
autologging:
minimum: "2.6.2"
maximum: "3.3.1"
requirements:
run: |
pytest tests/paddle/test_paddle_autolog.py
transformers:
package_info:
repo: https://github.com/huggingface/transformers/tree/HEAD
pip_release: "transformers"
install_dev: |
uv pip install --system git+https://github.com/huggingface/transformers
models:
minimum: "4.42.0"
maximum: "5.10.2"
test_every_n_versions: 4
unsupported: [
# Avoid this patch: https://github.com/huggingface/transformers/pull/29032
">=4.38.0,<4.39.0",
# https://github.com/huggingface/transformers/issues/38269
"== 4.52.1",
"== 4.52.2",
# 5.0.0 broke the TAPAS table-QA and Whisper ASR pipelines; fixed in later 5.x patches.
# https://github.com/huggingface/transformers/issues/43792
"== 5.0.0",
]
requirements:
">= 0.0.0": [
"datasets",
# 0.22.0 is broken: https://github.com/huggingface/huggingface_hub/issues/2157
"huggingface_hub!=0.22.0",
"hf_transfer",
"torch",
"torchvision",
"tensorflow",
"peft", # optimized fine-tuning library developed by Hugging Face
"accelerate", # required for large torch models where weights will not fit in RAM
"librosa", # required for transformers audio pipelines for bitrate conversion
"ffmpeg", # required for transformers audio pipelines for audio byte to numpy conversion
"sentencepiece", # required for transformers text2text generation pipeline
"protobuf<=3.20.3", # fix error `Couldn't build proto file into descriptor pool: duplicate file name sentencepiece_model.proto`
"typing_extensions>=4.6.0", # fix error for SqlAlchemy == 2.0.25 cannot import name 'TypeAliasType' from 'typing_extensions'
# TODO: Try the latest version of moto (https://github.com/getmoto/moto/issues/8498) and remove this pin
"boto3<1.36",
]
# peft >= 0.14 relies on classes from newer versions of transformers
"< 4.45": ["peft<0.14.0"]
# peft >= 0.18 requires transformers.modeling_layers which was added in transformers 4.52.0
"< 4.52": ["peft<0.18.0"]
">= 4.38.2": ["tf-keras"] # Transformers doesn't support Keras 3.0. tf-keras needs to be installed.
"< 4.52.0.dev0": ["accelerate<1"]
pre_test: |
sudo apt-get update
sudo apt-get install -y ffmpeg
export PYTHONPATH=./
python tests/transformers/helper.py
run: |
# Run all Transformers tests except autologging
pytest tests/transformers --ignore tests/transformers/test_transformers_autolog.py
uv pip uninstall --system accelerate
pytest tests/transformers/test_transformers_model_export.py -k "test_transformers_pt_model_save_dependencies_without_accelerate"
autologging:
minimum: "4.42.0"
maximum: "5.10.2"
test_every_n_versions: 4
unsupported: [
# https://github.com/huggingface/transformers/issues/38269
"== 4.52.1",
"== 4.52.2",
]
requirements:
">= 0.0.0": [
"datasets",
# 0.22.0 is broken: https://github.com/huggingface/huggingface_hub/issues/2157
"huggingface_hub!=0.22.0",
"hf_transfer",
"torch",
"torchvision",
"tensorflow",
"optuna",
# TODO: Try the latest version of moto (https://github.com/getmoto/moto/issues/8498) and remove this pin
"boto3<1.36",
]
">= 4.38.2": ["tf-keras"] # Transformers doesn't support Keras 3.0. tf-keras needs to be installed.
# sentence-transformers 5.4 passes `processing_class` to transformers Trainer,
# which was added in transformers 4.46.0
"< 4.46": ["sentence-transformers<5.4"]
"< 4.52.0.dev0": ["accelerate<1"]
# transformers 5.x requires accelerate>=1.1.0 for Trainer
">= 5.0": ["accelerate>=1.1.0"]
# setfit is incompatible with transformers 5.x (imports removed `default_logdir` from training_args)
"< 5.0": ["setfit"]
run: |
pytest tests/transformers/test_transformers_autolog.py
diffusers:
package_info:
repo: https://github.com/huggingface/diffusers/tree/HEAD
pip_release: "diffusers"
install_dev: |
uv pip install --system git+https://github.com/huggingface/diffusers
models:
minimum: "0.37.0"
maximum: "0.38.0"
requirements:
">= 0.0.0": ["transformers", "safetensors", "accelerate", "peft", "torch"]
# diffusers>=0.38.0 depends on safetensors>=0.8.0rc0 (pre-release).
# Explicitly specifying the prerelease requirement allows uv to resolve it without --prerelease=allow.
">= 0.38.0": ["safetensors>=0.8.0rc0"]
run: |
pytest tests/diffusers/test_diffusers_model_export.py
openai:
package_info:
genai: true
repo: https://github.com/openai/openai-python/tree/HEAD
pip_release: "openai"
install_dev: |
uv pip install --system git+https://github.com/openai/openai-python
models:
minimum: "1.87.0"
maximum: "2.41.0"
requirements:
">= 0.0.0": [
"pyspark",
"tiktoken",
"aiohttp",
"tenacity",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
]
run: |
pytest tests/openai --ignore-glob="*autolog.py"
# Our CI runs tests for every minor version of the library by default, which results in
# many test tasks for openai. Reducing the number of testing only for every 10 version.
test_every_n_versions: 10
autologging:
minimum: "1.87.0"
maximum: "2.41.0"
requirements:
">= 0.0.0": [
"tiktoken",
"tenacity",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
]
# minimum version supported by openai-agents>=0.2.0
">= 1.93.1": ["openai-agents"]
run: |
pytest tests/openai/*_autolog.py
test_every_n_versions: 10
test_tracing_sdk: true
dspy:
package_info:
genai: true
repo: https://github.com/stanfordnlp/dspy/tree/HEAD
pip_release: "dspy"
install_dev: |
uv pip install --system git+https://github.com/stanfordnlp/dspy.git
models:
minimum: "3.0.0"
maximum: "3.2.1"
requirements:
">= 0.0.0": ["openai"]
run: |
pytest tests/dspy --ignore tests/dspy/test_dspy_autolog.py
autologging:
minimum: "3.0.0"
maximum: "3.2.1"
requirements:
">= 0.0.0": ["openai"]
run: |
pytest tests/dspy/test_dspy_autolog.py
test_tracing_sdk: true
langchain:
package_info:
genai: true
repo: https://github.com/langchain-ai/langchain/tree/HEAD/libs/langchain
pip_release: "langchain"
install_dev: |
uv pip install --system git+https://github.com/langchain-ai/langchain#subdirectory=libs/langchain_v1
models:
# Where the large package update was made (langchain-core, community, ...)
minimum: "0.3.26"
maximum: "1.3.4"
unsupported: [
# Chain.save() broken in 0.3.28 due to model_dump() regression: https://github.com/langchain-ai/langchain/issues/35665
"== 0.3.28",
]
requirements:
">= 0.0.0": [
"pyspark",
"transformers",
"torch",
"torchvision",
"openai",
"google-search-results",
"psutil",
"faiss-cpu",
"langchain-experimental",
"numexpr",
"hf_transfer",
"langchain-huggingface",
"langchain-openai",
"langgraph",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
# Required for testing Databricks dependency extraction
"databricks-langchain",
# Pin <0.74: 0.74 renamed databricks-vectorsearch to databricks-ai-search and
# turned `databricks.vector_search.*` into a re-export that drops
# `VectorSearchIndex`. Both this dependency-extraction test AND databricks-langchain
# itself import that symbol from `databricks.vector_search.client` at import time,
# so 0.74 breaks the whole langchain matrix. Revisit once databricks-langchain
# moves to databricks-ai-search.
"databricks-vectorsearch<0.74",
# Required for testing uc tools
"unitycatalog-langchain",
]
">= 1.0.0": [
# required for testing legacy modules
"langchain-classic",
]
# `langgraph-prebuilt >= 1.0.9` imports `ExecutionInfo`/`ServerInfo` from
# `langgraph.runtime`, which only exist in `langgraph >= 1.1.5`. `langchain < 1.2`
# pins `langgraph < 1.1.0`, so hold `langgraph-prebuilt` back to a compatible version.
"< 1.2": ["langgraph-prebuilt<1.0.9"]
pre_test: |
# Installing both pyspark and databricks-connect causes a conflict
pip uninstall -y databricks-connect
uv pip install --system --no-deps --force-reinstall pyspark
run: |
# Some dependencies above includes 'mlflow-skinny' but not full 'mlflow', such as databricks-vectorsearch.
# This causes installation of mlflow-skinny from stable version, while 'mlflow' points to the dev version,
# resulting in a weird module conflict issue.
uv pip install --system './libs/skinny'
# Run all langchain tests except autologging
pytest tests/langchain --ignore tests/langchain/test_langchain_autolog.py
autologging:
minimum: "0.3.26"
maximum: "1.3.4"
requirements:
">= 0.0.0": [
"openai",
"google-search-results",
"faiss-cpu",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
# Some model logging/loading requires langchain community
"langchain-community",
# Need to bump FasAPI version to support pydantic v2
"fastapi>=0.100.0",
"langchain-openai>=0.2.0",
]
">= 1.0.0": ["langchain-classic"]
# `langgraph-prebuilt >= 1.0.9` imports `ExecutionInfo`/`ServerInfo` from
# `langgraph.runtime`, which only exist in `langgraph >= 1.1.5`. `langchain < 1.2`
# pins `langgraph < 1.1.0`, so hold `langgraph-prebuilt` back to a compatible version.
"< 1.2": ["langgraph-prebuilt<1.0.9"]
pre_test: |
# Installing both pyspark and databricks-connect causes a conflict
pip uninstall -y databricks-connect
uv pip install --system --no-deps --force-reinstall pyspark
run: |
pytest tests/langchain/test_langchain_autolog.py
test_tracing_sdk: true
langgraph:
package_info:
genai: true
repo: https://github.com/langchain-ai/langgraph/tree/HEAD/libs/langgraph
pip_release: "langgraph"
install_dev: |
uv pip install --system git+https://github.com/langchain-ai/langgraph#subdirectory=libs/langgraph
# Force-reinstall prebuilt to ensure dev version compatibility and prevent pipeline failures
uv pip install --system --force-reinstall --no-deps git+https://github.com/langchain-ai/langgraph#subdirectory=libs/prebuilt
models:
minimum: "0.4.9"
maximum: "1.2.4"
requirements:
">= 0.0.0": [
"langchain",
"langchain_openai",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
]
">= 0.3.0": ["langgraph-prebuilt"]
# `langgraph == 0.4.*` is incompatible with `langgraph-prebuilt >= 0.5`
"== 0.4.*": ["langgraph-prebuilt<0.5"]
# `langgraph-prebuilt >= 1.0.9` imports `ExecutionInfo`/`ServerInfo` from
# `langgraph.runtime`, which only exist in `langgraph >= 1.1.5`.
"< 1.1.5": ["langgraph-prebuilt<1.0.9"]
run: |
pytest tests/langgraph --ignore tests/langgraph/test_langgraph_autolog.py
autologging:
minimum: "0.4.9"
maximum: "1.2.4"
requirements:
">= 0.0.0": [
"langchain",
"langchain_openai",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
]
">= 0.3.0": ["langgraph-prebuilt"]
# `langgraph == 0.4.*` is incompatible with `langgraph-prebuilt >= 0.5`
"== 0.4.*": ["langgraph-prebuilt<0.5"]
# `langgraph-prebuilt >= 1.0.9` imports `ExecutionInfo`/`ServerInfo` from
# `langgraph.runtime`, which only exist in `langgraph >= 1.1.5`.
"< 1.1.5": ["langgraph-prebuilt<1.0.9"]
run: |
pytest tests/langgraph/test_langgraph_autolog.py
test_tracing_sdk: true
llama_index:
package_info:
genai: true
repo: https://github.com/run-llama/llama_index/tree/HEAD
pip_release: "llama-index"
module_name: "llama_index.core"
install_dev: |
uv pip install --system git+https://github.com/run-llama/llama_index.git
models:
# New event/span framework is fully implemented in 0.10.44
minimum: "0.12.43"
maximum: "0.14.22"
unsupported:
# 0.14.17+ requires llama-index-llms-openai>=0.7 which conflicts with
# llama-index-llms-databricks (requires llama-index-llms-openai-like<0.6)
- ">= 0.14.17"
requirements:
">= 0.0.0": [
# Versions 1.99.2 - 1.99.8 contain regressions:
# https://github.com/openai/openai-python/issues/2525
"openai>=1.99.9",
# Required to test Databricks integration
"llama-index-llms-databricks",
"llama-index-embeddings-databricks",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
]
# llama-index-vector-stores-qdrant 0.7+ requires qdrant-client>=1.13 which
# conflicts with llama-index 0.12.x dependency resolution.
# TODO: qdrant-client 1.16 is currently broken with llama-index until
# https://github.com/run-llama/llama_index/issues/20271 is resolved
">= 0.13.0": ["llama-index-vector-stores-qdrant", "qdrant-client<1.16.0"]
run: pytest tests/llama_index --ignore tests/llama_index/test_llama_index_autolog.py --ignore tests/llama_index/test_llama_index_tracer.py
autologging:
minimum: "0.12.43"
maximum: "0.14.22"
unsupported:
# 0.14.17+ requires llama-index-llms-openai>=0.7 which conflicts with
# llama-index-llms-databricks (requires llama-index-llms-openai-like<0.6)
- ">= 0.14.17"
requirements:
">= 0.0.0": [
# Versions 1.99.2 - 1.99.8 contain regressions:
# https://github.com/openai/openai-python/issues/2525
"openai>=1.99.9",
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
]
run: pytest tests/llama_index/test_llama_index_autolog.py tests/llama_index/test_llama_index_tracer.py
test_tracing_sdk: true
ag2:
package_info:
genai: true
pip_release: "ag2"
module_name: "autogen"
autologging:
minimum: "0.9.3"
maximum: "0.13.3"
requirements:
">= 0.0.0": [
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
"openai",
"numpy<2",
]
run: pytest tests/ag2
autogen:
package_info:
genai: true
pip_release: "autogen-agentchat"
module_name: "autogen_agentchat"
autologging:
minimum: "0.6.2"
maximum: "0.7.5"
requirements:
">= 0.0.0": [
# Required to run tests/openai/mock_openai.py
"fastapi",
"uvicorn",
"autogen_ext",
# TODO: remove this pin after https://github.com/pydantic/pydantic/issues/12348 is resolved
"pydantic<2.12.0",
# autogen-core pins opentelemetry-semantic-conventions==0.55b1, but the latest
# opentelemetry-sdk imports a symbol (OTEL_SPAN_PARENT_ORIGIN) only present in
# newer semconv. Keep the SDK on the matching 1.34.x line to avoid an ImportError.
"opentelemetry-sdk<1.35",
]
run: pytest tests/autogen
test_tracing_sdk: true
gemini:
package_info:
genai: true
repo: https://github.com/googleapis/python-genai/tree/HEAD
pip_release: "google-genai"
module_name: "google.genai"
install_dev: |
uv pip install --system git+https://github.com/googleapis/python-genai
autologging:
minimum: "1.21.0"
maximum: "2.8.0"
requirements:
run: |
# Install legacy gemini SDK to ensure the integration works for the legacy SDK
uv pip install --system google-generativeai
pytest tests/gemini
test_tracing_sdk: true
test_every_n_versions: 10
anthropic:
package_info:
genai: true
repo: https://github.com/anthropics/anthropic-sdk-python/tree/HEAD
pip_release: "anthropic"
install_dev: |
uv pip install --system git+https://github.com/anthropics/anthropic-sdk-python
autologging:
minimum: "0.55.0"
maximum: "0.107.1"
requirements:
run: pytest tests/anthropic
# Our CI runs tests for every minor version of the library by default, which results in
# many test tasks for anthropic. Reducing the number of testing only for every 5 version.
test_every_n_versions: 10
test_tracing_sdk: true
crewai:
package_info:
genai: true
repo: https://github.com/crewAIInc/crewAI/tree/HEAD/lib/crewai
pip_release: "crewai"
module_name: "crewai"
install_dev: |
uv pip install --system git+https://github.com/crewAIInc/crewAI#subdirectory=lib/crewai
autologging:
minimum: "0.134.0"
maximum: "1.14.6"
unsupported: ["==0.114.0"]
requirements:
run: pytest tests/crewai
test_tracing_sdk: true
test_every_n_versions: 20
agno:
package_info:
genai: true
repo: https://github.com/agno-agi/agno/tree/HEAD/libs/agno
pip_release: "agno"
module_name: "agno"
install_dev: |
uv pip install --system git+https://github.com/agno-agi/agno.git#subdirectory=libs/agno
autologging:
minimum: "1.7.0"
maximum: "2.6.12"
requirements:
">= 0.0.0": ["anthropic", "yfinance"]
">= 2.0.0": ["opentelemetry-exporter-otlp", "openinference-instrumentation-agno"]
# openinference-instrumentation-agno <= 0.1.30 calls wrap_function_wrapper(module=...),
# but wrapt 2.0 renamed the kwarg to `target`. Pin wrapt<2 until we can move off 0.1.20.
"<= 2.4.8": ["openinference-instrumentation-agno==0.1.20", "wrapt<2"]
run: pytest tests/agno
test_tracing_sdk: true
pydantic_ai:
package_info:
genai: true
repo: https://github.com/pydantic/pydantic-ai/tree/HEAD
pip_release: "pydantic-ai"
module_name: "pydantic_ai"
install_dev: |
# Install the stable version first to install dependencies
uv pip install --system pydantic-ai
# We need to install deno to run test suite for MCPServer as deno is used to start the MCPServer
curl -fsSL https://deno.land/install.sh | sh -s -- -y --no-modify-path
# Update key libraries from source w/ no-deps
uv pip install --system --no-deps \
# We need to install pydantic_graph and pydantic_ai_slim as pydantic_ai is dependent on both of them
# and we need to install them separately. Without pinning them separately would result in dependency
# conflict errors and the installation of pydantic_ai would get failed.
# Ref: https://github.com/pydantic/pydantic-ai/blob/main/pydantic_ai_slim/pyproject.toml#L45-L52
"git+https://github.com/pydantic/pydantic-ai.git#egg=pydantic-graph&subdirectory=pydantic_graph" \
"git+https://github.com/pydantic/pydantic-ai.git#egg=pydantic-ai-slim&subdirectory=pydantic_ai_slim" \
"git+https://github.com/pydantic/pydantic-ai.git#egg=pydantic-ai"
autologging:
minimum: "0.2.19"
# TODO: Bump past 1.94.0 once the tracing tests patch the right model request
# entrypoint. pydantic-ai >= 1.96 no longer routes through
# `InstrumentedModel.request`, so the mock is bypassed and tests hit the real API.
maximum: "1.94.0"
requirements:
">= 0.0.0": ["mcp"]
run: pytest tests/pydantic_ai
test_tracing_sdk: true
test_every_n_versions: 10
smolagents:
package_info:
genai: true
repo: https://github.com/huggingface/smolagents/tree/HEAD
pip_release: "smolagents"
module_name: "smolagents"
install_dev: |
uv pip install --system "git+https://github.com/huggingface/smolagents"
autologging:
minimum: "1.19.0"
maximum: "1.26.0"
requirements:
"< 1.21.0": ["duckduckgo-search"]
# `duckduckgo_search` has been renamed to `ddgs`:
# https://github.com/huggingface/smolagents/pull/1593
">= 1.21.0": ["ddgs"]
run: pytest tests/smolagents
test_tracing_sdk: true
strands:
package_info:
genai: true
repo: https://github.com/strands-agents/sdk-python/tree/HEAD
pip_release: "strands-agents"
module_name: "strands"
install_dev: |
uv pip install --system "git+https://github.com/strands-agents/sdk-python"
autologging:
minimum: "1.4.0"
maximum: "1.42.0"
run: pytest tests/strands
test_tracing_sdk: true
haystack:
package_info:
repo: https://github.com/deepset-ai/haystack/tree/HEAD
pip_release: "haystack-ai"
module_name: "haystack"
install_dev: |
uv pip install --system git+https://github.com/deepset-ai/haystack
autologging:
minimum: "2.2.2"
maximum: "2.30.0"
requirements:
run: pytest tests/haystack
test_tracing_sdk: true
test_every_n_versions: 10
mistral:
package_info:
genai: true
repo: https://github.com/mistralai/client-python/tree/HEAD
pip_release: "mistralai"
module_name: "mistralai"
install_dev: |
TMP_DIR=$(mktemp -d)
git clone --depth 1 https://github.com/mistralai/client-python $TMP_DIR
cd $TMP_DIR
python scripts/prepare_readme.py
uv pip install --system .
rm -rf $TMP_DIR
autologging:
minimum: "1.9.1"
maximum: "2.4.9"
requirements:
# mistralai 2.x hard-pins opentelemetry-semantic-conventions==0.60b1, which is only
# paired with opentelemetry-sdk 1.39.x. mlflow's `.[extras]` install pulls in the
# newest sdk, leaving an inconsistent api/sdk/semconv trio that breaks span start
# with `TraceFlags.RANDOM_TRACE_ID` AttributeError. Hold the sdk back so the trio
# stays aligned with mistralai's semconv pin.
">= 2.0.0": ["opentelemetry-sdk<1.40"]
run: pytest tests/mistral
test_tracing_sdk: true
test_every_n_versions: 10
sentence_transformers:
package_info:
repo: https://github.com/UKPLab/sentence-transformers/tree/HEAD
pip_release: "sentence-transformers"
install_dev: |
uv pip install --system git+https://github.com/UKPLab/sentence-transformers#egg=sentence-transformers
models:
minimum: "3.1.0"
maximum: "5.5.1"
requirements:
">= 0.0.0": [
"pyspark",
"torch>1.6",
"transformers>4.25",
"hf_transfer",
# Required by a test model (nomic-ai/nomic-embed-text-v1.5)
"einops",
# TODO: Try the latest version of moto (https://github.com/getmoto/moto/issues/8498) and remove this pin
"boto3<1.36",
# Fix for https://github.com/huggingface/transformers/issues/37326
"accelerate",
]
run: |
pytest tests/sentence_transformers/test_sentence_transformers_model_export.py
johnsnowlabs:
package_info:
pip_release: "johnsnowlabs"
models:
minimum: "5.4.0"
maximum: "6.4.0"
requirements:
">= 0.0.0": ["pandas<=1.5.3"]
run: |
if [ ! -z "$JOHNSNOWLABS_LICENSE_JSON" ]; then
pytest tests/johnsnowlabs/test_johnsnowlabs_model_export.py
else
echo "Skipping tests due to missing license key"
fi
groq:
package_info:
genai: true
repo: https://github.com/groq/groq-python/tree/HEAD
pip_release: "groq"
install_dev: |
uv pip install --system git+https://github.com/groq/groq-python
autologging:
minimum: "0.29.0"
maximum: "1.4.0"
requirements:
run: pytest tests/groq
test_tracing_sdk: true
test_every_n_versions: 10
bedrock:
package_info:
genai: true
pip_release: "boto3"
module_name: "boto3"
autologging:
# BedrockRuntime client is added in boto3 1.33
minimum: "1.38.37"
maximum: "1.43.24"
run: pytest tests/bedrock
test_tracing_sdk: true