Skip to content

chore: drop setup.cfg and configure metadata in pyproject.toml only - #2015

Merged
WilliamBergamin merged 1 commit into
mainfrom
chore/drop-setup-cfg
Nov 6, 2026
Merged

WilliamBergamin merged 1 commit into
mainfrom
chore/drop-setup-cfg

Conversation

@WilliamBergamin

Copy link
Copy Markdown
Contributor

Summary

This pull request removes the legacy setup.cfg so package metadata lives only in pyproject.toml, same as slackapi/bolt-python#1616.

Testing

  1. ./scripts/build_pypi_package.sh
  2. Install dist/*.whl in a fresh venv and confirm pip show slack-sdk matches the current release

Category

  • slack_sdk.web.WebClient (sync/async) (Web API client)
  • slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
  • slack_sdk.socket_mode (Socket Mode client)
  • slack_sdk.signature (Request Signature Verifier)
  • slack_sdk.oauth (OAuth Flow Utilities)
  • slack_sdk.models (UI component builders)
  • slack_sdk.scim (SCIM API client)
  • slack_sdk.audit_logs (Audit Logs API client)
  • slack_sdk.rtm_v2 (RTM client)
  • /docs (Documents)
  • /tutorial (PythOnBoardingBot tutorial)
  • tests/integration_tests (Automated tests for this library)

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 python3 -m venv .venv && source .venv/bin/activate && ./scripts/run_validation.sh after making the changes.

🤖 Generated with Claude Code

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@WilliamBergamin WilliamBergamin added enhancement M-T: A feature request for new functionality semver:patch python Pull requests that update Python code labels Nov 5, 2026
@codecov

codecov Bot commented Nov 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.38%. Comparing base (d9618f8) to head (559cdc5).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2015   +/-   ##
=======================================
  Coverage   84.38%   84.38%           
=======================================
  Files         118      118           
  Lines       13812    13812           
=======================================
  Hits        11655    11655           
  Misses       2157     2157           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@WilliamBergamin WilliamBergamin self-assigned this Nov 6, 2026
@WilliamBergamin
WilliamBergamin marked this pull request as ready for review November 6, 2026 14:10
@WilliamBergamin
WilliamBergamin requested a review from a team as a code owner November 6, 2026 14:10

@srtaalej srtaalej left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally following the steps in the description:

  1. ./scripts/build_pypi_package.sh builds the sdist + wheel and twine check passes on both.
  2. Installed the wheel in a fresh venv (pip 26.3): pip show slack-sdk matches the current 3.46.0 release from PyPI exactly (Home-page, Author, Author-email, License).

Also confirmed the pip < 24.1 caveat (pip 24.0 shows an empty Home-page, Author fields still fine), and nothing else in the repo references setup.cfg. LGTM!

Comment thread pyproject.toml
dynamic = ["version", "readme", "optional-dependencies"]
description = "The Slack API Platform SDK for Python"
license = { text = "MIT" }
authors = [{ name = "Slack Technologies, LLC" }, { email = "opensource@slack.com" }]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, splitting name and email into separate entries is what keeps Author: and Author-email: as two fields. A combined { name, email } entry would emit only Author-email: "Slack Technologies, LLC" <opensource@slack.com> and change the pip show output.

Comment thread pyproject.toml


[project.urls]
Homepage = "https://github.com/slackapi/python-slack-sdk"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed this shows up as Project-URL: Homepage, ... in METADATA instead of the old Home-page: header. pip 24.1+ maps it back to Home-page in pip show, while pip 24.0 shows it empty, matching the caveat in the description. Seems fine to me.

Comment thread pyproject.toml
dynamic = ["version", "readme", "authors", "optional-dependencies"]
dynamic = ["version", "readme", "optional-dependencies"]
description = "The Slack API Platform SDK for Python"
license = { text = "MIT" }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not for this PR: setuptools warns that the table form of license is deprecated (and so is the license classifier). Moving to license = "MIT" needs setuptools>=77, which doesn't work with our Python 3.7 support, so maybe that's a follow-up once we drop older Pythons.

@WilliamBergamin
WilliamBergamin merged commit decc671 into main Nov 6, 2026
19 checks passed
@WilliamBergamin
WilliamBergamin deleted the chore/drop-setup-cfg branch November 6, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement M-T: A feature request for new functionality python Pull requests that update Python code semver:patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants