Add async optional dependency extra#1517
Open
Cr1stal wants to merge 1 commit into
Open
Conversation
2597a2e to
0326819
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #1472 by adding a public
asyncoptional dependency group for installing Bolt's async support:requirements/async.txtas the public dependency source for the extraslack_bolt[async]through package metadataAsyncAppmodule docstringAlternatives considered
Reuse
requirements/async_dev.txtRejected because
async_dev.txtis 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
aiohttprangesRejected for this PR to keep the new public contract small. Bolt still supports Python 3.7+, but current
aiohttpreleases require Python 3.9+. Adding legacy ranges would make Bolt responsible for maintaining compatibility with olderaiohttpversions.Add
aiohttpas a core dependencyRejected because async support is optional and the core package should keep its current runtime dependency surface.
Keep documenting manual
aiohttpinstallation onlyRejected 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.Appand/or its core componentsslack_bolt.async_app.AsyncAppand/or its core componentsslack_bolt.adapter/docsRequirements
./scripts/install_all_and_run_tests.shafter making the changes.