Skip to content

WIP - Linting & Templates setup#20

Closed
synman wants to merge 14 commits intodevelfrom
linting-setup
Closed

WIP - Linting & Templates setup#20
synman wants to merge 14 commits intodevelfrom
linting-setup

Conversation

@synman
Copy link
Owner

@synman synman commented Nov 12, 2025

WIP — Linting & Issue Templates setup

This draft PR adds a standardized Python linting and formatting toolchain plus repository issue templates to help with triage. The changes are intentionally non-functional (formatting & tooling) and are targeted at the devel branch so we can stage these repo-wide improvements before merging to main.

Summary of changes

  • Add formatting/linters and pre-commit:
    • Black and isort configuration merged into pyproject.toml
    • .pre-commit-config.yaml to run Black, isort, Flake8, Pylint, and common pre-commit hooks
    • requirements-dev.txt with developer dependencies
    • Makefile with helper targets (lint, lint-fix, format, precommit-install)
    • .flake8 and .pylintrc for Flake8/Pylint settings
  • CI enforcement:
    • .github/workflows/lint.yml to run Black/isort/Flake8, optional Pylint, and pre-commit on push/PR for devel/main/linting-* branches
  • Repository hygiene:
    • .gitignore preserved and enhanced with common Python/project entries
  • Issue templates:
    • .github/ISSUE_TEMPLATE/bug_report.md
    • .github/ISSUE_TEMPLATE/feature_request.md
    • .github/ISSUE_TEMPLATE/config.yml (disables blank issues and adds a Discussions contact link)

PR statistics (current)

  • Commits: 14
  • Files changed: 13
  • Additions: 284
  • Deletions: 1

Checklist

  • Black and isort configured in pyproject.toml
  • Flake8 and Pylint config files included
  • pre-commit configured
  • CI workflow added to run lint checks
  • requirements-dev.txt added
  • Issue templates (bug report, feature request) added
  • ISSUE_TEMPLATE config.yml added (blank_issues_enabled: false + support link)

Examples

Notes for reviewers

  • Pylint is included but intentionally not blocking in CI (marked optional) because it can be noisy. If you prefer stricter enforcement, we can change the workflow to fail the job on Pylint errors.
  • Black and isort target settings live in pyproject.toml — update target-version or line-length there if you want different formatting rules.
  • The pre-commit hooks will auto-fix many issues locally; please run the local checks before merging so we don't apply automatic formatting in a separate commit later.
  • Issue templates are simple and focused; we can add front-matter (labels, assignees) to auto-apply labels if you want automated triage.

How to validate locally (quick)

  1. Checkout the branch:
    git checkout linting-setup
  2. Create & activate a venv:
    python -m venv .venv && source .venv/bin/activate
  3. Install dev deps:
    python -m pip install --upgrade pip
    python -m pip install -r requirements-dev.txt
  4. Install pre-commit hooks & run all hooks:
    pre-commit install
    pre-commit run --all-files
  5. Run tool checks:
    black --check .
    isort --check-only .
    flake8 .

    optional: pylint src/ || true

Suggested follow-ups (separate PRs)

  • Run Black/isort autofix across the repository (if you want formatting changes applied in this PR, we can add them; otherwise keep lint-only for review).
  • Optionally run Pylint progressively or add per-module pylintrc overrides if specific modules need different rules.
  • Add GitHub issue/PR templates that auto-apply labels or projects (I can add label front-matter if you want).

@synman
Copy link
Owner Author

synman commented Nov 12, 2025

@copilot given the work we did with linting is there a template that we can apply to PRs that matches the requirements we established?

Copy link

Copilot AI commented Nov 12, 2025

@synman I've opened a new pull request, #23, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI mentioned this pull request Nov 12, 2025
19 tasks
Copilot AI and others added 2 commits November 12, 2025 04:24
Co-authored-by: synman <1299716+synman@users.noreply.github.com>
Add PR template with linting requirements
@synman synman changed the title WIP - Linting setup WIP - Linting & Templates setup Nov 12, 2025
@synman
Copy link
Owner Author

synman commented Nov 12, 2025

@copilot create another PR to merge #21 into this PR too

Copy link

Copilot AI commented Nov 12, 2025

@synman I've opened a new pull request, #24, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 2 commits November 12, 2025 04:41
Co-authored-by: synman <1299716+synman@users.noreply.github.com>
Merge issue templates into linting setup PR
@synman
Copy link
Owner Author

synman commented Nov 12, 2025

@copilot verify #21 is redundant now

Copy link

Copilot AI commented Nov 12, 2025

@synman I've opened a new pull request, #25, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI mentioned this pull request Nov 12, 2025
19 tasks
synman added a commit that referenced this pull request Nov 12, 2025
synman added a commit that referenced this pull request Nov 12, 2025
@synman synman closed this Nov 12, 2025
@synman synman deleted the linting-setup branch March 5, 2026 22:55
@synman synman restored the linting-setup branch March 5, 2026 22:55
@synman synman deleted the linting-setup branch March 5, 2026 22:55
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.

2 participants