chore(lint): retire Travis/Hound/pylint configs, move lint into pyproject.toml - #434
Merged
Merged
Conversation
…project.toml The flagship repository still carried 2019-era tooling that no longer runs: - .travis.yml - its only step beyond install was `poetry run codecov`, which uploaded nothing because no coverage was ever generated first. The Python 3.8/3.9/3.10 lint job is covered by pythonpackage.yml and tests through Python 3.12 by import-test.yml. - .hound.yml - Hound CI is no longer wired to this repository. - .pylintrc - pylint was never invoked by CI or by pre-commit, despite being in the dev dependency group. - .flake8 - superseded by [tool.ruff] in pyproject.toml. The ruff configuration is a behaviour-preserving port: pycodestyle and pyflakes rules at line-length 120 over the same exclude list, plus flake8-quotes (double quotes), which the codebase already satisfies. flake8 7.1.1 and ruff 0.16.9 both report zero findings on photoshop/, so CI behaviour is unchanged. Deliberately not ported: flake8-docstrings (google convention) reports 426 findings on photoshop/. Enabling it is a separate decision rather than a silent drop, and is tracked for review. `pylint` stays in the dev dependency group but is now unreferenced; removing it touches poetry.lock and is left for a follow-up.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
The repository root still carried 2019-era tooling. This removes four config
files whose behaviour is either dead or already covered elsewhere, and moves
lint configuration into
pyproject.tomlso there is one place to look..travis.ymlpythonpackage.yml; tests through Python 3.12 byimport-test.yml.hound.ymlsuccess, 2026-09-27T17:56:20Z.pylintrc.pre-commit-config.yamlor.github/workflows/.flake8[tool.ruff]inpyproject.tomlpyproject.tomlsupport in 5.x; the old file existed because of thatTravis coverage, itemised
The only step in
.travis.ymlbeyond install waspoetry run codecov. Nothinggenerated a coverage report before it ran, so the upload was a no-op. There is
no
codecov.ymlin the root and no Codecov badge inREADME.md. Dropping itloses nothing; the Python-version matrix it declared is a strict subset of what
the two Actions workflows already run.
Ruff port is behaviour-preserving
line-length = 120, matching the oldmax-line-lengthdocs,examples,test,build,dist,venv,old)E,W,F— what CI'sflake8 photoshop --max-line-length 120actuallyenforced
Qwith double quotes — the codebase already satisfies itMeasured on
photoshop/:flake8 7.1.1reports 0 findings andruff 0.16.9reports 0 findings. CI verdicts are unchanged..github/workflows/pythonpackage.ymlnow installs a pinnedruff==0.16.9instead of calling flake8.
Not ported — needs a decision
.flake8also configuredflake8-docstringswith the google convention.Enabling the ruff equivalent (
D,convention = "google") reports426 findings on
photoshop/. Neither that plugin norflake8-quoteswasever installed in CI, so those settings were inert — but silently dropping them
would be the wrong default. This PR keeps them out and flags them for a
separate decision.
Follow-ups, deliberately out of scope
pylintis still listed in the dev dependency group but is now unreferenced.Removing it touches
poetry.lock, which this PR does not touch.blackis configured withtarget_version = ['py37']while the packagerequires
>=3.8. Left alone.AGENTS.mdandllms.txtare handled separately.Scope guard
No change to
poetry.lock, packaging, or source code.Action needed from the account owner (outside this PR)
The Hound GitHub App is still installed on this account. It posts a
Houndcommit status on every pull request head — observed on this PR at 2026-09-27T17:56:20Z,
success, "Smells good to me. Woof!", 0 s duration — so it has not beenanalysing anything for a long time.
Deleting
.hound.ymlremoves its repository-level config, but the app willkeep posting a status that no longer corresponds to anything in the repository.
Uninstalling it is an account-level action (Settings -> Applications -> Hound ->
Revoke) and cannot be done from a pull request.