Project tooling: pyproject.toml, ruff, pre-commit, community files#74
Merged
Conversation
- pyproject.toml: PEP 621 metadata, hatchling backend, ruff config, dependency groups for dev tooling (ruff + pre-commit) - .pre-commit-config.yaml: ruff lint+format, trailing whitespace, end-of-file fixer, YAML/TOML/merge-conflict checks - .editorconfig: 4-space Python, 2-space YAML, tab Makefiles Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CONTRIBUTING.md: dev setup, running feeds, code style, PR process, recommends Claude Code + Playwright MCP for new feed development - dependabot.yml: weekly updates for GitHub Actions and pip deps - pull_request_template.md: summary + changes + test plan checklist - CODEOWNERS: @Olshansk and @oborchers as maintainers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- dev_setup: uv sync + pre-commit install - dev_lint: ruff check + format check - dev_lint_fix: ruff check --fix + format - dev_format: alias for dev_lint_fix (backwards compatible) - dev_deps_sync: regenerate requirements.txt from pyproject.toml - Use uv run for all commands (consistent with CI) - Remove check_venv guards (uv handles environments) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix pyproject.toml: remove build-system (not a package), fix dependencies placement, add SIM108/N812 to ignore list - Run ruff check --fix and ruff format across all 22 generators - Fix SIM103 (return condition directly) in 3 files - Fix SIM105 (contextlib.suppress) in anthropic_news_blog.py - Add .github/workflows/lint.yml: ruff check on PRs and pushes to main (only triggers on .py and pyproject.toml changes) - Add feeds/.gitkeep to preserve feeds directory - Fix stray G character in .gitignore line 2 - Update uv.lock Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…e to uv run (#75) _tl;dr Fix generator bugs, replace `time.sleep` with proper Selenium waits, and migrate all remaining bare `python` calls to `uv run`._ ## Summary - **Fix `claude_blog.py` cache bug**: Add missing `deserialize_entries()` call — cached ISO date strings weren't converted back to datetimes before merge/sort - **Fix `dagster_blog.py` crash**: Wrap bare `strptime` calls in try/except so unexpected date formats log a warning instead of crashing the generator - **Replace `time.sleep` with `WebDriverWait`**: Swap fixed sleeps for explicit waits in `anthropic_news_blog.py`, `openai_research_blog.py`, and `xainews_blog.py` - **Migrate to `uv run`**: Replace all 26 bare `python` calls in `feeds.mk`, fix `validate_feeds.yml` to install uv, update `AGENTS.md` and skill docs - **Improve `CONTRIBUTING.md`**: Add `make help` callout, link to lint CI workflow, document agent skills Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Owner
|
Did a review of this in #75. Going to squash & merge this into main now! |
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
Modernize project tooling with pyproject.toml as single source of truth, ruff as the single linter+formatter (replacing black+isort), and standard community/governance files.
Changes
Config
Community files
Dev workflow
dev_setup(uv sync + pre-commit install),dev_lint(ruff check),dev_lint_fix(ruff fix + format),dev_format(alias)uv syncuv syncreplacesuv venv+uv pip install -r requirements.txtCode quality
Git hygiene
Gcharacter in .gitignoreTest plan
ruff check .passes with zero errorsruff format --check .passesuv syncworks (no build-system, non-package project)🤖 Generated with Claude Code