From 8a636c9949fe6d98f43ca9ab47eb092a87b079fc Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 27 Jul 2026 16:29:35 +0000 Subject: [PATCH] Test on Python 3.13 in CI and align deploy docs The dashboard will be deployed on Streamlit Community Cloud with Python 3.13, so CI should exercise that interpreter. - ci.yml: run the unit tests on a 3.11 + 3.13 matrix so the deployed version is covered (fail-fast disabled so both report independently). - README: update the Community Cloud deploy step to Python 3.13. - dashboard/app.py: fix a stale docstring reference (requirements-dashboard.txt -> dashboard/requirements.txt). All 25 unit tests pass locally on 3.11; the matrix validates 3.13 in CI. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01D68SAeZ9GofWeNdMwvuDwC --- .github/workflows/ci.yml | 11 +++++++++-- README.md | 2 +- dashboard/app.py | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca8003e..d173c6f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,14 +15,21 @@ on: jobs: unit-tests: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # 3.13 is the version the dashboard is deployed on (Streamlit Community + # Cloud); 3.11 is kept as a lower bound. Testing both keeps the deployed + # interpreter covered by CI. + python-version: ['3.11', '3.13'] steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: ${{ matrix.python-version }} - name: Install dev dependencies run: pip install -r requirements-dev.txt diff --git a/README.md b/README.md index d931672..19bdeaa 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ pipeline dependencies out of the hosted build: - **Repository:** `Effyrt/Docuparse` - **Branch:** `main` - **Main file path:** `dashboard/app.py` - - **Python version** (Advanced settings): `3.11` + - **Python version** (Advanced settings): `3.13` 4. Click **Deploy**. **Why this works cleanly:** Community Cloud searches the entrypoint's directory diff --git a/dashboard/app.py b/dashboard/app.py index 4521ebe..1505bbe 100644 --- a/dashboard/app.py +++ b/dashboard/app.py @@ -6,7 +6,7 @@ minutes per document); it reads the JSON/markdown the pipeline already produced. Run locally: - pip install -r requirements-dashboard.txt + pip install -r dashboard/requirements.txt streamlit run dashboard/app.py All data access lives in dashboard/data_loader.py (pure stdlib, unit-tested).