Skip to content

Add async optional dependency extra#1517

Open
Cr1stal wants to merge 1 commit into
slackapi:mainfrom
Cr1stal:feature/issue-1472-async-extra
Open

Add async optional dependency extra#1517
Cr1stal wants to merge 1 commit into
slackapi:mainfrom
Cr1stal:feature/issue-1472-async-extra

Conversation

@Cr1stal
Copy link
Copy Markdown

@Cr1stal Cr1stal commented May 31, 2026

Summary

Fixes #1472 by adding a public async optional dependency group for installing Bolt's async support:

  • adds requirements/async.txt as the public dependency source for the extra
  • exposes slack_bolt[async] through package metadata
  • updates async installation docs and the AsyncApp module docstring

Alternatives considered

Reuse requirements/async_dev.txt

Rejected because async_dev.txt is a development/test requirements file. Exposing it through package extras would turn test-only dependency constraints into a public installation contract, which was the concern raised in #1423.

Support Python 3.7 and 3.8 through older aiohttp ranges

Rejected for this PR to keep the new public contract small. Bolt still supports Python 3.7+, but current aiohttp releases require Python 3.9+. Adding legacy ranges would make Bolt responsible for maintaining compatibility with older aiohttp versions.

Add aiohttp as a core dependency

Rejected because async support is optional and the core package should keep its current runtime dependency surface.

Keep documenting manual aiohttp installation only

Rejected because it leaves users responsible for discovering compatible async dependencies, which is the problem described in #1472.

Testing

  • pip wheel . --no-deps --no-build-isolation
  • ./scripts/format.sh --no-install
  • ./scripts/lint.sh --no-install
  • ./scripts/run_tests.sh tests/slack_bolt_async
  • ./scripts/run_mypy.sh --no-install
  • ./scripts/install_all_and_run_tests.sh (910 passed, 81 warnings)

Category

  • slack_bolt.App and/or its core components
  • slack_bolt.async_app.AsyncApp and/or its core components
  • Adapters in slack_bolt.adapter
  • Document pages under /docs
  • Others

Requirements

  • I've read and understood the Contributing Guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've run ./scripts/install_all_and_run_tests.sh after making the changes.

@Cr1stal Cr1stal force-pushed the feature/issue-1472-async-extra branch from 2597a2e to 0326819 Compare May 31, 2026 05:03
@Cr1stal Cr1stal marked this pull request as ready for review May 31, 2026 05:04
@Cr1stal Cr1stal requested review from a team as code owners May 31, 2026 05:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fully define dependencies for async support via optional dependency group

1 participant