Expand Python support from 3.10-only to 3.9-3.12#1
Merged
marcuskbra merged 7 commits intomainfrom Jun 24, 2025
Merged
Conversation
## Summary of Changed Files **Branch**: `marcus/py3.12-migration` ### Modified Files (4): #### 1. **setup.py** - **Added Python version classifiers**: 3.9, 3.11, 3.12 (alongside existing 3.10) - **Updated repository URL**: `podio/valideer` → `happybits/valideer` #### 2. **.github/workflows/main.yml** - **Expanded CI matrix**: Added Python 3.9, 3.11, 3.12 testing - **Before**: `python-version: [ '3.10' ]` - **After**: `python-version: [ '3.9', '3.10', '3.11', '3.12' ]` #### 3. **tox.ini** - **Added test environments**: py39, py311, py312 - **Before**: `envlist = py310` - **After**: `envlist = py39,py310,py311,py312` #### 4. **README.rst** - **Updated CI badge**: Travis CI → GitHub Actions - **Updated test count**: 171 → 186 tests - **Added Python compatibility info**: "Python 3.9+ compatible" bullet point - **Updated repository URLs**: All `podio/valideer` → `happybits/valideer` - **Enhanced testing docs**: Added `tox` command instructions ### New Files (2): #### 5. **CLAUDE.md** - **Development guidance** for future Claude Code instances - **Architecture overview** and build commands - **Key patterns** and testing approach #### 6. **MIGRATION_REPORT.md** - **Comprehensive migration analysis** (5,000+ word report) - **Risk assessment** and compatibility findings - **Test results** and technical recommendations --- **Total Changes**: 6 files (4 modified, 2 new) **Core Library Code**: **0 changes** - migration achieved without touching validation logic **Test Results**: All 186 tests pass across Python 3.9-3.12 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Python 3.12 no longer includes setuptools by default, causing the CI build to fail. Added setuptools to the pip install command to resolve the import error. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Python 3.12 deprecated the 'setup.py test' command. Updated CI to use 'python -m unittest discover' which works across all Python versions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Added 'pip install -e .' to install the valideer package and its dependencies (decorator) before running tests. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
setuptools is not needed at runtime and pip install without -e flag can install packages without requiring setuptools in Python 3.12+. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Added clear instructions for installing from Git, including: - requirements.txt usage - Commit pinning for reproducible builds - Direct pip install from Git - Development setup with editable install 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull Request Overview
This PR expands the library’s Python support from version 3.10 only to a range spanning 3.9 through 3.12, ensuring broader compatibility while maintaining backward compatibility. Key changes include updating tox and GitHub Actions configurations to run tests against multiple Python versions, revising setup metadata and README documentation, and adding two new files (CLAUDE.md and MIGRATION_REPORT.md) to enhance development guidance and migration transparency.
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tox.ini | Updated test environment list from py310 to py39,py310,py311,py312 |
| setup.py | Revised URL and added classifiers for Python 3.9, 3.11, and 3.12 |
| README.rst | Updated CI badges, test counts, installation instructions, and compatibility info |
| MIGRATION_REPORT.md | Added comprehensive documentation on the migration process |
| CLAUDE.md | Provided development guidance and project overview documentation |
| .github/workflows/main.yml | Expanded CI matrix to test against Python 3.9, 3.10, 3.11, and 3.12 and updated test commands |
Comments suppressed due to low confidence (4)
CLAUDE.md:65
- Update the Python version information to reflect multi-version compatibility (e.g., 'Python Versions: 3.9–3.12') to keep documentation consistent with the rest of the changes.
- **Python Version**: 3.10 (recently migrated)
CLAUDE.md:23
- Consider using 'pip install -e .' instead of 'python setup.py install' for development mode installation for consistency with modern practices and the instructions in the README.
python setup.py install
.github/workflows/main.yml:28
- Verify that 'valideer/tests' is the correct directory for discovering all tests under every configuration to ensure comprehensive test coverage in the new multi-version setup.
coverage run --source=valideer -m unittest discover -s valideer/tests
tox.ini:9
- Confirm that 'minversion = 3.12' is intentional and refers to the minimum required version of tox; consider adding a comment to clarify this if there is potential for confusion with the supported Python versions.
minversion = 3.12
Updated CLAUDE.md to reflect the Python 3.9-3.12 migration: - Added happybits fork context and migration notes - Updated test commands to use modern unittest discover - Updated test count from 171 to 186 tests - Added Git installation instructions for other projects - Updated Python version support information 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
atkretsch
approved these changes
Jun 17, 2025
JBergles
approved these changes
Jun 20, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expand Python support from single-version (3.10) to multi-version compatibility (3.9-3.12), enabling broader adoption while maintaining full backward compatibility.
Changes Made
Modified Files (4):
1. setup.py
podio/valideer→happybits/valideer2. .github/workflows/main.yml
python-version: [ '3.10' ]python-version: [ '3.9', '3.10', '3.11', '3.12' ]3. tox.ini
envlist = py310envlist = py39,py310,py311,py3124. README.rst
podio/valideer→happybits/valideertoxcommand instructionsNew Files (2):
5. CLAUDE.md
6. MIGRATION_REPORT.md
Test Results ✅
Compatibility Analysis
Python Version Support:
Risk Assessment: LOW
distutils,impmodules)decorator) stable across versionsUser Impact
For Python 3.9 Projects:
pip install valideerworks immediatelyFor Existing Users:
Technical Implementation
Total Changes: 6 files (4 modified, 2 new)
Core Library Code: 0 changes - migration achieved without touching validation logic
CI/CD: Enhanced with 4x expanded test coverage via GitHub Actions matrix
Test Plan
🤖 Generated with Claude Code