From cf19440e74d27689bee102c53bc58e944f7f2f00 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:35:52 +0000 Subject: [PATCH 1/4] Initial plan From ac9ef8720a790ecf888f5755e0d84c322f993779 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:38:03 +0000 Subject: [PATCH 2/4] Add GitHub Actions CI workflow with Python 3.11-3.14 testing Co-authored-by: suminb <136119+suminb@users.noreply.github.com> --- .github/workflows/ci.yml | 41 ++++++++++++++++++++++++++++++++++++++++ .gitignore | 1 + pyproject.toml | 7 +++++++ 3 files changed, 49 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 pyproject.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..bf11b86 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: CI + +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.11", "3.12", "3.13", "3.14"] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + allow-prereleases: true + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install mypy ruff + + - name: Lint with ruff + run: | + ruff check winnowing tests + + - name: Type check with mypy + run: | + mypy winnowing --ignore-missing-imports + + - name: Test with pytest + run: | + pytest tests --cov winnowing --durations=10 diff --git a/.gitignore b/.gitignore index 2f78cf5..7db1ef9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.pyc +.coverage diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..ce488d8 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,7 @@ +[tool.ruff.lint] +select = ["E", "F", "W", "I"] +ignore = [] + +# Allow star imports in test files +[tool.ruff.lint.per-file-ignores] +"tests/*" = ["F403", "F405"] From b4ae9b2eff0a6c0374001026ebd92b56173f5559 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:39:16 +0000 Subject: [PATCH 3/4] Add explicit permissions to workflow for security Co-authored-by: suminb <136119+suminb@users.noreply.github.com> --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf11b86..bee2bea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,8 @@ on: jobs: test: runs-on: ubuntu-latest + permissions: + contents: read strategy: matrix: python-version: ["3.11", "3.12", "3.13", "3.14"] From e5b92aca33ac16a5d81baf8e033ea94b993c8897 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 06:58:33 +0000 Subject: [PATCH 4/4] Run CI on all branches for push events Co-authored-by: suminb <136119+suminb@users.noreply.github.com> --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bee2bea..8f93587 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,6 @@ name: CI on: push: - branches: [ main, master ] pull_request: branches: [ main, master ]