Skip to content

Add CI, tests, linting, and GitHub community files#1

Merged
Axect merged 6 commits intomainfrom
dev
Feb 7, 2026
Merged

Add CI, tests, linting, and GitHub community files#1
Axect merged 6 commits intomainfrom
dev

Conversation

@Axect
Copy link
Owner

@Axect Axect commented Feb 7, 2026

Summary

  • Add ruff linter/formatter config with PyPI metadata and py.typed marker
  • Fix all lint issues and apply consistent formatting across the codebase
  • Add 43-test suite covering models, database, recommendation engine, and preference service
  • Add CI workflow (GitHub Actions) with lint + test matrix (Python 3.11–3.13)
  • Enhance README with badges, tagline, "Why" section, quick demo, and comparison table
  • Add GitHub community files (CONTRIBUTING, issue templates, PR template, CoC, Security)

Changes

  • pyproject.toml: ruff config, classifiers, keywords, URLs, ruff dev dep
  • src/: lint fixes (B904, E741, F821, F841, F401, I001) + ruff format
  • tests/: conftest + 4 test modules (43 tests)
  • .github/workflows/ci.yml: lint + test jobs
  • README.md: badges, why section, demo, comparison, shell completion
  • .github/: CONTRIBUTING, issue templates, PR template, CoC, SECURITY
  • CHANGELOG.md, py.typed, .gitignore update

Test plan

  • uv run ruff check src/ tests/ passes
  • uv run ruff format --check src/ tests/ passes
  • uv run pytest --cov — 43/43 tests pass
  • CI workflow passes on GitHub Actions after push

🤖 Generated with Claude Code

Axect and others added 6 commits February 7, 2026 14:50
- 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>
@Axect Axect merged commit 44c0967 into main Feb 7, 2026
8 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.

1 participant