diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..623d48c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: monthly + groups: + github-actions: + patterns: + - "*" + cooldown: + default-days: 7 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ddfac8a..76e0340 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,10 +25,6 @@ jobs: fail-fast: false matrix: include: - - python-version: "3.10" - env: - TOXENV: py - coverage: true - python-version: "3.11" env: TOXENV: py @@ -45,11 +41,19 @@ jobs: env: TOXENV: py coverage: true + - python-version: "3.15" + env: + TOXENV: py + coverage: true - python-version: "pypy3.11" env: TOXENV: pypy3 coverage: true - - python-version: "3.10" + - python-version: "pypy3.12" + env: + TOXENV: pypy3 + coverage: true + - python-version: "3.11" env: TOXENV: mypy - python-version: "3.14" @@ -65,6 +69,7 @@ jobs: uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Set up uv uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 993fba7..85d6979 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.10 + rev: v0.17.0 hooks: - id: ruff-check args: [ --fix ] @@ -10,7 +10,7 @@ repos: hooks: - id: blacken-docs additional_dependencies: - - black==26.10.0 + - black==26.10.1 - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: @@ -20,6 +20,10 @@ repos: rev: v1.0.2 hooks: - id: sphinx-lint +- repo: https://github.com/rhysd/actionlint + rev: v1.7.12 + hooks: + - id: actionlint - repo: https://github.com/zizmorcore/zizmor-pre-commit rev: v1.30.1 hooks: diff --git a/pyproject.toml b/pyproject.toml index c76beec..b3259ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,16 +22,17 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "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", + "Programming Language :: Python :: 3.15", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", ] -requires-python = ">=3.10" +requires-python = ">=3.11" [project.urls] Homepage = "https://github.com/scrapy/formerly" @@ -73,11 +74,11 @@ allow_untyped_defs = true # variable regardless of its type. disallow_subclassing_any = false -[tool.pytest.ini_options] +[tool.pytest] addopts = [ "--doctest-modules", ] -xfail_strict = true +strict = true filterwarnings = [ "error", ] @@ -94,6 +95,12 @@ extend-select = [ "COM", # pydocstyle "D", + # pycodestyle + "E4", + "E7", + "E9", + # Pyflakes + "F", # flake8-future-annotations "FA", # flynt diff --git a/tox.ini b/tox.ini index 7d74424..4f08ca1 100644 --- a/tox.ini +++ b/tox.ini @@ -5,23 +5,23 @@ envlist = pre-commit mypy twinecheck - py310 py311 py312 py313 py314 + py315 pypy3 [testenv] deps = coverage >= 7.10.6 - pytest + pytest >= 9.0.0 pytest-cov >= 7.0.0 commands = pytest {posargs:--cov-config=pyproject.toml --cov=formerly --cov-report=term-missing --cov-report=xml --junitxml=testenv.junit.xml -o junit_family=legacy formerly tests} [testenv:mypy] -basepython = python3.10 +basepython = python3.11 deps = {[testenv]deps} mypy==2.4.0