Skip to content

Modernize project setup with ruff, uv, and hatchling#293

Merged
jashparekh merged 5 commits into
mainfrom
modernize-project-setup
Jan 26, 2026
Merged

Modernize project setup with ruff, uv, and hatchling#293
jashparekh merged 5 commits into
mainfrom
modernize-project-setup

Conversation

@jashparekh

Copy link
Copy Markdown
Contributor

Summary

  • Migrate from setuptools to hatchling build system for modern Python packaging
  • Replace black, isort, flake8, bandit with ruff for unified linting and formatting
  • Replace pip with uv in Docker for faster dependency management
  • Consolidate all tool configs (mypy, pytest, coverage, ruff) into pyproject.toml
  • Update Python version support from 3.7-3.10 to 3.10-3.14
  • Add requirements.lock for reproducible builds with lock-requirements docker service
  • Add verify-wheel and build-dist GitHub Actions for wheel verification
  • Update CI workflow with modern jobs (ruff, mypy, verify-wheel, build-devbox)
  • Remove legacy config files (.bandit, .flake8, mypy.ini, pytest.ini, .coveragerc, setup.cfg, setup.py, .bumpversion.cfg)

Test plan

  • CI passes with new ruff linting
  • CI passes with mypy type checking
  • Tests pass on Python 3.10-3.14
  • Wheel builds and imports correctly
  • Docker devbox image builds successfully

Changelog

PH: FRL-
BR: achinchwadkar
tested: true

Jash Parekh added 5 commits January 26, 2026 14:00
Migrate from legacy tooling to modern Python development stack:

- Replace setuptools with hatchling build system
- Replace black, isort, flake8, bandit with ruff for linting/formatting
- Replace pip with uv in Docker for faster dependency management
- Consolidate all tool configs into pyproject.toml
- Update Python version support to 3.10-3.14
- Add requirements.lock for reproducible builds
- Add verify-wheel and build-dist GitHub Actions
- Update CI workflow with modern jobs (ruff, verify-wheel, build-devbox)
- Remove legacy config files (.bandit, .flake8, mypy.ini, pytest.ini, etc.)
- Fix B904: Add 'from err' to exception raises in except blocks
- Fix B018: Assign useless attribute access to variable
- Fix UP007: Use X | Y instead of Union[X, Y] for type annotations
- Fix SIM117: Combine nested with statements
- Fix B017: Use RuntimeError instead of blind Exception in test
- Fix mypy: Add None check for f.a_path in diff iteration
- Add per-file-ignores for S105 false positives in tests and remote_git_utils
- Update requirements.lock with correct dependency versions
- Update mkdocs.yml with modern mkdocstrings config format
- Add markdown_include, footnotes, and search plugin
- Add changelog.md symlink to docs nav
- Create requirements-docs.txt for docs-specific dependencies
- Update requirements-test.txt to remove docs dependencies
- Update lock_requirements.sh to include docs requirements
- Update install-dependencies action to support docs-requirements
- Update development-guide.md to reference ruff instead of legacy tools
- Regenerate requirements.lock with all dependencies
@jashparekh jashparekh merged commit 3d2bdc8 into main Jan 26, 2026
13 checks passed
@jashparekh jashparekh deleted the modernize-project-setup branch January 26, 2026 08:47
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