Skip to content

Commit

Permalink
chore: upgrade Python to 3.13
Browse files Browse the repository at this point in the history
Add support for Python 3.13

JIRA: PSDK-215
risk: low
  • Loading branch information
hkad98 committed Jan 3, 2025
1 parent de0cf4c commit 09353ee
Show file tree
Hide file tree
Showing 25 changed files with 97 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up python 3.12
- name: Set up python 3.13
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/rw-python-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
if: ${{inputs.changed-python-modules == 'true'}}
strategy:
matrix:
python_version: [py312, py311, py310, py39]
python_version: [py313, py312, py311, py310, py39]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -21,7 +21,7 @@ jobs:
env:
TEST_ENVS: ${{ matrix.python_version }}
- name: Upload coverage to Codecov
if: ${{ matrix.python_version == 'py312' }}
if: ${{ matrix.python_version == 'py313' }}
uses: codecov/codecov-action@v3
with:
files: ./gooddata-sdk/coverage.xml,./gooddata-pandas/coverage.xml,./gooddata-fdw/coverage.xml,./gooddata-flight-server/coverage.xml,./gooddata-flexconnect/coverage.xml
Expand All @@ -31,7 +31,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python 3.12
- name: Set up python 3.13
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
Expand All @@ -50,7 +50,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python 3.12
- name: Set up python 3.13
uses: actions/setup-python@v5
with:
python-version-file: '.python-version'
Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.12.4
3.13.1
2 changes: 1 addition & 1 deletion .sonar.settings
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) 2021 GoodData Corporation
sonar.sources=gooddata-sdk,gooddata-fdw,gooddata-pandas,gooddata-flight-server,gooddata-flexconnect
sonar.exclusions=gooddata-api-client/**/*
sonar.python.version=3.9, 3.10, 3.11, 3.12
sonar.python.version=3.9, 3.10, 3.11, 3.12, 3.13
2 changes: 1 addition & 1 deletion .sonarcloud.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# (C) 2022 GoodData Corporation
sonar.sources=gooddata-sdk,gooddata-fdw,gooddata-pandas,gooddata-flight-server,gooddata-flexconnect
sonar.exclusions=gooddata-api-client/**/*
sonar.python.version=3.9, 3.10, 3.11, 3.12
sonar.python.version=3.9, 3.10, 3.11, 3.12, 3.13
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Getting Started

1. Ensure you have at minimum Python 3.12 installed; Python 3.11, 3.10 and 3.9 are optional for multi-environment tests
1. Ensure you have at minimum Python 3.13 installed; Python 3.12, 3.11, 3.10 and 3.9 are optional for multi-environment tests

This repo uses [tox](https://tox.readthedocs.io/en/latest/) and by default will try to run tests against all
supported versions. If you have only subset of supported python interpreters installed, see
Expand All @@ -21,7 +21,7 @@
source .venv/bin/activate
```

The `make dev` command will create a new Python 3.12 virtual environment in the `.venv` directory, install all
The `make dev` command will create a new Python 3.13 virtual environment in the `.venv` directory, install all
third party dependencies into it and setup git hooks.

Additionally, if you use [direnv](https://direnv.net/) you can run `direnv allow .envrc` to enable automatic
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ all:
.PHONY: dev
dev:
rm -rf .venv
python3.12 -m venv .venv --upgrade-deps
python3.13 -m venv .venv --upgrade-deps
.venv/bin/pip3 install -r dev-requirements.txt
.venv/bin/pre-commit install

Expand Down
6 changes: 5 additions & 1 deletion ci_tests.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# (C) 2021 GoodData Corporation
IN_TEST_ENVS = py312,py311,py310,py39
IN_TEST_ENVS = py313,py312,py311,py310,py39
ifdef TEST_ENVS
IN_TEST_ENVS = $(TEST_ENVS)
endif
Expand Down Expand Up @@ -51,6 +51,10 @@ test-ci-py311-build: Dockerfile
test-ci-py312-build: Dockerfile
docker build --build-arg "PY_TAG=3.12.6-slim-bookworm" --build-arg "ENV_TAG=py312" -t python-sdk:py312 .

.PHONY: test-ci-py313-build
test-ci-py313-build: Dockerfile
docker build --build-arg "PY_TAG=3.13.1-slim-bookworm" --build-arg "ENV_TAG=py313" -t python-sdk:py313 .

# test-ci target triggers unit tests for each requested environment
.PHONY: test-ci
test-ci: $(TEST_CI_ENVS)
Expand Down
34 changes: 30 additions & 4 deletions docs/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,41 @@
FROM python:3.13-slim AS python-stage

COPY . data

WORKDIR data

RUN pip install --no-cache-dir -r scripts/script-requirements.txt

WORKDIR docs

RUN python3 ../scripts/docs/json_builder.py && \
mkdir versioned_docs/latest && \
mv -f data.json versioned_docs/latest && \
python3 ../scripts/docs/python_ref_builder.py api_spec.toml versioned_docs/latest/data.json latest versioned_docs

FROM node:20.18.0-bookworm-slim

COPY docs docs

COPY --from=python-stage data/docs/versioned_docs/latest/api-reference docs/content/en/latest/api-reference
COPY --from=python-stage data/docs/versioned_docs/latest/pandas docs/content/en/latest/pandas


RUN apt-get update && \
apt-get install -y git make golang-go curl && \
npm install -g hugo-extended@0.117.0 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
mkdir -p docs/versioned_docs/latest

COPY docs docs
COPY --from=python-stage data/docs/versioned_docs/latest/links.json docs/versioned_docs/latest
COPY --from=python-stage data/docs/versioned_docs/latest/data.json docs/versioned_docs/latest

COPY docs/content/en/latest/ docs/versioned_docs/latest/

WORKDIR docs
RUN npm install
RUN npm install && \
rm -rf node_modules

# accessible on http://localhost:1313/latest/
ENTRYPOINT ["hugo", "server", "--bind", "0.0.0.0"]
ENTRYPOINT ["hugo", "server", "-e", "dev", "--bind", "0.0.0.0"]
10 changes: 10 additions & 0 deletions docs/config/dev/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This config file overrides _default/config.toml
# if hugo builds site for the environment "versioned"
# (hugo -e versioned ...)

# This contentDir is empty dir in Git. It needs to be
# generated by an external script.
contentDir = "versioned_docs"
[Params]
devVersion = "dev"
latestVersion = "1.4"
16 changes: 16 additions & 0 deletions docs/config/dev/params.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Put document versions here for every major or minor release
# Every TOML list item contains the following properties:
# - "version" - text that appears in versions menu
# - "dirpath" - directory name (relative to contentDir) where documentation
# for given version resides
# - "url" - url for link in version menu. May be absolute URL.
# - "latestTag" - docker image tag for the latest patch version. Must be changed
# on every patch release of respective branch
[[versions]]
version = "1.32"
dirpath = "latest"
url = "/latest/"
[[versions]]
version = "1.32"
dirpath = "latest"
url = "/123/"
1 change: 1 addition & 0 deletions gooddata-dbt/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
Expand Down
4 changes: 2 additions & 2 deletions gooddata-dbt/tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2023 GoodData Corporation
[tox]
envlist = py3{9,10,11,12}
envlist = py3{9,10,11,12,13}

[testenv]
package = wheel
Expand All @@ -16,7 +16,7 @@ commands =
pytest -v --cov=gooddata_dbt --cov-report=xml tests {posargs}

[testenv:mypy]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
Expand Down
2 changes: 1 addition & 1 deletion gooddata-fdw/.readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.12"
python: "3.13"

sphinx:
configuration: gooddata-fdw/docs/conf.py
Expand Down
1 change: 1 addition & 0 deletions gooddata-fdw/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
Expand Down
6 changes: 3 additions & 3 deletions gooddata-fdw/tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2021 GoodData Corporation
[tox]
envlist = py3{9,10,11,12}
envlist = py3{9,10,11,12,13}

[testenv]
package = wheel
Expand All @@ -16,7 +16,7 @@ commands =
pytest -v --cov=gooddata_fdw --cov-report=xml tests {posargs}

[testenv:mypy]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
Expand All @@ -27,7 +27,7 @@ commands =
mypy gooddata_fdw

[testenv:docs]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/docs/requirements.txt
Expand Down
1 change: 1 addition & 0 deletions gooddata-flexconnect/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
Expand Down
6 changes: 3 additions & 3 deletions gooddata-flexconnect/tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2024 GoodData Corporation
[tox]
envlist = py3{9,10,11,12}
envlist = py3{9,10,11,12,13}

[testenv]
package = wheel
Expand All @@ -17,7 +17,7 @@ commands =
pytest -v --cov=gooddata_flexconnect --cov-report=xml tests {posargs}

[testenv:mypy]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
Expand All @@ -28,7 +28,7 @@ commands =
mypy gooddata_flexconnect

[testenv:docs]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/docs/requirements.txt
Expand Down
1 change: 1 addition & 0 deletions gooddata-flight-server/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
Expand Down
6 changes: 3 additions & 3 deletions gooddata-flight-server/tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2024 GoodData Corporation
[tox]
envlist = py3{9,10,11,12}
envlist = py3{9,10,11,12,13}

[testenv]
package = wheel
Expand All @@ -14,15 +14,15 @@ commands =
pytest -v --cov=gooddata_flight_server --cov-report=xml tests {posargs}

[testenv:mypy]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
commands =
mypy gooddata_flight_server

[testenv:docs]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/docs/requirements.txt
Expand Down
2 changes: 1 addition & 1 deletion gooddata-pandas/.readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.12"
python: "3.13"

sphinx:
configuration: gooddata-pandas/docs/conf.py
Expand Down
1 change: 1 addition & 0 deletions gooddata-pandas/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
Expand Down
6 changes: 3 additions & 3 deletions gooddata-pandas/tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2021 GoodData Corporation
[tox]
envlist = py3{9,10,11,12}
envlist = py3{9,10,11,12,13}

[testenv]
package = wheel
Expand All @@ -16,7 +16,7 @@ commands =
pytest -v --cov=gooddata_pandas --cov-report=xml tests {posargs}

[testenv:mypy]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
Expand All @@ -26,7 +26,7 @@ commands =
mypy gooddata_pandas

[testenv:docs]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/docs/requirements.txt
Expand Down
1 change: 1 addition & 0 deletions gooddata-sdk/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Database",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
Expand Down
6 changes: 3 additions & 3 deletions gooddata-sdk/tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# (C) 2021 GoodData Corporation
[tox]
envlist = py3{9,10,11,12}
envlist = py3{9,10,11,12,13}

[testenv]
package = wheel
Expand All @@ -15,7 +15,7 @@ commands =
pytest -v --cov=gooddata_sdk --cov-report=xml tests {posargs}

[testenv:mypy]
basepython = python3.12
basepython = python3.13
skip_install = true
deps =
-r{toxinidir}/type-requirements.txt
Expand All @@ -24,7 +24,7 @@ commands =
mypy gooddata_sdk

[testenv:docs]
basepython = python3.12
basepython = python3.13
skip_install = true
setenv =
CWD_TO_ROOT_RELATIVE = ".."
Expand Down

0 comments on commit 09353ee

Please sign in to comment.