From a5796c93b97f2ae90bf423c408ba05e92e742129 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 08:20:33 -0500 Subject: [PATCH 1/8] Add tests --- .github/workflows/run-tests.yml | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/run-tests.yml diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 000000000..f64d581fd --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,38 @@ +name: Run tests + +env: + # enable colored output + PY_COLORS: 1 + +on: + push: + branches: ["main"] + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + run_tests: + name: Run tests + runs-on: ubuntu-latest + timeout-minutes: 5 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: download uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + + - name: Install FastMCP + run: uv pip install -e ".[dev]" --system + + - name: Run tests + run: pytest -n auto -vv -s + if: ${{ !(github.event.pull_request.head.repo.fork) }} From eacf9fd79b4e55b7a0193fae053cafcbffc34fda Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:01:14 -0500 Subject: [PATCH 2/8] Add ai labeler --- .github/workflows/ai-labeler.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/ai-labeler.yml diff --git a/.github/workflows/ai-labeler.yml b/.github/workflows/ai-labeler.yml new file mode 100644 index 000000000..fbbf581cc --- /dev/null +++ b/.github/workflows/ai-labeler.yml @@ -0,0 +1,23 @@ +name: AI Labeler + +on: + issues: + types: [opened, reopened] + issue_comment: + types: [created] + pull_request: + types: [opened, reopened] + +jobs: + ai-labeler: + runs-on: ubuntu-latest + permissions: + contents: read + issues: write + pull-requests: write + steps: + - uses: actions/checkout@v4 + - uses: jlowin/ai-labeler@0.5.0 + with: + openai-api-key: ${{ secrets.OPENAI_API_KEY }} + controlflow-llm-model: openai/gpt-4o-mini From e618829224038d8d11d86237a6872d6536693d8b Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:02:03 -0500 Subject: [PATCH 3/8] Update ai-labeler.yml --- .github/workflows/ai-labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ai-labeler.yml b/.github/workflows/ai-labeler.yml index fbbf581cc..41d5853fe 100644 --- a/.github/workflows/ai-labeler.yml +++ b/.github/workflows/ai-labeler.yml @@ -17,7 +17,7 @@ jobs: pull-requests: write steps: - uses: actions/checkout@v4 - - uses: jlowin/ai-labeler@0.5.0 + - uses: jlowin/ai-labeler@v0.5.0 with: openai-api-key: ${{ secrets.OPENAI_API_KEY }} controlflow-llm-model: openai/gpt-4o-mini From ab30309686b434bdbabcc6e6eb69c7b058074cbe Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:03:01 -0500 Subject: [PATCH 4/8] Create ai-labeler.yml --- .github/ai-labeler.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/ai-labeler.yml diff --git a/.github/ai-labeler.yml b/.github/ai-labeler.yml new file mode 100644 index 000000000..23a7dc1d3 --- /dev/null +++ b/.github/ai-labeler.yml @@ -0,0 +1,2 @@ +context-files: + - README.md From 71a29b460accd05c42722350f31559ac75745583 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:04:05 -0500 Subject: [PATCH 5/8] Update run-tests.yml --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index f64d581fd..026702515 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -31,7 +31,7 @@ jobs: run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Install FastMCP - run: uv pip install -e ".[dev]" --system + run: uv sync - name: Run tests run: pytest -n auto -vv -s From ba6fd6afd60156514f3aab8f124d7741b379a012 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:11:28 -0500 Subject: [PATCH 6/8] Update run-tests.yml --- .github/workflows/run-tests.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 026702515..4d7985b96 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -22,17 +22,15 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Python 3.12 - uses: actions/setup-python@v5 - with: - python-version: "3.12" + - name: Install uv + uses: astral-sh/setup-uv@v4 - - name: download uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh + - name: Set up Python + run: uv python install 3.11 - name: Install FastMCP - run: uv sync + run: uv sync --all-extras --dev - name: Run tests - run: pytest -n auto -vv -s + run: uv run pytest -n auto -vv if: ${{ !(github.event.pull_request.head.repo.fork) }} From fc560b37a9c1e252e28e6a5e5ec58c28d4e3b70e Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:11:42 -0500 Subject: [PATCH 7/8] Update run-tests.yml --- .github/workflows/run-tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 4d7985b96..d80af272f 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -17,7 +17,6 @@ jobs: run_tests: name: Run tests runs-on: ubuntu-latest - timeout-minutes: 5 steps: - uses: actions/checkout@v4 From 6b257f42aaf27b5614200e15aece2f2a06b726b8 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:12:57 -0500 Subject: [PATCH 8/8] Remove -n because tests are quick --- .github/workflows/run-tests.yml | 2 +- pyproject.toml | 1 + uv.lock | 26 +++++++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index d80af272f..86609284e 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -31,5 +31,5 @@ jobs: run: uv sync --all-extras --dev - name: Run tests - run: uv run pytest -n auto -vv + run: uv run pytest -vv if: ${{ !(github.event.pull_request.head.repo.fork) }} diff --git a/pyproject.toml b/pyproject.toml index 4fe53f6e3..ca524787b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,6 +29,7 @@ dev = [ "copychat>=0.5.2", "ipython>=8.12.3", "pdbpp>=0.10.3", + "pytest-xdist>=3.6.1", "pytest>=8.3.3", "pytest-asyncio>=0.23.5", ] diff --git a/uv.lock b/uv.lock index aefa7b395..72b2ceeed 100644 --- a/uv.lock +++ b/uv.lock @@ -198,6 +198,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453 }, ] +[[package]] +name = "execnet" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612 }, +] + [[package]] name = "executing" version = "2.1.0" @@ -222,7 +231,7 @@ wheels = [ [[package]] name = "fastmcp" -version = "0.1.1.dev3+gbffea91.d20241130" +version = "0.2.1.dev8+gfc560b3.d20241130" source = { editable = "." } dependencies = [ { name = "httpx" }, @@ -239,6 +248,7 @@ dev = [ { name = "pdbpp" }, { name = "pytest" }, { name = "pytest-asyncio" }, + { name = "pytest-xdist" }, ] [package.metadata] @@ -257,6 +267,7 @@ dev = [ { name = "pdbpp", specifier = ">=0.10.3" }, { name = "pytest", specifier = ">=8.3.3" }, { name = "pytest-asyncio", specifier = ">=0.23.5" }, + { name = "pytest-xdist", specifier = ">=3.6.1" }, ] [[package]] @@ -691,6 +702,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl", hash = "sha256:a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b", size = 18024 }, ] +[[package]] +name = "pytest-xdist" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108 }, +] + [[package]] name = "python-dotenv" version = "1.0.1"