← Back to issue list

Remove pylint in favour of ruff

View original Github issue

Metadata

Project
craft-parts
Number
#562
Type
issue
State
closed
Author
lengau
Labels
—
Created
Updated
Closed

Current evaluation

Pylint was dropped in favour of ruff by merged PR #580 (commit 111c8907, "chore(linter): enable ruff base on starbase config"), removing the [tool.pylint] config and CI/Makefile/dependency usage; ruff config expanded to cover it.

Resolution: closed resolved

Reason: PR #580 was merged as commit 111c8907, which deleted the [tool.pylint] section from pyproject.toml and enabled ruff-based linting/formatting (tool.ruff, tool.ruff.lint) via common.mk targets lint-ruff/format-ruff; no pylint config or Makefile/CI references remain at HEAD. Interim mitigations were #565 (pin pylint version) and #567 (fix linter issues).

Evaluated by: mr-cal-bot

No scores available.

Issue body

### What needs to get done 1. Ensure that all of our enabled pylint checks are also enabled in the ruff configuration 2. Remove pylint from CI 3. Remove pylint from dependencies 4. Remove pylint from Makefile 5. Disable ruff linters that require code changes ### Why it needs to get done Pylint 3.0 has caused our CI to break. https://github.com/canonical/craft-parts/actions/runs/6436125741/job/17478834266?pr=547 From internal discussion we've decided to remove it in favour of ruff rather than fixing it

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Pylint was dropped in favour of ruff by merged PR #580 (commit 111c8907, "chore(linter): enable ruff base on starbase config"), removing the [tool.pylint] config and CI/Makefile/dependency usage; ruff config expanded to cover it.
stealth/space-bunny-alpha — closed resolved Pylint was removed and Ruff enabled via merged PR #580 (commit 111c8907), resolving the Pylint 3.0 CI breakage.
qwen/qwen3.6-35b-a3b — — Resolved by migrating from pylint to ruff to fix CI breaks caused by pylint 3.0. Commit 111c8907 removed pylint configuration and dependencies, completing the switch via PR #580.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 15
Confidence: 85
Support Request: 0
needs triage Task to migrate project linting from pylint to ruff. Open for over two years with no maintainer assessment, labels, or recent activity beyond an automated Jira sync.
qwen3.6-35b-a3b-mtp-q6
Staleness: 90
Complexity: 40
Confidence: 75
Support Request: 5
close stale Task to migrate CI linting from pylint to ruff after pylint 3.0 broke builds. Open for over two years with no maintainer follow-up or implementation progress.

Update history

Date Change
closed

Related work

  • Likely Fixed By: canonical/craft-parts#580 (confidence 97%)

    Merged PR that replaced pylint with a starbase-style ruff configuration; removes [tool.pylint] from pyproject.toml and covers items 1-5 of the issue.

  • Related To: canonical/craft-parts#567 (confidence 72%)

    Interim commit c41f86d6 'ci: fix linter issues' patched pylint 3.0 breakage before pylint was removed.

  • Related To: canonical/craft-parts#565 (confidence 70%)

    Commit 174d0e88 'ci: pin pylint version' temporarily pinned pylint to keep CI green prior to the ruff switch.

  • Related To: canonical/snapcraft#4817 (confidence 60%)

    Same pylint-to-ruff removal performed in the sibling snapcraft repo.

  • Related To: canonical/craft-parts#433 (confidence 55%)

    Commit 7dbf0405 'tox: basic tox from starbase' touched pylint config as part of the broader tooling migration.

  • Related To: canonical/rockcraft#675 (confidence 55%)

    Parallel pylint -> ruff replacement in rockcraft, adding ruff to CI and requirements.

Related issues

Issue Project State Summary Similarity
#118 style: remove pylint craft-store merged Merged PR #118 as commit beb9201, removing Pylint configuration and tooling after Ruff had replaced it.
85%
#675 style(lint): replace pylint with ruff rockcraft merged Merged as b7d70598, replacing pylint with Ruff, adding Ruff to CI and project requirements, and enabling equivalent lint coverage.
81%
#4817 style: remove pylint snapcraft merged Merged as a9badaa32, removing Pylint from lint tooling, configuration, and source suppressions after Ruff had replaced nearly all of it.
80%
#4712 Move more linting to ruff snapcraft closed Ruff linting was completed and aligned with Starbase; pylint and isort were removed in #4817 and commit a00f1c439, followed by pylint cleanup in #4848.
79%
#651 chore(linter): refine ruff configurations craft-parts merged Merged PR #651 (commit 658dde3c) re-added previously removed Pylint (PLR) rules to the Ruff lint config in pyproject.toml, now present as [tool.ruff.lint.pylint] and per-file ignores.
78%
#481 build: update ruff settings rockcraft closed Ruff lint-config tweak PR closed unmerged; maintainer lengau closed it 2024-08-28 as superseded by #675 ("style(lint): replace pylint with ruff", merged as commit b7d70598).
77%
#288 lint: add ruff, remove autoflake, flake8, isort, pydocstyle, pylint craft-providers merged Merged PR #288 in commit 42a7920, replacing autoflake, flake8, isort, pydocstyle, and pylint with Ruff; deferred Ruff rule cleanup was tracked in #287.
76%
#173 tools: enable ruff craft-cli merged Merged PR #173 enabled Ruff, removed pylint, and fixed related mypy, pyright, test, and coverage issues; it explicitly fixes canonical/craft-cli#146.
75%
#59 Run pylint in Github CI. craft-cli merged Merged PR #59 added pylint to GitHub CI via ad06d5c (merge 6dafc86); later PR #173 replaced pylint with Ruff.
74%
#4602 build(lint): use ruff from snap snapcraft merged Merged PR #4602 (8a9a5c212) replaced pyright-based CI linting with Ruff supplied by its snap for more predictable tool upgrades.
74%