diff --git a/.github/workflows/run-unit-tests-macos.yml b/.github/workflows/run-unit-tests-macos.yml index 59e2ccbf27..df128bfa6a 100644 --- a/.github/workflows/run-unit-tests-macos.yml +++ b/.github/workflows/run-unit-tests-macos.yml @@ -21,7 +21,7 @@ jobs: strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.12", "3.13", "3.14"] steps: - name: Checkout code diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 96b191eaa9..2d8c286ca0 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -39,7 +39,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.12", "3.13", "3.14"] steps: - name: Checkout code diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 891b6398fd..0966a61a34 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,6 +7,13 @@ Docker Compose users with existing data: run `./migrate-pg13-to-17.sh` before st the stack. Fresh installations require no action. +v37.0.0 (unreleased) +-------------------- + +- Upgrade Django to release 6.x + +- Drop support for Python3.10 and Python3.11 + v36.1.0 (2026-01-22) -------------------- diff --git a/etc/thirdparty/virtualenv.pyz b/etc/thirdparty/virtualenv.pyz index 06a228d36d..914dcfb62a 100644 Binary files a/etc/thirdparty/virtualenv.pyz and b/etc/thirdparty/virtualenv.pyz differ diff --git a/etc/thirdparty/virtualenv.pyz.ABOUT b/etc/thirdparty/virtualenv.pyz.ABOUT index 8e434b418b..0843d40cc5 100644 --- a/etc/thirdparty/virtualenv.pyz.ABOUT +++ b/etc/thirdparty/virtualenv.pyz.ABOUT @@ -1,7 +1,7 @@ about_resource: virtualenv.pyz name: get-virtualenv -version: 20.35.4 -download_url: https://github.com/pypa/get-virtualenv/raw/20.35.4/public/virtualenv.pyz +version: 20.36.1 +download_url: https://github.com/pypa/get-virtualenv/raw/20.36.1/public/virtualenv.pyz description: virtualenv is a tool to create isolated Python environments. homepage_url: https://github.com/pypa/virtualenv license_expression: lgpl-2.1-plus AND (bsd-new OR apache-2.0) AND mit AND python AND bsd-new @@ -10,4 +10,4 @@ copyright: Copyright (c) The Python Software Foundation and others redistribute: yes attribute: yes track_changes: yes -package_url: pkg:github/pypa/get-virtualenv@20.35.4#public/virtualenv.pyz \ No newline at end of file +package_url: pkg:github/pypa/get-virtualenv@20.36.1#public/virtualenv.pyz \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 966bb60c36..9422ef1680 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "scancodeio" version = "36.1.0" description = "Automate software composition analysis pipelines" readme = "README.rst" -requires-python = ">=3.10" +requires-python = ">=3.12,<3.15" license = "Apache-2.0" license-files = ["LICENSE", "NOTICE", "scan.NOTICE"] authors = [ @@ -26,8 +26,6 @@ classifiers = [ "Intended Audience :: Legal Industry", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", @@ -35,10 +33,10 @@ classifiers = [ ] dependencies = [ - "importlib-metadata==8.7.0", - "setuptools==80.9.0", + "importlib-metadata==8.7.1", + "setuptools==82.0.0", # Django related - "Django==5.2.9", + "Django==6.0.2", "django-environ==0.12.0", "django-crispy-forms==2.5", "crispy-bootstrap3==2024.1", @@ -47,22 +45,22 @@ dependencies = [ "django-taggit==6.1.0", "django-htmx==1.27.0", # Database - "psycopg[binary]==3.3.1", + "psycopg[binary]==3.3.2", # wait_for_database Django management command "django-probes==1.8.0", # Task queue "rq==2.6.1", - "django-rq==3.2.1", - "redis==7.1.0", + "django-rq==3.2.2", + "redis==7.1.1", # WSGI server - "gunicorn==23.0.0", + "gunicorn==25.0.3", # Docker "container-inspector==33.1.0", # ScanCode-toolkit "scancode-toolkit[packages]==32.5.0", "extractcode[full]==31.0.0", "commoncode==32.4.2", - "Beautifulsoup4[chardet]==4.13.4", + "Beautifulsoup4[chardet]==4.14.3", "packageurl-python==0.17.6", # FetchCode "fetchcode==0.8.0", @@ -79,12 +77,12 @@ dependencies = [ "XlsxWriter==3.2.9", "openpyxl==3.1.5", "requests==2.32.5", - "GitPython==3.1.45", + "GitPython==3.1.46", # Profiling - "pyinstrument==5.1.1", + "pyinstrument==5.1.2", # CycloneDX "cyclonedx-python-lib==11.6.0", - "jsonschema==4.25.1", + "jsonschema==4.26.0", # MatchCode-toolkit "matchcode-toolkit==7.2.2", # Univers @@ -105,12 +103,12 @@ dependencies = [ [project.optional-dependencies] dev = [ # Validation - "ruff==0.14.7", + "ruff==0.15.0", "doc8==2.0.0", # Debug - "django-debug-toolbar==6.1.0", + "django-debug-toolbar==6.2.0", # Documentation - "Sphinx==8.1.3", # Newer versions dropped Python 3.10 support + "Sphinx==8.1.3", "sphinx-rtd-theme==3.0.2", "sphinx-rtd-dark-mode==1.3.0", "sphinxcontrib-django==2.5", diff --git a/scancodeio/__init__.py b/scancodeio/__init__.py index 5b1b055ffb..a2272e7bb6 100644 --- a/scancodeio/__init__.py +++ b/scancodeio/__init__.py @@ -88,6 +88,7 @@ def extract_short_commit(git_describe): warnings.filterwarnings("ignore", module="extractcode") warnings.filterwarnings("ignore", module="typecode") warnings.filterwarnings("ignore", module="clamd") +warnings.filterwarnings("ignore", module="cyclonedx") def command_line(): diff --git a/scanpipe/filters.py b/scanpipe/filters.py index 1a063d730d..31cb8960b8 100644 --- a/scanpipe/filters.py +++ b/scanpipe/filters.py @@ -201,7 +201,7 @@ def is_active(self): [ field_name for field_name in self.form.changed_data - if field_name not in ["sort"] + if field_name != "sort" ] )