Skip to content

chore(lint): retire Travis/Hound/pylint configs, move lint into pyproject.toml - #434

Merged
loonghao merged 1 commit into
mainfrom
pip-3738/ppa-doc-contract
Sep 28, 2026
Merged

loonghao merged 1 commit into
mainfrom
pip-3738/ppa-doc-contract

Conversation

@loonghao

@loonghao loonghao commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

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.toml so there is one place to look.

File Why it goes Evidence
.travis.yml Python 3.8/3.9/3.10 lint is covered by pythonpackage.yml; tests through Python 3.12 by import-test.yml pythonpackage.yml, import-test.yml
.hound.yml Its only job was to run flake8 against the config above, which ruff now covers. The Hound GitHub App itself is still installed and needs removing separately — see below Hound status on this PR head: success, 2026-09-27T17:56:20Z
.pylintrc pylint was never invoked by CI or pre-commit no reference in .pre-commit-config.yaml or .github/workflows/
.flake8 superseded by [tool.ruff] in pyproject.toml flake8 only gained pyproject.toml support in 5.x; the old file existed because of that

Travis coverage, itemised

The only step in .travis.yml beyond install was poetry run codecov. Nothing
generated a coverage report before it ran, so the upload was a no-op. There is
no codecov.yml in the root and no Codecov badge in README.md. Dropping it
loses 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 old max-line-length
  • same exclude list (docs, examples, test, build, dist, venv, old)
  • E, W, F — what CI's flake8 photoshop --max-line-length 120 actually
    enforced
  • Q with double quotes — the codebase already satisfies it

Measured on photoshop/: flake8 7.1.1 reports 0 findings and
ruff 0.16.9 reports 0 findings. CI verdicts are unchanged.

.github/workflows/pythonpackage.yml now installs a pinned ruff==0.16.9
instead of calling flake8.

Not ported — needs a decision

.flake8 also configured flake8-docstrings with the google convention.
Enabling the ruff equivalent (D, convention = "google") reports
426 findings on photoshop/. Neither that plugin nor flake8-quotes was
ever 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

  • pylint is still listed in the dev dependency group but is now unreferenced.
    Removing it touches poetry.lock, which this PR does not touch.
  • black is configured with target_version = ['py37'] while the package
    requires >=3.8. Left alone.
  • AGENTS.md and llms.txt are 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 Hound
commit 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 been
analysing anything for a long time.

Deleting .hound.yml removes its repository-level config, but the app will
keep 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.

…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.
@loonghao
loonghao merged commit a133f81 into main Sep 28, 2026
10 checks passed
@loonghao
loonghao deleted the pip-3738/ppa-doc-contract branch September 28, 2026 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant