diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index cf0579a7..79f8ead9 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -31,10 +31,13 @@ jobs: python-version: 3.12 - name: Install pypa/build and twine - run: python -m pip install --user build twine + run: python -m pip install --user --upgrade build twine pkginfo - name: Build a binary wheel and a source tarball - run: python -m build --sdist --wheel --outdir dist/ + run: python -m build --wheel --sdist --outdir dist/ + + - name: Validate wheel and sdis for Pypi + run: python -m twine check dist/* - name: Validate wheel and sdis for Pypi run: python -m twine check dist/* diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fe3c9a5a..4626ad3d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,23 +20,15 @@ jobs: parameters: job_name: ci_code_style image_name: ubuntu-24.04 - python_versions: ['3.12'] + python_versions: ['3.13'] test_suites: all: make check - template: etc/ci/azure-posix.yml parameters: - job_name: ubuntu20_cpython - image_name: ubuntu-22.04 - python_versions: ['3.10', '3.11', '3.12'] - test_suites: - all: make test - - - template: etc/ci/azure-posix.yml - parameters: - job_name: ubuntu22_cpython + job_name: ubuntu24_cpython image_name: ubuntu-24.04 - python_versions: ['3.10', '3.11', '3.12'] + python_versions: ['3.10', '3.11', '3.12', '3.13'] test_suites: all: make test @@ -44,6 +36,6 @@ jobs: parameters: job_name: ci_documentation image_name: ubuntu-24.04 - python_versions: ['3.12'] + python_versions: ['3.13'] test_suites: all: make docs-check diff --git a/configure b/configure index a0d66b02..59a4b5d8 100755 --- a/configure +++ b/configure @@ -40,7 +40,6 @@ VIRTUALENV_DIR=venv # Cleanable files and directories to delete with the --clean option CLEANABLE="build dist venv .cache .eggs *.egg-info docs/_build/ pip-selfcheck.json" - # extra arguments passed to pip PIP_EXTRA_ARGS=" " @@ -114,7 +113,7 @@ create_virtualenv() { fi $PYTHON_EXECUTABLE "$VIRTUALENV_PYZ" \ - --wheel embed --pip embed --setuptools embed \ + --pip embed --setuptools embed \ --seeder pip \ --never-download \ --no-periodic-update \ diff --git a/etc/ci/azure-container-deb.yml b/etc/ci/azure-container-deb.yml index 85b611d3..d80e8dfb 100644 --- a/etc/ci/azure-container-deb.yml +++ b/etc/ci/azure-container-deb.yml @@ -21,7 +21,7 @@ jobs: - job: ${{ parameters.job_name }} pool: - vmImage: 'ubuntu-16.04' + vmImage: 'ubuntu-22.04' container: image: ${{ parameters.container }} diff --git a/etc/ci/azure-container-rpm.yml b/etc/ci/azure-container-rpm.yml index 1e6657d0..a64138c9 100644 --- a/etc/ci/azure-container-rpm.yml +++ b/etc/ci/azure-container-rpm.yml @@ -1,6 +1,6 @@ parameters: job_name: '' - image_name: 'ubuntu-16.04' + image_name: 'ubuntu-22.04' container: '' python_path: '' python_version: '' diff --git a/etc/scripts/utils_thirdparty.py b/etc/scripts/utils_thirdparty.py index aafc1d69..8e1ba819 100644 --- a/etc/scripts/utils_thirdparty.py +++ b/etc/scripts/utils_thirdparty.py @@ -114,13 +114,14 @@ TRACE_ULTRA_DEEP = False # Supported environments -PYTHON_VERSIONS = "37", "38", "39", "310" +PYTHON_VERSIONS = "39", "310", "311", "312", "313" PYTHON_DOT_VERSIONS_BY_VER = { - "37": "3.7", - "38": "3.8", "39": "3.9", "310": "3.10", + "311": "3.11", + "312": "3.12", + "313": "3.13", } @@ -132,10 +133,11 @@ def get_python_dot_version(version): ABIS_BY_PYTHON_VERSION = { - "37": ["cp37", "cp37m", "abi3"], - "38": ["cp38", "cp38m", "abi3"], "39": ["cp39", "cp39m", "abi3"], "310": ["cp310", "cp310m", "abi3"], + "311": ["cp311", "cp311m", "abi3"], + "312": ["cp312", "cp312m", "abi3"], + "313": ["cp313", "cp313m", "abi3"], } PLATFORMS_BY_OS = { diff --git a/requirements-dev.txt b/requirements-dev.txt index 241384aa..475ca7a4 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,56 +1,54 @@ alabaster==1.0.0 -annotated-types==0.7.0 -anyio==4.8.0 +anyio==4.9.0 babel==2.17.0 +backports.tarfile==1.2.0 black==25.1.0 -bracex==2.5.post1 -bump-my-version==0.32.1 -django-debug-toolbar==5.0.1 -doc8==1.1.2 +bracex==2.6 +bump-my-version==1.2.0 +django-debug-toolbar==5.2.0 +doc8==2.0.0 docutils==0.21.2 +exceptiongroup==1.3.0 execnet==2.1.1 -h11==0.14.0 -httpcore==1.0.7 +h11==0.16.0 +httpcore==1.0.9 httpx==0.28.1 id==1.5.0 imagesize==1.4.1 -iniconfig==2.0.0 -isort==6.0.0 +iniconfig==2.1.0 +isort==6.0.1 jaraco.classes==3.4.0 jaraco.context==6.0.1 -jeepney==0.8.0 +jeepney==0.9.0 keyring==25.6.0 -mypy-extensions==1.0.0 -nh3==0.2.20 +mypy_extensions==1.1.0 +nh3==0.2.21 pathspec==0.12.1 pbr==6.1.1 -platformdirs==4.3.6 -prompt_toolkit==3.0.50 -pycodestyle==2.12.1 -pydantic==2.10.6 -pydantic-settings==2.7.1 -pydantic_core==2.27.2 -pytest==8.3.4 -pytest-django==4.10.0 -pytest-rerunfailures==15.0 -pytest-xdist==3.6.1 +platformdirs==4.3.8 +prompt_toolkit==3.0.51 +pycodestyle==2.14.0 +pytest==8.4.1 +pytest-django==4.11.1 +pytest-rerunfailures==15.1 +pytest-xdist==3.7.0 questionary==2.1.0 readme_renderer==44.0 requests-toolbelt==1.0.0 restructuredtext_lint==1.4.0 rfc3986==2.0.0 -rich==13.9.4 -rich-click==1.8.6 -ruff==0.9.7 +rich==14.0.0 +rich-click==1.8.9 +ruff==0.12.1 secretstorage==3.3.3 sniffio==1.3.1 -snowballstemmer==2.2.0 +snowballstemmer==3.0.1 sphinx==8.1.3 sphinx-autobuild==2024.10.3 sphinx-copybutton==0.5.2 sphinx-rtd-dark-mode==1.3.0 sphinx-rtd-theme==3.0.2 -sphinx_reredirects==0.1.5 +sphinx_reredirects==0.1.6 sphinxcontrib-applehelp==2.0.0 sphinxcontrib-devhelp==2.0.0 sphinxcontrib-htmlhelp==2.1.0 @@ -58,12 +56,11 @@ sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 -starlette==0.45.3 +starlette==0.47.1 stevedore==5.4.1 -tomlkit==0.13.2 +tomlkit==0.13.3 twine==6.1.0 -uvicorn==0.34.0 -vendorize==0.3.0 -watchfiles==1.0.4 -wcmatch==10.0 -websockets==15.0 \ No newline at end of file +uvicorn==0.35.0 +watchfiles==1.1.0 +wcmatch==10.1 +websockets==15.0.1 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 805c838b..85224639 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,46 +1,55 @@ -aboutcode-toolkit==11.0.0 +aboutcode-toolkit==11.1.1 aboutcode.federatedcode==0.1.0 aboutcode.hashid==0.2.0 aboutcode.pipeline==0.2.1 +aiofiles==24.1.0 +aiohappyeyeballs==2.6.1 +aiohttp==3.12.13 +aiosignal==1.3.2 +annotated-types==0.7.0 arrow==1.3.0 asgiref==3.8.1 -attrs==25.1.0 +async-timeout==5.0.1 +attrs==25.3.0 banal==1.0.6 -beartype==0.19.0 -beautifulsoup4==4.13.3 +beartype==0.21.0 +beautifulsoup4==4.13.4 +bids-analyser==0.2.0 +binary-inspector==0.1.2 binaryornot==0.4.4 -bitarray==3.1.0 +bitarray==3.4.3 bleach==6.2.0 -boolean.py==4.0 -certifi==2025.1.31 +boolean.py==5.0 +certifi==2025.6.15 cffi==1.17.1 chardet==5.2.0 -charset-normalizer==3.4.1 +charset-normalizer==3.4.2 clamd==1.0.2 -click==8.1.7 +click==8.2.1 colorama==0.4.6 -commoncode==32.2.0 +commoncode==32.3.0 construct==2.10.70 container-inspector==33.0.0 crispy-bootstrap3==2024.1 -crontab==1.0.1 -cryptography==44.0.1 -cyclonedx-python-lib==8.5.0 +crontab==1.0.4 +cryptography==45.0.4 +cyclonedx-python-lib==10.2.0 debian_inspector==31.1.0 defusedxml==0.7.1 Deprecated==1.2.18 -Django==5.1.5 -django-crispy-forms==2.3 +Django==5.1.11 +django-crispy-forms==2.4 django-environ==0.12.0 -django-filter==24.3 +django-filter==25.1 django-probes==1.7.0 -django-rq==3.0.0 +django-rq==3.0.1 django-taggit==6.1.0 -djangorestframework==3.15.2 +djangorestframework==3.16.0 dockerfile-parse==2.0.1 dparse2==0.7.0 drf-spectacular==0.28.0 -elf-inspector==0.0.1 +elementpath==5.0.3 +elf_inspector==0.0.3 et_xmlfile==2.0.0 extractcode==31.0.0 extractcode-7z==16.5.210531 @@ -50,8 +59,8 @@ fetchcode==0.6.0 fetchcode-container==1.2.3.210512 fingerprints==1.2.3 flot==0.7.2 -fontawesomefree==6.6.0 -freezegun==1.5.1 +freezegun==1.5.2 +frozenlist==1.7.0 ftfy==6.3.1 ftputil==5.1.0 fusepy==3.0.1 @@ -63,115 +72,132 @@ gunicorn==23.0.0 html5lib==1.1 htmllistparse==0.6.1 idna==3.10 -importlib_metadata==8.6.1 +importlib_metadata==8.7.0 inflection==0.5.1 intbitset==4.0.0 -jaraco.functools==4.1.0 +isodate==0.7.2 +jaraco.functools==4.2.1 javaproperties==0.8.2 jawa==2.2.0 -Jinja2==3.1.5 -jsonschema==4.23.0 -jsonschema-specifications==2024.10.1 +Jinja2==3.1.6 +jsonschema==4.24.0 +jsonschema-specifications==2025.4.1 jsonstreams==0.6.0 -license-expression==30.4.1 +lib4sbom==0.8.6 +license-expression==30.4.3 lief==0.15.1 -lxml==5.3.1 -Markdown==3.7 +lxml==6.0.0 +Markdown==3.8.2 markdown-it-py==3.0.0 MarkupSafe==3.0.2 -matchcode-toolkit==7.2.1 +matchcode-toolkit==7.2.2 mdurl==0.1.2 milksnake==0.1.6 -mock==5.1.0 -more-itertools==10.6.0 +mock==5.2.0 +more-itertools==10.7.0 +multidict==6.6.3 natsort==8.4.0 normality==2.6.1 +numpy==2.2.6 openpyxl==3.1.5 packagedcode-msitools==0.101.210706 -packageurl-python==0.16.0 -packaging==24.2 +packageurl-python==0.17.1 +packaging==25.0 packvers==21.5 parameter-expansion-patched==0.3.1 -pdfminer.six==20240706 +pdfminer.six==20250506 pefile==2024.8.26 -pip==24.3.1 +pip==25.1.1 pip-requirements-parser==32.0.1 pkginfo2==30.0.0 -pluggy==1.5.0 +pluggy==1.6.0 plugincode==32.0.0 ply==3.11 -psycopg==3.2.4 -psycopg-binary==3.2.4 +propcache==0.3.2 +psycopg==3.2.9 +psycopg-binary==3.2.9 publicsuffix2==2.20191221 -py-serializable==1.1.2 -pyahocorasick==2.1.0 +py-serializable==2.0.0 +py-tree-sitter-swift==0.0.1 +pyahocorasick==2.2.0 pycparser==2.22 +pydantic==2.11.7 +pydantic-settings==2.10.1 +pydantic_core==2.33.2 pyelftools==0.32 -PyGithub==2.6.0 +PyGithub==2.6.1 pygmars==0.9.0 -Pygments==2.19.1 -pyinstrument==5.0.0 +Pygments==2.19.2 +pyinstrument==5.0.2 PyJWT==2.10.1 pymaven-patch==0.3.2 PyNaCl==1.5.0 -pyparsing==3.2.1 +pyparsing==3.2.3 python-dateutil==2.9.0.post0 -python-dotenv==1.0.1 -python-inspector==0.12.1 -pytz==2025.1 +python-dotenv==1.1.1 +python-inspector==0.14.0 +pytz==2025.2 PyYAML==6.0.2 -rdflib==7.1.3 -redis==5.2.1 +rdflib==7.1.4 +redis==6.2.0 referencing==0.36.2 -regipy==5.1.0 +regipy==5.2.0 reppy2==0.3.6 -requests==2.32.3 -resolvelib==1.1.0 -rpds-py==0.23.0 +requests==2.32.4 +resolvelib==1.2.0 +rpds-py==0.25.1 rpm-inspector-rpm==4.16.1.3.210404 -rq==2.1.0 +rq==2.4.0 rq-scheduler==0.14.0 rubymarshal==1.0.3 rust-inspector==0.1.0 samecode==0.5.1 saneyaml==0.6.1 -scancode-toolkit==32.3.2 -scancodeio @ git+https://github.com/aboutcode-org/scancode.io.git@b7bc7c9efc6d995967b70eb83695271bd1edc3b9 +scancode-toolkit==32.3.3 +scancodeio==35.0.0 +scipy==1.15.3 semantic-version==2.10.0 semver==3.0.4 -setuptools==75.6.0 +setuptools==80.9.0 six==1.17.0 smmap==5.0.2 sortedcontainers==2.4.0 -soupsieve==2.6 -source-inspector==0.5.1 +soupsieve==2.7 +source-inspector==0.6.1 spdx-tools==0.8.2 sqlparse==0.5.3 symbolic==10.2.1 +tantivy==0.24.0 text-unidecode==1.3 toml==0.10.2 -tree-sitter==0.22.0 +tomli==2.2.1 +tree-sitter==0.23.2 tree-sitter-bash==0.21.0 tree-sitter-c==0.21.1 +tree-sitter-c-sharp==0.23.1 tree-sitter-cpp==0.22.0 tree-sitter-go==0.21.0 tree-sitter-java==0.21.0 tree-sitter-javascript==0.21.2 +tree-sitter-objc==3.0.2 tree-sitter-python==0.21.0 tree-sitter-rust==0.21.2 typecode==30.0.2 typecode-libmagic==5.39.210531 -types-python-dateutil==2.9.0.20241206 -typing_extensions==4.12.2 +typecode_libmagic_system_provided==33.0.0 +types-python-dateutil==2.9.0.20250516 +typing-inspection==0.4.1 +typing_extensions==4.14.0 univers==30.12.1 -uritemplate==4.1.1 -uritools==4.0.3 -urllib3==2.3.0 +uritemplate==4.2.0 +uritools==5.0.0 +urllib3==2.5.0 urlpy==0.5 wcwidth==0.2.13 webencodings==0.5.1 -wheel==0.45.1 wrapt==1.17.2 -XlsxWriter==3.2.0 +xlsxwriter==3.2.5 +xmlschema==4.1.0 xmltodict==0.14.2 -zipp==3.21.0 +yarl==1.20.1 +zipp==3.23.0 diff --git a/setup.cfg b/setup.cfg index 07327383..1e8c763f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,34 +37,33 @@ zip_safe = false install_requires = aboutcode.pipeline >= 0.2.1 arrow >= 1.3.0 - bitarray >= 2.9.2 debian-inspector >= 31.1.0 - commoncode >= 32.2.0 - Django >= 5.1.4 - django-environ >= 0.11.2 - django-rq >= 3.0.0 - djangorestframework >= 3.15.2 - django-filter >= 24.3 - drf-spectacular >= 0.27.2 - fetchcode >= 0.5.1 + commoncode >= 32.3.0 + Django >= 5.1.11 + django-environ >= 0.12.0 + django-rq >= 3.0.1 + djangorestframework >= 3.16.0 + django-filter >= 25.1 + drf-spectacular >= 0.28.0 + fetchcode >= 0.6.0 gunicorn >= 23.0.0 ftputil >= 5.1.0 jawa >= 2.2.0 - markdown >= 3.6 + markdown >= 3.8.2 natsort >= 8.4.0 - packageurl-python >= 0.16.0 - psycopg[binary] >= 3.2.3 - PyGithub >= 2.3.0 + packageurl-python >= 0.17.1 + psycopg[binary] >= 3.2.9 + PyGithub >= 2.6.1 reppy2 >= 0.3.6 rq-scheduler >= 0.14.0 rubymarshal == 1.0.3 - scancode-toolkit[packages] >= 32.3.0 + scancode-toolkit[packages] >= 32.3.3 urlpy >= 0.5 - matchcode-toolkit >= 7.2.1 + matchcode-toolkit >= 7.2.2 purl2vcs >= 2.0.0 univers >= 30.12.1 - scancodeio @ git+https://github.com/aboutcode-org/scancode.io.git@b7bc7c9efc6d995967b70eb83695271bd1edc3b9 - gitpython >= 3.1.43 + scancodeio >= 35.0.0 + GitPython >= 3.1.44 samecode >= 0.5.1 # FederatedCode integration aboutcode.federatedcode >= 0.1.0 @@ -79,7 +78,7 @@ dev = pytest >= 7.0.1 pytest-xdist >= 2 pytest-django - aboutcode-toolkit >= 7.0.2 + aboutcode-toolkit >= 11.1.1 mock flot ruff