diff --git a/.github/common.env b/.github/common.env index 964d7b130..5006d4831 100644 --- a/.github/common.env +++ b/.github/common.env @@ -1,6 +1,6 @@ # Shared common variables -CI_IMAGE_VERSION=master-862722333 -CI_TOXENV_MAIN=py37,py38,py39,py310,py311 -CI_TOXENV_PLUGINS=py37-plugins,py38-plugins,py39-plugins,py310-plugins,py311-plugins +CI_IMAGE_VERSION=master-1091773482 +CI_TOXENV_MAIN=py37,py38,py39,py310,py311,py322 +CI_TOXENV_PLUGINS=py37-plugins,py38-plugins,py39-plugins,py310-plugins,py311-plugins,py312-plugins CI_TOXENV_ALL="${CI_TOXENV_MAIN},${CI_TOXENV_PLUGINS}" diff --git a/.github/compose/ci.docker-compose.yml b/.github/compose/ci.docker-compose.yml index e1e6315d9..6e54f0ae2 100644 --- a/.github/compose/ci.docker-compose.yml +++ b/.github/compose/ci.docker-compose.yml @@ -30,6 +30,10 @@ services: <<: *tests-template image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:38-${CI_IMAGE_VERSION:-latest} + fedora-39: + <<: *tests-template + image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:39-${CI_IMAGE_VERSION:-latest} + debian-10: <<: *tests-template image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-debian:10-${CI_IMAGE_VERSION:-latest} @@ -114,3 +118,8 @@ services: <<: *tests-template image: quay.io/pypa/manylinux_2_28_x86_64 command: .github/wheel-helpers/test-wheel-manylinux.sh cp311 /opt/python/cp311-cp311/bin/python3 + + wheels-manylinux_2_28-cp312: + <<: *tests-template + image: quay.io/pypa/manylinux_2_28_x86_64 + command: .github/wheel-helpers/test-wheel-manylinux.sh cp312 /opt/python/cp312-cp312/bin/python3 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f38d703e..e0e9856eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,6 +39,7 @@ jobs: - debian-10 - fedora-37 - fedora-38 + - fedora-39 - fedora-missing-deps - lint - mypy @@ -125,7 +126,7 @@ jobs: run: ${GITHUB_WORKSPACE}/.github/wheel-helpers/fetch-latest-buildbox-release.sh - name: Build wheels - run: pipx run cibuildwheel==2.11.3 + run: pipx run cibuildwheel==v2.16.2 - uses: actions/upload-artifact@v3 with: @@ -147,6 +148,7 @@ jobs: - wheels-manylinux_2_28-cp39 - wheels-manylinux_2_28-cp310 - wheels-manylinux_2_28-cp311 + - wheels-manylinux_2_28-cp312 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b5126a09..dbac5c40a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,6 +91,7 @@ jobs: - wheels-manylinux_2_28-cp39 - wheels-manylinux_2_28-cp310 - wheels-manylinux_2_28-cp311 + - wheels-manylinux_2_28-cp312 steps: - uses: actions/checkout@v3 diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index ae883000a..3bb641466 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -6,7 +6,7 @@ pytest-datafiles==3.0.0 pytest-env==0.8.1 pytest-xdist==3.2.0 pytest-timeout==2.1.0 -pyftpdlib==1.5.7 +pyftpdlib==1.5.9 # isort is an indirect requirement, but it must be constrained # as 5.12 is not available for python 3.7 isort==5.11.5 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 4d435d223..a9a9e9545 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,13 +1,13 @@ click==8.1.3 -grpcio==1.51.3 +grpcio==1.59.3 Jinja2==3.1.2 pluginbase==1.0.1 protobuf==4.22.0 psutil==5.9.4 ruamel.yaml==0.17.21 -ruamel.yaml.clib==0.2.7 +ruamel.yaml.clib==0.2.8 setuptools==67.4.0 -pyroaring==0.3.8 +pyroaring==0.4.4 ujson==5.7.0 ## The following requirements were added by pip freeze: MarkupSafe==2.1.2 diff --git a/tox.ini b/tox.ini index 74e6b6228..cd11c5878 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ # Tox global configuration # [tox] -envlist = py{37,38,39,310,311} +envlist = py{37,38,39,310,311,312} skip_missing_interpreters = true isolated_build = true @@ -33,30 +33,30 @@ BST_PLUGINS_VERSION = ed65975aa3b0629a36112d474366ac86d4da8261 [testenv] usedevelop = # This is required by Cython in order to get coverage for cython files. - py{37,38,39,310,311}-!nocover: True + py{37,38,39,310,311,312}-!nocover: True commands = # Running with coverage reporting enabled - py{37,38,39,310,311}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} + py{37,38,39,310,311,312}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} # Running with coverage reporting disabled - py{37,38,39,310,311}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} + py{37,38,39,310,311,312}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} # Running external plugins tests with coverage reporting enabled - py{37,38,39,310,311}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} + py{37,38,39,310,311,312}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} # Running external plugins tests with coverage disabled - py{37,38,39,310,311}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} + py{37,38,39,310,311,312}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} commands_post: - py{37,38,39,310,311}-!nocover: mkdir -p .coverage-reports - py{37,38,39,310,311}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} + py{37,38,39,310,311,312}-!nocover: mkdir -p .coverage-reports + py{37,38,39,310,311,312}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} deps = - py{37,38,39,310,311}: -rrequirements/requirements.txt - py{37,38,39,310,311}: -rrequirements/dev-requirements.txt - py{37,38,39,310,311}: git+https://github.com/apache/buildstream-plugins.git@{env:BST_PLUGINS_VERSION:{[config]BST_PLUGINS_VERSION}} + py{37,38,39,310,311,312}: -rrequirements/requirements.txt + py{37,38,39,310,311,312}: -rrequirements/dev-requirements.txt + py{37,38,39,310,311,312}: git+https://github.com/apache/buildstream-plugins.git@{env:BST_PLUGINS_VERSION:{[config]BST_PLUGINS_VERSION}} # Install local sample plugins for testing pip plugin origins - py{37,38,39,310,311}: {toxinidir}/tests/plugins/sample-plugins + py{37,38,39,310,311,312}: {toxinidir}/tests/plugins/sample-plugins # Install external plugins for plugin tests - py{37,38,39,310,311}-plugins: git+https://gitlab.com/buildstream/bst-plugins-experimental.git@{env:BST_PLUGINS_EXPERIMENTAL_VERSION:{[config]BST_PLUGINS_EXPERIMENTAL_VERSION}}#egg=bst_plugins_experimental[deb] + py{37,38,39,310,311,312}-plugins: git+https://gitlab.com/buildstream/bst-plugins-experimental.git@{env:BST_PLUGINS_EXPERIMENTAL_VERSION:{[config]BST_PLUGINS_EXPERIMENTAL_VERSION}}#egg=bst_plugins_experimental[deb] # Only require coverage and pytest-cov when using it !nocover: -rrequirements/cov-requirements.txt @@ -84,21 +84,21 @@ passenv = # These keys are not inherited by any other sections # setenv = - py{37,38,39,310,311}: COVERAGE_FILE = {envtmpdir}/.coverage - py{37,38,39,310,311}: BST_TEST_HOME = {envtmpdir} - py{37,38,39,310,311}: BST_TEST_XDG_CACHE_HOME = {envtmpdir}/cache - py{37,38,39,310,311}: BST_TEST_XDG_CONFIG_HOME = {envtmpdir}/config - py{37,38,39,310,311}: BST_TEST_XDG_DATA_HOME = {envtmpdir}/share + py{37,38,39,310,311,312}: COVERAGE_FILE = {envtmpdir}/.coverage + py{37,38,39,310,311,312}: BST_TEST_HOME = {envtmpdir} + py{37,38,39,310,311,312}: BST_TEST_XDG_CACHE_HOME = {envtmpdir}/cache + py{37,38,39,310,311,312}: BST_TEST_XDG_CONFIG_HOME = {envtmpdir}/config + py{37,38,39,310,311,312}: BST_TEST_XDG_DATA_HOME = {envtmpdir}/share # This is required to run tests with python 3.7 py37: SETUPTOOLS_ENABLE_FEATURES = "legacy-editable" # This is required to get coverage for Cython - py{37,38,39,310,311}-!nocover: BST_CYTHON_TRACE = 1 + py{37,38,39,310,311,312}-!nocover: BST_CYTHON_TRACE = 1 randomized: PYTEST_ADDOPTS="--random-order-bucket=global" whitelist_externals = - py{37,38,39,310,311}: + py{37,38,39,310,311,312}: mv mkdir