diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2880ebe..df09673 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,16 +38,25 @@ jobs: run: ruff check src tests setups test: - name: Tests + name: Tests (py${{ matrix.python-version }}) runs-on: ubuntu-latest timeout-minutes: 20 + strategy: + # Every supported interpreter reports independently, so one broken + # version never masks the others. + fail-fast: false + matrix: + python-version: ["3.11", "3.12", "3.13", "3.14"] + steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Pipenv uses: ./.github/actions/setup-pipenv + with: + python-version: ${{ matrix.python-version }} # Auto-discovers every test file so new tests can never be silently skipped. - name: Run tests diff --git a/Pipfile b/Pipfile index b0f11a8..0991a26 100644 --- a/Pipfile +++ b/Pipfile @@ -31,4 +31,4 @@ mkdocs-mermaid2-plugin = "*" linkchecker = "*" [requires] -python_version = "3.13" +python_version = ">=3.11" diff --git a/Pipfile.lock b/Pipfile.lock index ef5c717..de73c77 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "1a80a55ad055f6ee126e6c46dccec0f021db0d7e7c3208f158370b60faabf13d" + "sha256": "4cb6450de7614182960a79e9444a90861c7539b45fb096687eee8af93114a38d" }, "pipfile-spec": 6, "requires": { - "python_version": "3.13" + "python_version": ">=3.11" }, "sources": [ { diff --git a/README.md b/README.md index f4f34e8..b9849a8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A local-first research pipeline that retrieves academic papers from multiple scholarly APIs, ranks and clusters them with embeddings, synthesizes cross-paper insights, and exports reports in several formats. Uses **Ollama** by default for fully local LLM inference, with optional **OpenAI** and **Anthropic** providers. -Built with Python 3.13, pydantic-ai, sentence-transformers, and async I/O. +Built with Python 3.11+, pydantic-ai, sentence-transformers, and async I/O. **Documentation:** [https://ndevu12.github.io/Research_Assistant_Model/](https://ndevu12.github.io/Research_Assistant_Model/) — architecture, configuration, API reference, and operations. @@ -17,7 +17,7 @@ Built with Python 3.13, pydantic-ai, sentence-transformers, and async I/O. ## Requirements -- Python 3.13+ and [Pipenv](https://pipenv.pypa.io/) +- Python 3.11+ and [Pipenv](https://pipenv.pypa.io/) - Internet access for paper retrieval (LLM inference can run fully offline after model download) | Local model | RAM | Disk | @@ -30,9 +30,9 @@ Cloud providers require only an API key — no Ollama install. ## Quick start ```bash -pip install pipenv +pip install pipenv # externally-managed distro (Arch, Debian 12+, Fedora 39+)? use: pipx install pipenv pipenv install -cp .env.example .env # optional; edit as needed +cp -n .env.example .env # optional; -n leaves an existing .env untouched pipenv run python -m src "transformer attention mechanisms" ``` diff --git a/docs/development/local-setup.md b/docs/development/local-setup.md index ef2135b..266981f 100644 --- a/docs/development/local-setup.md +++ b/docs/development/local-setup.md @@ -1,6 +1,6 @@ # Local Development Setup -Development environment for AI Research Assistant: Python 3.13, Pipenv, pytest, and optional docs tooling. +Development environment for AI Research Assistant: Python 3.11+, Pipenv, pytest, and optional docs tooling. Source: `Pipfile`, `README.md`, `src/__main__.py`. @@ -8,7 +8,7 @@ Source: `Pipfile`, `README.md`, `src/__main__.py`. | Requirement | Notes | |-------------|-------| -| Python 3.13+ | Pinned in `Pipfile` `[requires]` | +| Python 3.11+ | Floor declared in `Pipfile` `[requires]` (`>=3.11`) | | Pipenv | Virtualenv and lockfile management | | Git | Clone the repository | @@ -19,9 +19,9 @@ For LLM development with Ollama, run [Setup system — Quick start](../setup-sys ```bash git clone https://github.com/Ndevu12/Research_Assistant_Model.git cd Research_Assistant_Model -pip install pipenv +pip install pipenv # externally-managed distro (Arch, Debian 12+, Fedora 39+)? use: pipx install pipenv pipenv install --dev -cp .env.example .env # optional +cp -n .env.example .env # optional; -n leaves an existing .env untouched ``` `pipenv install --dev` installs: diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 9d14ea8..ca91479 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -10,7 +10,7 @@ This page covers what gets installed, layout, and verification — not repeated | Requirement | Version / notes | |-------------|-----------------| -| Python | 3.13+ | +| Python | 3.11+ (tested on 3.11–3.14) | | Pipenv | Dependency and virtualenv management | | Internet | API retrieval; optional after Ollama model download for local LLM | | RAM (local LLM) | 4–6 GB (`llama3.2:3b`) or 8–10 GB (`llama3.1:8b`) | diff --git a/docs/index.md b/docs/index.md index 4b872a0..98019ae 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,7 +2,7 @@ A local-first research pipeline that retrieves academic papers from multiple scholarly APIs, ranks and clusters them with embeddings, synthesizes cross-paper insights, and exports reports in several formats. Uses **Ollama** by default for fully local LLM inference, with optional **OpenAI** and **Anthropic** providers. -Built with Python 3.13, pydantic-ai, sentence-transformers, and async I/O. +Built with Python 3.11+, pydantic-ai, sentence-transformers, and async I/O. Feature list, requirements, and RAM guidance: [README](https://github.com/Ndevu12/Research_Assistant_Model#features). @@ -13,7 +13,7 @@ Feature list, requirements, and RAM guidance: [README](https://github.com/Ndevu1 | Section | Description | |---------|-------------| -| [Installation](getting-started/installation.md) | Pipenv, Python 3.13, dependencies | +| [Installation](getting-started/installation.md) | Pipenv, Python 3.11+, dependencies | | [Quick Start](getting-started/quick-start.md) | First query and auto-setup flow | | [CLI Reference](user-guide/cli.md) | Flags, batch vs interactive mode | | [CLI vs API](user-guide/cli-vs-api.md) | Execution paths and provider divergence | diff --git a/pyproject.toml b/pyproject.toml index 1647f84..0e428b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ markers = [ [tool.ruff] line-length = 100 -target-version = "py313" +target-version = "py311" [tool.ruff.lint] # Correctness-focused: syntax errors, undefined names, unused imports/variables.