Skip to content

ODSC-88492: ADS Python 3.13 support readiness#1397

Open
cheryloracle wants to merge 7 commits into
oracle:mainfrom
cheryloracle:csa/odsc-88492
Open

ODSC-88492: ADS Python 3.13 support readiness#1397
cheryloracle wants to merge 7 commits into
oracle:mainfrom
cheryloracle:csa/odsc-88492

Conversation

@cheryloracle

Copy link
Copy Markdown
Member

Summary

Updated ADS Python 3.13 readiness across dependency metadata, validation logic, CI, docs, and distribution validation. The branch now adds Python 3.13 package metadata after validation, updates optional dependency markers for Python 3.13-compatible dependency lines, gates unsupported upstream forecast/anomaly dependencies off Python 3.13, and documents the supported and deferred areas for ODSC-88492. It also updates model artifact introspection so runtime validation accepts Python 3.13 where ADS support is intended, cleans Python 3.13 SyntaxWarning surfaces, and adds Python 3.13 to default and full unit GitHub Actions matrices.

Tests Run

  • python3.13 -m venv .venv-py313-core
  • .venv-py313-core/bin/python -m pip install --upgrade pip setuptools wheel
  • .venv-py313-core/bin/python -m pip install -e .
  • .venv-py313-core/bin/python -m pip check
  • /usr/bin/env MPLCONFIGDIR=.venv-py313-core/mplconfig .venv-py313-core/bin/python -c "import ads, sys; print(sys.version); print(ads.version)"
  • python3.13 -m venv .venv-py313-extras
  • .venv-py313-extras/bin/python -m pip install --upgrade pip setuptools wheel
  • .venv-py313-extras/bin/python -m pip install --dry-run -r dev-requirements.txt
  • .venv-py313-extras/bin/python -m pip install --dry-run 'geopandas<1.0.0' 'fiona<2'
  • .venv-py313-extras/bin/python -m pip install --dry-run 'scikit-learn>=1.0,<1.6.0'
  • .venv-py313-extras/bin/python -m pip install --dry-run 'onnx~=1.17.0' 'onnxruntime~=1.22.0' 'skl2onnx~=1.18.0' 'tf2onnx'
  • .venv-py313-extras/bin/python -m pip install --dry-run 'onnx>=1.18,<2' 'onnxruntime~=1.22.0' 'skl2onnx~=1.18.0' 'tf2onnx'
  • .venv-py313-extras/bin/python -m pip install --dry-run 'spacy>=3.4.2,<3.8' 'wordcloud>=1.8.1'
  • .venv-py313-extras/bin/python -m pip install --dry-run 'spacy>=3.8,<4' 'wordcloud>=1.8.1'
  • .venv-py313-extras/bin/python -m pip install --dry-run 'tensorflow' 'tf-keras'
  • .venv-py313-extras/bin/python -m pip install --dry-run -r test-requirements-operators.txt
  • /usr/bin/env NoDependency=True MPLCONFIGDIR=.venv-py313-runtime/mplconfig TMPDIR=.venv-py313-runtime/tmp .venv-py313-runtime/bin/python -m pytest -v -p no:warnings --durations=5 tests/unitary/default_setup (1236 passed, 13 skipped, 2 xfailed)
  • /usr/bin/env MPLCONFIGDIR=.venv-py313-runtime/mplconfig TMPDIR=.venv-py313-runtime/tmp .venv-py313-runtime/bin/python -m pytest -v -p no:warnings tests/unitary/default_setup/model/test_model_introspect.py::TestPythonVersionCheck::test_python_version_check tests/unitary/default_setup/telemetry/test_telemetry.py::TestTelemetry::test__prepare tests/unitary/default_setup/test_import.py::test_import tests/unitary/with_extras/model/test_env_info.py (30 passed)
  • .venv-py313-runtime/bin/python -W error::SyntaxWarning -m py_compile ads/model/model_artifact_boilerplate/artifact_introspection_test/model_artifact_validate.py ads/telemetry/telemetry.py ads/text_dataset/dataset.py tests/unitary/default_setup/model/test_model_introspect.py
  • git diff --check
  • git diff --cached --check
  • ruby -e "require 'yaml'; ARGV.each { |f| YAML.load_file(f); puts "#{f}: ok" }" .github/workflows/run-unittests-default_setup.yml .github/workflows/run-unittests-py310-py311.yml
  • python3.13 -c "import tomllib; data=tomllib.load(open('pyproject.toml','rb')); assert 'Programming Language :: Python :: 3.13' in data['project']['classifiers']; print('pyproject classifier ok')"
  • .venv-py313-dist/bin/python -m build --sdist --wheel
  • .venv-py313-dist/bin/python -m twine check dist/*
  • .venv-py313-wheel/bin/python -m pip install dist/oracle_ads-2.15.2-py3-none-any.whl
  • .venv-py313-sdist/bin/python -m pip install dist/oracle_ads-2.15.2.tar.gz
  • .venv-py313-wheel/bin/python -m pip check
  • .venv-py313-sdist/bin/python -m pip check
  • /usr/bin/env MPLCONFIGDIR=.venv-py313-wheel/mplconfig .venv-py313-wheel/bin/python -c "import ads, sys; print(sys.version); print(ads.version)"
  • /usr/bin/env MPLCONFIGDIR=.venv-py313-sdist/mplconfig .venv-py313-sdist/bin/python -c "import ads, sys; print(sys.version); print(ads.version)"
  • .venv-py313-dist/bin/python -m pip install --dry-run --ignore-installed click coverage faker mock parameterized pip pytest pytest-cov pytest-xdist pytest-asyncio ruff setuptools fire "dist/oracle_ads-2.15.2-py3-none-any.whl[aqua,bds,data,geo,huggingface,llm,notebook,onnx,opctl,optuna,spark,tensorflow,text,torch,viz]" "dist/oracle_ads-2.15.2-py3-none-any.whl[testsuite]"
  • .venv-py313-dist/bin/python -m pip install --dry-run --ignore-installed click coverage faker mock parameterized pip pytest pytest-cov pytest-xdist pytest-asyncio ruff setuptools fire plotly "pandas>=2.0.0" "protobuf==5.29.6" "dist/oracle_ads-2.15.2-py3-none-any.whl[forecast]" "dist/oracle_ads-2.15.2-py3-none-any.whl[anomaly]"
  • python3.13 -c "import ast, re; tree=ast.parse(open('ads/model/model_artifact_boilerplate/artifact_introspection_test/model_artifact_validate.py').read()); pattern=next(n.value.value for n in ast.walk(tree) if isinstance(n, ast.Assign) for t in n.targets if getattr(t, 'id', None) == 'PYTHON_VER_PATTERN'); assert re.match(pattern, '3.13'); assert not re.match(pattern, '3.14'); print('artifact python pattern ok')"

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants