Skip to content

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

Open
WilliamBergamin wants to merge 1 commit into
mainfrom
chore/drop-setup-cfg
Open

WilliamBergamin wants to merge 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.

  • setup.cfg was added in Maintain metadata #999 to keep Home-page, Author, and Author-email in pip show after Configuring with pyproject.toml #996.
  • authors is now two entries, one name-only and one email-only. PEP 621 maps those to Author and Author-email exactly as before. A single entry with both would render Author-email: "Slack Technologies, LLC" <opensource@slack.com> with an empty Author.
  • Homepage is added to [project.urls]. Core metadata has no pyproject.toml field for Home-page, and pip 24.1+ fills Home-page in pip show from this URL.
  • Built METADATA diff against main: only Home-page: removed and Project-URL: Homepage added.
  • Caveat: pip 24.0 and older (the newest pip on Python 3.7) show an empty Home-page:. Home-page is deprecated core metadata, and PyPI's sidebar already uses Project-URL.

pip show slack-bolt on pip 25.3, before and after:

Name: slack_bolt
Version: 1.30.0
Summary: The Bolt Framework for Python
Home-page: https://github.com/slackapi/bolt-python
Author: Slack Technologies, LLC
Author-email: opensource@slack.com
License: MIT
Requires: slack_sdk

Testing

  1. ./scripts/build_pypi_package.sh
  2. In a fresh venv: pip install dist/*.whl && pip show slack-bolt, and confirm the output above.
  3. Optionally compare unzip -p dist/*.whl '*.dist-info/METADATA' with a build from main.

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

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

  • 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.

🤖 Generated with Claude Code

setup.cfg only kept Home-page, Author, and Author-email intact for
pip show (#999). Listing the author as separate name and email entries
reproduces Author and Author-email exactly, and a Homepage project URL
fills Home-page on pip 24.1 and later.

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@WilliamBergamin WilliamBergamin added improvement python Pull requests that update Python code semver:patch labels Nov 5, 2026
@WilliamBergamin
WilliamBergamin marked this pull request as ready for review November 5, 2026 21:33
@WilliamBergamin
WilliamBergamin requested a review from a team as a code owner November 5, 2026 21:33
@WilliamBergamin WilliamBergamin self-assigned this Nov 5, 2026
@WilliamBergamin WilliamBergamin added this to the next milestone 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 91.57%. Comparing base (efc36b1) to head (ce933c4).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1616   +/-   ##
=======================================
  Coverage   91.57%   91.57%           
=======================================
  Files         228      228           
  Lines        7285     7285           
=======================================
  Hits         6671     6671           
  Misses        614      614           

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

@zimeg zimeg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

🧹 LGTM! Moving the last bits of setup.cfg into pyproject.toml keeps the published Author/Author-email/Home-page metadata the same. python-slack-sdk still carries the same setup.cfg with authors in dynamic, so a matching follow-up there would keep them in step.

@mwbrooks mwbrooks left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

✅ Thanks @WilliamBergamin, one less config file to keep in sync!

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

praise: Splitting authors into a name-only and an email-only entry is a neat trick to keep Author and Author-email exactly as pip show had them. Nice to see setup.cfg go 🧹

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

suggestion (non-blocking): A short comment above this line explaining the split could stop someone from tidying it into one entry later and bringing back the bug #999 fixed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement python Pull requests that update Python code semver:patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants