1113 lines
38 KiB
YAML
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
|