Skip to content

feat: add blank bolt for python template - #1

Merged
mwbrooks merged 2 commits into
mainfrom
mwbrooks-blank-template
Oct 30, 2026
Merged

mwbrooks merged 2 commits into
mainfrom
mwbrooks-blank-template

Conversation

@mwbrooks

Copy link
Copy Markdown
Member

Summary

This pull request gives Python developers a blank Bolt for Python template to start a new Slack app from, the same starting point slack-samples/bolt-js-blank-template gives JavaScript developers. The app settings page already suggests slack create --template slack-samples/bolt-python-blank-template for Python, and that command fails until this template exists.

  • app.py starts a Socket Mode app with no listeners, the Python version of the JavaScript blank template's app.js.
  • manifest.json is the JavaScript blank template's manifest, unchanged, so both blank templates create the same app.
  • The rest follows slack-samples/bolt-python-starter-template: pyproject.toml, README, AGENTS.md, .github files, and .gitignore. Sections only the starter needs (tests, listeners, OAuth) are removed.
  • CI runs ruff check and ruff format --check on Python 3.11 to 3.15. There are no tests yet, so there is no test job.
  • The repository is marked as a GitHub template, like both starter templates.

Testing

  • pip install -e ".[dev]", ruff check ., and ruff format --check . pass locally.
  • slack create my-app --template slack-samples/bolt-python-blank-template --branch mwbrooks-blank-template (Slack CLI) clones the template, adds .slack/hooks.json, creates .venv, and installs dependencies from pyproject.toml.

Comment thread .github/CODEOWNERS
# Salesforce Open Source project configuration
# Learn more: https://github.com/salesforce/oss-template
#ECCN:Open Source
#GUSINFO:Slack Developer Experience,Open Source

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

note: Slack Developer Experience ⚒️

Comment thread pyproject.toml

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

note: No requirements.txt

@mwbrooks mwbrooks added the enhancement M-T: A feature request for new functionality label Oct 29, 2026
@mwbrooks mwbrooks self-assigned this Oct 29, 2026
@mwbrooks
mwbrooks requested a review from srtaalej October 29, 2026 23:17
@mwbrooks
mwbrooks marked this pull request as ready for review October 29, 2026 23:17
@stevengill

Copy link
Copy Markdown

LGTM! AI review passed and did a quick confirmation slack run works in my sandbox with it as the starting template

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

⚡ Amazing to have a matching template I think!

Comment thread .github/dependabot.yml Outdated
Comment on lines +1 to +13
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
labels:
- "pip"
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"

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: Let's sort these ecosystems alphabetically and add a 7 day cooldown, matching bolt-python-examples. Slack packages skip the wait so new Bolt releases still land right away.

Suggested change
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
labels:
- "pip"
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
cooldown:
default-days: 7
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
cooldown:
default-days: 7
exclude:
- "slack*"
labels:
- "pip"
- "dependencies"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Applied in 672e026, thanks! 🙇

Comment on lines +7 to +9
pull_request:

jobs:

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: We can scope the token to read only here since lint doesn't write anything. zizmor flags the default permissions otherwise.

Suggested change
pull_request:
jobs:
pull_request:
permissions:
contents: read
jobs:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Applied in 672e026, thanks! 🙇

Comment thread .github/workflows/lint.yml Outdated
Comment on lines +23 to +25
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v7

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: Let's pin these actions to commit SHAs and skip persisting credentials, the same as bolt-python-examples CI. I think the JS blank template could use this too!

Suggested change
- uses: actions/checkout@v7
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Applied in 672e026, thanks! 🙇

Comment thread assets/icon.png

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.

❤️ 📸

@mwbrooks

Copy link
Copy Markdown
Member Author

Thanks @stevengill for confirming slack run works in your sandbox, @hello-ashleyintech for the review, and @zimeg for the CI and Dependabot hardening, all applied in 672e026! 🙇

@mwbrooks
mwbrooks merged commit 17ab4a6 into main Oct 30, 2026
8 checks passed
mwbrooks added a commit to slackapi/slack-skills-plugin that referenced this pull request Oct 30, 2026
…mplate (#198)

* fix(create-slack-app): map the blank template to bolt-python-blank-template

The App Settings bolt-blank-template name sent Python apps to the
starter template because no blank Python template existed. That
template shipped in slack-samples/bolt-python-blank-template#1, so map
to it and drop the workaround note. A new unit test checks that each
template name maps to its own JavaScript and Python repos.

* chore: add a changeset for the blank Python template mapping
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants