Repository navigation
feat: add blank bolt for python template - #1
Conversation
| # Salesforce Open Source project configuration | ||
| # Learn more: https://github.com/salesforce/oss-template | ||
| #ECCN:Open Source | ||
| #GUSINFO:Slack Developer Experience,Open Source |
There was a problem hiding this comment.
note: Slack Developer Experience ⚒️
There was a problem hiding this comment.
note: No requirements.txt
|
LGTM! AI review passed and did a quick confirmation slack run works in my sandbox with it as the starting template |
zimeg
left a comment
There was a problem hiding this comment.
⚡ Amazing to have a matching template I think!
| version: 2 | ||
| updates: | ||
| - package-ecosystem: "pip" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "monthly" | ||
| labels: | ||
| - "pip" | ||
| - "dependencies" | ||
| - package-ecosystem: "github-actions" | ||
| directory: "/" | ||
| schedule: | ||
| interval: "monthly" |
There was a problem hiding this comment.
🎁 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.
| 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" |
| pull_request: | ||
|
|
||
| jobs: |
There was a problem hiding this comment.
🐙 suggestion: We can scope the token to read only here since lint doesn't write anything. zizmor flags the default permissions otherwise.
| pull_request: | |
| jobs: | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: |
| - uses: actions/checkout@v7 | ||
| - name: Set up Python ${{ matrix.python-version }} | ||
| uses: actions/setup-python@v7 |
There was a problem hiding this comment.
🧪 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!
| - 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 |
|
Thanks @stevengill for confirming |
…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
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-templategives JavaScript developers. The app settings page already suggestsslack create --template slack-samples/bolt-python-blank-templatefor Python, and that command fails until this template exists.app.pystarts a Socket Mode app with no listeners, the Python version of the JavaScript blank template'sapp.js.manifest.jsonis the JavaScript blank template's manifest, unchanged, so both blank templates create the same app.slack-samples/bolt-python-starter-template:pyproject.toml, README,AGENTS.md,.githubfiles, and.gitignore. Sections only the starter needs (tests, listeners, OAuth) are removed.ruff checkandruff format --checkon Python 3.11 to 3.15. There are no tests yet, so there is no test job.Testing
pip install -e ".[dev]",ruff check ., andruff 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 frompyproject.toml.