From 1a8a72ce26c1dfd7fc560c1442a6dacc230fb80d Mon Sep 17 00:00:00 2001 From: Michael Brooks Date: Wed, 28 Oct 2026 12:00:36 -0700 Subject: [PATCH 1/2] chore: replace requirements.txt with pyproject.toml dependencies --- .github/MAINTAINERS_GUIDE.md | 2 +- .github/workflows/ci.yml | 6 ++--- ai/slackbot-mcp-client/no-auth/.gitignore | 1 + ai/slackbot-mcp-client/no-auth/pyproject.toml | 23 +++++++++++++++++++ .../no-auth/requirements.txt | 10 -------- .../rich-responses/mcp-apps/.gitignore | 1 + .../rich-responses/mcp-apps/pyproject.toml | 23 +++++++++++++++++++ .../rich-responses/mcp-apps/requirements.txt | 10 -------- .../slack-identity/.gitignore | 1 + .../slack-identity/pyproject.toml | 23 +++++++++++++++++++ .../slack-identity/requirements.txt | 10 -------- block-kit/.gitignore | 1 + block-kit/pyproject.toml | 17 ++++++++++++++ block-kit/requirements.txt | 4 ---- methods/.gitignore | 1 + methods/pyproject.toml | 17 ++++++++++++++ methods/requirements.txt | 4 ---- 17 files changed, 112 insertions(+), 42 deletions(-) create mode 100644 ai/slackbot-mcp-client/no-auth/pyproject.toml delete mode 100644 ai/slackbot-mcp-client/no-auth/requirements.txt create mode 100644 ai/slackbot-mcp-client/rich-responses/mcp-apps/pyproject.toml delete mode 100644 ai/slackbot-mcp-client/rich-responses/mcp-apps/requirements.txt create mode 100644 ai/slackbot-mcp-client/slack-identity/pyproject.toml delete mode 100644 ai/slackbot-mcp-client/slack-identity/requirements.txt create mode 100644 block-kit/pyproject.toml delete mode 100644 block-kit/requirements.txt create mode 100644 methods/pyproject.toml delete mode 100644 methods/requirements.txt diff --git a/.github/MAINTAINERS_GUIDE.md b/.github/MAINTAINERS_GUIDE.md index aed110c..a986899 100644 --- a/.github/MAINTAINERS_GUIDE.md +++ b/.github/MAINTAINERS_GUIDE.md @@ -26,7 +26,7 @@ $ cd bolt-python-examples $ cd block-kit # Navigate to an example to change $ python -m venv .venv $ source .venv/bin/activate -(.venv) $ pip install -r requirements.txt +(.venv) $ pip install -e ".[dev]" (.venv) $ pip install /path/to/python-slack-sdk/dist/slack_sdk-*-py2.py3-none-any.whl --force-reinstall ``` diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 58bddae..fdef0e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: - name: Install dependencies run: | pip install -U pip - pip install -r requirements.txt + pip install -e ".[dev]" - name: Lint and check formatting run: | ruff check . @@ -67,7 +67,7 @@ jobs: - name: Install dependencies run: | pip install -U pip - pip install -r requirements.txt + pip install -e ".[dev]" - name: Type check run: | mypy . @@ -96,7 +96,7 @@ jobs: - name: Install dependencies run: | pip install -U pip - pip install -r requirements.txt + pip install -e ".[dev]" - name: Run all tests run: | pytest -v diff --git a/ai/slackbot-mcp-client/no-auth/.gitignore b/ai/slackbot-mcp-client/no-auth/.gitignore index 0f53357..9cd1a02 100644 --- a/ai/slackbot-mcp-client/no-auth/.gitignore +++ b/ai/slackbot-mcp-client/no-auth/.gitignore @@ -2,3 +2,4 @@ __pycache__ .venv .env* !.env.example +*.egg-info diff --git a/ai/slackbot-mcp-client/no-auth/pyproject.toml b/ai/slackbot-mcp-client/no-auth/pyproject.toml new file mode 100644 index 0000000..bfa2158 --- /dev/null +++ b/ai/slackbot-mcp-client/no-auth/pyproject.toml @@ -0,0 +1,23 @@ +[project] +name = "bolt-python-examples-mcp-client-no-auth" +version = "0.0.0" +requires-python = ">=3.10" +dependencies = [ + "httpx2==2.16.0", + "mcp==2.3.0", + "slack_bolt==1.30.0", + "slack_cli_hooks==0.3.0", + "slack_sdk==3.45.0", + "starlette==1.9.0", + "uvicorn==0.54.0", +] + +[project.optional-dependencies] +dev = [ + "mypy==2.4.0", + "pytest==9.1.1", + "ruff==0.17.1", +] + +[tool.setuptools.packages.find] +include = ["src*"] diff --git a/ai/slackbot-mcp-client/no-auth/requirements.txt b/ai/slackbot-mcp-client/no-auth/requirements.txt deleted file mode 100644 index 1b99377..0000000 --- a/ai/slackbot-mcp-client/no-auth/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -httpx2==2.16.0 -mcp==2.3.0 -mypy==2.4.0 -pytest==9.1.1 -ruff==0.17.1 -slack_bolt==1.30.0 -slack_cli_hooks==0.3.0 -slack_sdk==3.45.0 -starlette==1.9.0 -uvicorn==0.54.0 diff --git a/ai/slackbot-mcp-client/rich-responses/mcp-apps/.gitignore b/ai/slackbot-mcp-client/rich-responses/mcp-apps/.gitignore index 0f53357..9cd1a02 100644 --- a/ai/slackbot-mcp-client/rich-responses/mcp-apps/.gitignore +++ b/ai/slackbot-mcp-client/rich-responses/mcp-apps/.gitignore @@ -2,3 +2,4 @@ __pycache__ .venv .env* !.env.example +*.egg-info diff --git a/ai/slackbot-mcp-client/rich-responses/mcp-apps/pyproject.toml b/ai/slackbot-mcp-client/rich-responses/mcp-apps/pyproject.toml new file mode 100644 index 0000000..2865929 --- /dev/null +++ b/ai/slackbot-mcp-client/rich-responses/mcp-apps/pyproject.toml @@ -0,0 +1,23 @@ +[project] +name = "bolt-python-examples-mcp-client-mcp-apps" +version = "0.0.0" +requires-python = ">=3.10" +dependencies = [ + "httpx2==2.16.0", + "mcp==2.3.0", + "slack_bolt==1.30.0", + "slack_cli_hooks==0.3.0", + "slack_sdk==3.45.0", + "starlette==1.9.0", + "uvicorn==0.54.0", +] + +[project.optional-dependencies] +dev = [ + "mypy==2.4.0", + "pytest==9.1.1", + "ruff==0.17.1", +] + +[tool.setuptools.packages.find] +include = ["src*"] diff --git a/ai/slackbot-mcp-client/rich-responses/mcp-apps/requirements.txt b/ai/slackbot-mcp-client/rich-responses/mcp-apps/requirements.txt deleted file mode 100644 index 1b99377..0000000 --- a/ai/slackbot-mcp-client/rich-responses/mcp-apps/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -httpx2==2.16.0 -mcp==2.3.0 -mypy==2.4.0 -pytest==9.1.1 -ruff==0.17.1 -slack_bolt==1.30.0 -slack_cli_hooks==0.3.0 -slack_sdk==3.45.0 -starlette==1.9.0 -uvicorn==0.54.0 diff --git a/ai/slackbot-mcp-client/slack-identity/.gitignore b/ai/slackbot-mcp-client/slack-identity/.gitignore index 70379ff..2a65699 100644 --- a/ai/slackbot-mcp-client/slack-identity/.gitignore +++ b/ai/slackbot-mcp-client/slack-identity/.gitignore @@ -4,3 +4,4 @@ installations/ states/ .env* !.env.example +*.egg-info diff --git a/ai/slackbot-mcp-client/slack-identity/pyproject.toml b/ai/slackbot-mcp-client/slack-identity/pyproject.toml new file mode 100644 index 0000000..072a3b7 --- /dev/null +++ b/ai/slackbot-mcp-client/slack-identity/pyproject.toml @@ -0,0 +1,23 @@ +[project] +name = "bolt-python-examples-mcp-client-slack-identity" +version = "0.0.0" +requires-python = ">=3.10" +dependencies = [ + "httpx2==2.16.0", + "mcp==2.3.0", + "slack_bolt==1.30.0", + "slack_cli_hooks==0.3.0", + "slack_sdk==3.45.0", + "starlette==1.9.0", + "uvicorn==0.54.0", +] + +[project.optional-dependencies] +dev = [ + "mypy==2.4.0", + "pytest==9.1.1", + "ruff==0.17.1", +] + +[tool.setuptools.packages.find] +include = ["src*"] diff --git a/ai/slackbot-mcp-client/slack-identity/requirements.txt b/ai/slackbot-mcp-client/slack-identity/requirements.txt deleted file mode 100644 index 1b99377..0000000 --- a/ai/slackbot-mcp-client/slack-identity/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -httpx2==2.16.0 -mcp==2.3.0 -mypy==2.4.0 -pytest==9.1.1 -ruff==0.17.1 -slack_bolt==1.30.0 -slack_cli_hooks==0.3.0 -slack_sdk==3.45.0 -starlette==1.9.0 -uvicorn==0.54.0 diff --git a/block-kit/.gitignore b/block-kit/.gitignore index 4a797c4..561b11c 100644 --- a/block-kit/.gitignore +++ b/block-kit/.gitignore @@ -3,3 +3,4 @@ __pycache__ .pytest_cache .ruff_cache .venv +*.egg-info diff --git a/block-kit/pyproject.toml b/block-kit/pyproject.toml new file mode 100644 index 0000000..1f13eb4 --- /dev/null +++ b/block-kit/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "bolt-python-examples-block-kit" +version = "0.0.0" +requires-python = ">=3.10" +dependencies = [ + "slack_sdk==3.45.0", +] + +[project.optional-dependencies] +dev = [ + "mypy==2.4.0", + "pytest==9.1.1", + "ruff==0.17.1", +] + +[tool.setuptools.packages.find] +include = ["src*"] diff --git a/block-kit/requirements.txt b/block-kit/requirements.txt deleted file mode 100644 index 088239d..0000000 --- a/block-kit/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -mypy==2.4.0 -pytest==9.1.1 -ruff==0.17.1 -slack_sdk==3.45.0 diff --git a/methods/.gitignore b/methods/.gitignore index 4a797c4..561b11c 100644 --- a/methods/.gitignore +++ b/methods/.gitignore @@ -3,3 +3,4 @@ __pycache__ .pytest_cache .ruff_cache .venv +*.egg-info diff --git a/methods/pyproject.toml b/methods/pyproject.toml new file mode 100644 index 0000000..9473c2d --- /dev/null +++ b/methods/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "bolt-python-examples-methods" +version = "0.0.0" +requires-python = ">=3.10" +dependencies = [ + "slack-cli-hooks==0.3.0", + "slack_sdk==3.45.0", +] + +[project.optional-dependencies] +dev = [ + "mypy==2.4.0", + "ruff==0.17.1", +] + +[tool.setuptools.packages.find] +include = ["src*"] diff --git a/methods/requirements.txt b/methods/requirements.txt deleted file mode 100644 index 549a8ef..0000000 --- a/methods/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -mypy==2.4.0 -ruff==0.17.1 -slack-cli-hooks==0.3.0 -slack_sdk==3.45.0 From c0e6c8e040cdc5a0afed3c1170cbf8fb8c9a374c Mon Sep 17 00:00:00 2001 From: Michael Brooks Date: Thu, 29 Oct 2026 09:37:56 -0700 Subject: [PATCH 2/2] chore(methods): spell slack_cli_hooks with underscores to match the other examples --- methods/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/methods/pyproject.toml b/methods/pyproject.toml index 9473c2d..2bd3f44 100644 --- a/methods/pyproject.toml +++ b/methods/pyproject.toml @@ -3,7 +3,7 @@ name = "bolt-python-examples-methods" version = "0.0.0" requires-python = ">=3.10" dependencies = [ - "slack-cli-hooks==0.3.0", + "slack_cli_hooks==0.3.0", "slack_sdk==3.45.0", ]