Skip to content

Conversation

@gcamp
Copy link
Member

@gcamp gcamp commented Nov 4, 2025

Summary

This PR modernizes the project infrastructure and adds automated PyPI publishing:

Package Management & Build System

  • Migrated from setup.py to modern pyproject.toml with uv support
  • Configured setuptools as build backend for proper package discovery
  • Set Python requirement to ≥3.10
  • Added .python-version file (3.10.19) for consistent development environments
  • Added dev dependencies: flake8, pytest

CI/CD & Automation

  • New workflow: Automatic PyPI publishing on version changes in pyproject.toml
  • Updated PR workflow: Now uses uv for dependency management and testing
  • Both workflows test against CPython 3.10 and PyPy 3.10
  • Auto-creates GitHub releases with version tags and release notes
  • Attaches distribution files to releases

Documentation

  • Comprehensive README with badges (PyPI, Python version, license, build status)
  • Usage examples for loading, modifying, and patching GTFS data
  • Development setup instructions using uv
  • Added CLAUDE.md for Claude Code guidance

Maintainer Updates

  • Updated maintainers list (removed Nicholas Paun)

This workflow:
- Triggers on pushes to main
- Checks if the version in setup.py has changed
- If changed, builds and publishes to PyPI using API token
- Creates a GitHub release with the version tag and auto-generated notes

Requires PYPI_API_TOKEN secret to be configured in GitHub repository settings.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@gcamp gcamp requested a review from jsteelz as a code owner November 4, 2025 18:17
gcamp and others added 9 commits November 4, 2025 13:20
- Publish workflow now uses Python 3.11
- Pull request workflow tests against both Python 3.11 and PyPy 3.11

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Migrated from setup.py to pyproject.toml with uv
- Set requires-python to >=3.10
- Updated workflows to use uv for building and publishing
- Added flake8 and pytest as dev dependencies
- Both workflows test CPython 3.10 and PyPy 3.10

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Switched from hatchling to setuptools as build backend
- Properly configured package discovery for gtfs_loader directory
- Fixed uv sync and build issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Added badges for PyPI, Python version, license, and build status
- Expanded documentation with features, installation, and usage examples
- Added development setup instructions using uv
- Included project structure overview
- Added contributing guidelines and maintainer information

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Development commands using uv
- Architecture overview of core components
- Data flow explanation
- Key patterns for entity indexing and cross-references
- Itinerary format support documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
README.md Outdated
# py-gtfs-loader

Simple python library to load GTFS folder
[![PyPI version](https://badge.fury.io/py/py-gtfs-loader.svg)](https://badge.fury.io/py/py-gtfs-loader)
Copy link
Member

Choose a reason for hiding this comment

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

where this badge come from?

Copy link
Member Author

Choose a reason for hiding this comment

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

This is an service for open source stuff to have badge on their readme pages, but seems this one is down right now 🙃

Copy link
Member

Choose a reason for hiding this comment

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

no wonder nothing showed up/worked at that subdomain when i checked it 😂

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@gcamp gcamp merged commit b4a7af7 into main Nov 4, 2025
2 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.

3 participants