Skip to content

Add CI to lexicon-python#2

Merged
PhotonicVelocity merged 10 commits intoPhotonicVelocity:mainfrom
markkohdev:markkoh/ci-2
Apr 13, 2026
Merged

Add CI to lexicon-python#2
PhotonicVelocity merged 10 commits intoPhotonicVelocity:mainfrom
markkohdev:markkoh/ci-2

Conversation

@markkohdev
Copy link
Copy Markdown
Contributor

@markkohdev markkohdev commented Apr 12, 2026

Reviving this PR with a new branch rebased on top of the latest changes on master (effective code changes are the same -- majority of PR is still just formatting and addition of uv.lock)

Hey @PhotonicVelocity thanks for making this library!! It's awesome to have some python tooling for the Lexicon API and the library is well written 🙌 I have some things that I'd love to contribute to the tool if you're open to it :)

Before I start contributing I figure it'd be good to have some CI set up in the repo and include some standard formatting and stuff.

This PR might seem a bit bulky but the vast majority of line changes are actually just formatting and addition of a uv.lock file -- these don't change the functionality of the library. The important files to look at are:

  • .github/workflows/ci.yml
  • .github/pull_request_template.md
  • Makefile
  • README.md

For merging this PR, I would recommend using the Rebase and merge strategy in order to keep the repo commit history clean in case more people start to contribute. You can actually even set that as the default/only merge strategy in the repo Settings if you'd like (which I generally recommend for public repos).

Summary

  • Add GitHub Actions CI pipeline with test (Python 3.9-3.12) and lint jobs using uv
  • Add a Makefile with common development commands (test, lint-check, lint-fix, format-check, format-fix, etc.)
  • Add a standardized GitHub PR template
  • Add uv.lock to source control for reproducible installs

Code Quality

  • Run ruff format across the entire codebase for consistent formatting
  • Fix linting issues:
    • Remove duplicate import of _normalize_id_sequence in tag_categories.py
    • Remove unused imports (types, Iterable, unique_in_order)
    • Add noqa directives for intentional wildcard import and E402 in tests
    • Rename loop variable field to filter_field/edit_field in tracks_types.py to avoid shadowing the dataclasses.field import
  • Fix ReadOnly import in tracks_types.py to fall back to typing_extensions on Python < 3.13

Test plan

  • CI pipeline passes on all Python versions (3.9, 3.10, 3.11, 3.12)
  • make test runs formatting, linting, and tests successfully locally
  • All existing tests continue to pass (no behavioral changes)

Copy link
Copy Markdown
Owner

@PhotonicVelocity PhotonicVelocity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Mark!

Had to approve you to run workflows and the CI is failing. But I'll merge this and fix it up.

@PhotonicVelocity PhotonicVelocity merged commit 4b88fa9 into PhotonicVelocity:main Apr 13, 2026
1 of 5 checks passed
@PhotonicVelocity
Copy link
Copy Markdown
Owner

@markkohdev

All cleaned up and CI passing — I dropped Python 3.9 support and bumped the minimum to 3.10. 3.9 hit EOL in Oct 2025 and supporting it was requiring a lot of workarounds for type syntax (Union instead of |, etc.). Also added 3.13 and 3.14 to the CI matrix.

@markkohdev markkohdev deleted the markkoh/ci-2 branch April 14, 2026 21:30
@markkohdev
Copy link
Copy Markdown
Contributor Author

Thanks @PhotonicVelocity!

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