Skip to content

Project scaffold overhaul#14

Merged
gabe-l-hart merged 6 commits intomainfrom
ProjectScaffoldOverhaul
Apr 12, 2026
Merged

Project scaffold overhaul#14
gabe-l-hart merged 6 commits intomainfrom
ProjectScaffoldOverhaul

Conversation

@gabe-l-hart
Copy link
Copy Markdown
Collaborator

Description

This PR overhauls the build and dev system for the project to use modern tools (uv, hatch-vcs) and CI.

AI Usage

This was built mostly using OpenCode with qwen3.5:122b.

Initial Prompt

This is an old project with an old build/release system. I need to update it to use modern pyproject.toml instead of setup.py/requirements.txt. You can find an example of a similar project that was updated in the same way at ../py-to-proto.
Specifically, I want you to do the following:

  1. Create a pyproject.toml that replaces setup.py, requirements.txt, and requirements_test.txt
  2. Remove the Dockerfile
  3. Update all scripts in scripts to not use the dockerized build env and instead use uv (also delete any scripts that are no longer relevent)
  4. Overhaul the CI in .github/workflows to use uv and standard GitHub Actions (you can look at ../py-to-proto/.github/workflows for examples)
  5. Update all docs to reflect using uv as the build env tool of choice

Changes

Created:

  • pyproject.toml - Modern build configuration using hatchling + hatch-vcs
    Deleted:
  • Dockerfile - No longer needed (replaced by uv)
  • setup.py - Replaced by pyproject.toml
  • requirements.txt - Merged into pyproject.toml
  • requirements_test.txt - Merged into pyproject.toml
  • .coveragerc - Moved to pyproject.toml
  • .isort.cfg - Moved to pyproject.toml
  • scripts/build_wheel.sh - Replaced by uv build
  • scripts/develop.sh - Replaced by uv run
  • scripts/install_release.sh - No longer needed
  • scripts/publish.sh - Replaced by uv publish
  • scripts/release.sh - Replaced by CI workflow
    Updated:
  • .github/workflows/tests.yml - Matrix strategy with 5 Python versions using uv run --python X.X
  • .github/workflows/release.yml - Simplified to single job using uv build and uv publish
  • scripts/run_tests.sh - Now uses uv run pytest
  • Makefile - Removed docker targets, added build target, updated test to use uv
  • .pre-commit-config.yaml - Updated to latest versions (black 24.3.0, isort 5.13.2, prettier v3.0.0)
  • CONTRIBUTING.md - Replaced docker instructions with uv workflow
  • README.md - Added uv installation option
    Key Changes:
  • Version from git tags using hatch-vcs
  • Python 3.10-3.14 support
  • Single pytest configuration in pyproject.toml
  • Cleaner CI with matrix builds testing multiple Python versions in parallel

Branch: ProjectScaffoldOverhaul
AI-usage: full (OpenCode + qwen3.5:122b)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Branch: ProjectScaffoldOverhaul
AI-usage: full (OpenCode + qwen3.5:122b)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Branch: ProjectScaffoldOverhaul
AI-usage: full (OpenCode + qwen3.5:122b)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Branch: ProjectScaffoldOverhaul
AI-usage: full (OpenCode + qwen3.5:122b)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Branch: ProjectScaffoldOverhaul
AI-usage: full (OpenCode + qwen3.5:122b)
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
Branch: ProjectScaffoldOverhaul
AI-usage: none
Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>
@gabe-l-hart gabe-l-hart merged commit 0deb495 into main Apr 12, 2026
6 checks passed
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