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