Conversation
- Add ruff linter/formatter with target-version py311 and select rules - Add PyPI classifiers, keywords, and project URLs - Add ruff to dev dependencies - Create py.typed PEP 561 marker for type checker support - Create CHANGELOG.md following Keep a Changelog format - Add .ruff_cache/ to .gitignore Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix B904: add 'from None' to re-raised exceptions in except clauses - Fix E741: rename ambiguous variable 'l' to descriptive names - Fix F821: add missing sqlite3 import in arxiv_client - Fix F841: remove unused variable assignment in preference_service - Fix F401: remove unused imports (auto-fixed by ruff) - Fix I001: sort and organize import blocks (auto-fixed by ruff) - Apply ruff format to all source files Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add conftest.py with tmp_config fixture using monkeypatch for DB isolation - Add test_models.py: enum values, dataclass defaults, Paper.primary_category - Add test_database.py: table creation, idempotency, indexes, row factory - Add test_recommendation.py: category/keyword/recency scoring, sort order, user profile building, content similarity - Add test_preference_service.py: category/keyword CRUD, like/dislike interactions, mutual exclusion 43 tests, all passing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Lint job: ruff check + format check on Python 3.13 - Test job: pytest with coverage on Python 3.11, 3.12, 3.13 matrix - Uses astral-sh/setup-uv@v4 with caching for fast builds - Triggers on push to main/dev and PRs to main Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add CI, license, Python version, and GitHub stars badges - Add tagline and 'Why arXiv Explorer?' section - Expand Quick Start into Quick Demo with full workflow - Add shell completion instructions - Add comparison table with arxiv-sanity-lite (respectful framing) - Add Contributing section linking to CONTRIBUTING.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CONTRIBUTING.md: dev setup, code style, testing, gitflow PR process - ISSUE_TEMPLATE/bug_report.yml: structured bug report form - ISSUE_TEMPLATE/feature_request.yml: feature request form - PULL_REQUEST_TEMPLATE.md: PR checklist (tests, lint, docs) - CODE_OF_CONDUCT.md: Contributor Covenant v2.1 - SECURITY.md: vulnerability reporting procedure Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
Changes
pyproject.toml: ruff config, classifiers, keywords, URLs, ruff dev depsrc/: lint fixes (B904, E741, F821, F841, F401, I001) + ruff formattests/: conftest + 4 test modules (43 tests).github/workflows/ci.yml: lint + test jobsREADME.md: badges, why section, demo, comparison, shell completion.github/: CONTRIBUTING, issue templates, PR template, CoC, SECURITYCHANGELOG.md,py.typed,.gitignoreupdateTest plan
uv run ruff check src/ tests/passesuv run ruff format --check src/ tests/passesuv run pytest --cov— 43/43 tests pass🤖 Generated with Claude Code