UV Migration, project-specific configs, and comprehensive testing#1
Open
UV Migration, project-specific configs, and comprehensive testing#1
Conversation
- Migrate from traditional pip/setuptools to UV for modern Python package management - Add comprehensive test suite with 89 tests achieving 74% code coverage - Implement intelligent configuration file hierarchy (project -> hidden -> global) - Move config.example.yml to project root for better team collaboration - Add development dependencies and tooling (pytest, black, ruff, coverage) - Enhance README with UV installation instructions and testing guidance - Modernize code with Rich library integration and improved error handling - Remove legacy install.sh in favor of UV-based workflows - Require Python 3.12+ with explicit version specification BREAKING CHANGE: Installation method changed from install.sh to UV-based installation. Users must run `uv tool install .` or `uv sync` for development setup.
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.
This PR represents a major modernization of the
cw-tailproject, migrating from traditional Python package management to UV, adding comprehensive test coverage, and improving project structure and configuration management.🔧 Package Management & Build System Changes
uv.lockand.python-version(3.12) files for modern Python dependency managementinstall.shscript in favor of UV-based installation workflowspytest,pytest-cov,black,ruff)📝 Configuration Management Improvements
config.example.ymlfromcw_tail/directory to project root for better discoverability./config.yml(project-specific, recommended for teams)./.cw-tail.yml(project-specific, hidden file)~/.config/cw-tail/config.yml(user-global fallback)🧪 Comprehensive Test Suite Addition
Added tests with 79% code coverage:
test_cw_tail.py: Core CloudWatchTailer class functionalitytest_utils.py: Utility function testing1h,15m,10sformats)test_main.py: CLI integration testingtest_formatters.py: JSON formatter testingtest_colors.py: Color function testingtest_sleep.py: Interruptible sleep functionality🎨 Code Quality & Modernization
pyproject.tomlusingtomllib📚 Documentation Enhancements
🔍 Manual QA Recommendations for Reviewers
Configuration Testing:
Installation Testing:
Test Suite Verification:
Configuration Merging:
# Test CLI arg override of config values uv run cw-tail --config dev --since 30m --region us-west-2install.shto UV-based installationcw_tail/config.example.ymlneed to move toconfig.ymlin project rootAreas for potential additional testing: