Skip to content

feat: default manifest source to manifest.json for Bolt Framework projects#395

Open
mwbrooks wants to merge 1 commit intomainfrom
mwbrooks-default-bolt-manifest-source-local
Open

feat: default manifest source to manifest.json for Bolt Framework projects#395
mwbrooks wants to merge 1 commit intomainfrom
mwbrooks-default-bolt-manifest-source-local

Conversation

@mwbrooks
Copy link
Member

@mwbrooks mwbrooks commented Mar 12, 2026

Changelog

Bolt JavaScript and Bolt Python projects now default to using the local manifest.json as the app manifest.

  • Previously, it was a remote manifest from App Settings (https://api.slack.com/apps).
  • Changes to the app manifest on App Settings will be detected by the Slack CLI and a prompt will be displayed before any manifest update action (e.g. slack run).
  • The manifest source is set after creating a new project with slack create or initializing an existing project with slack init and the setting is stored as "manifest.source": "local" in .slack/config.json.

Summary

This pull request defaults Bolt Framework projects to use a manifest.source: "local" when creating and initializing a project.

Reason behind the change: We're making this change after receiving feedback from multiple developers who are confused by the remote setting and would prefer local for Bolt projects. The rationale is that developers using the CLI would prefer to default to managing the manifest with the CLI/Project.

Related #396 that will update app link to not change the manifest source.

Open Question

  • Is this considered feat: enhancement or fix: bug fix?

Preview

2026-03-12-bolt-local-manifest.mov

Test Steps

Test Creating a Bolt Framework Project:

# Create a new Bolt Project
$ lack create my-app -t https://github.com/slack-samples/bolt-js-starter-template
$ cd my-app/

# Confirm local manifest
$ cat .slack/config.json
# → Confirm manifest.source: "local"

# Create and run the app
$ lack run
# → Press CTRL+C to stop the server

# Change Something on App Setting to Introduce a Conflict
$ lack app settings
# → Change App Name
# → Set Description and Background Color
# → Save

# Test Manifest Change Warning
$ lack run
# → Confirm warning that manifest is out-of-sync
# → Select Y

# Clean up
$ lack delete -f
$ cd ..
$ rm -rf my-app

Test Initializing a Bolt Framework Project:

# Clone a Bolt Framework Project
$ git clone https://github.com/slack-samples/bolt-js-starter-template.git
$ cd bolt-js-starter-template/

# Initialize it
$ lack init

# Confirm local manifest
$ cat .slack/config.json
# → Confirm manifest.source: "local"

# Clean up
$ cd ..
$ rm -rf bolt-js-starter-template/

Test a Deno Project:

# Create a new Deno Project
$ lack create my-app -t https://github.com/slack-samples/deno-starter-template
$ cd my-app/

# Confirm local manifest
$ cat .slack/config.json
# → Confirm manifest.source: "local"

# Clean up
$ cd ..
$ rm -rf my-app

Requirements

Change the default manifest source for non-Deno (Bolt) projects from
ManifestSourceRemote to ManifestSourceLocal, aligning their behavior
with Deno projects.
@mwbrooks mwbrooks added this to the Next Release milestone Mar 12, 2026
@mwbrooks mwbrooks self-assigned this Mar 12, 2026
@mwbrooks mwbrooks added enhancement M-T: A feature request for new functionality changelog Use on updates to be included in the release notes semver:minor Use on pull requests to describe the release version increment area:bolt-js Related to github.com/slackapi/bolt-js area:bolt-python Related to github.com/slackapi/bolt-python labels Mar 12, 2026
@mwbrooks mwbrooks changed the title feat: default manifest source to local for non-Deno apps feat: default manifest source to manifest.json for Bolt Framework projects Mar 12, 2026
@codecov
Copy link

codecov bot commented Mar 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.88%. Comparing base (8e4c0aa) to head (a87561b).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #395      +/-   ##
==========================================
- Coverage   67.88%   67.88%   -0.01%     
==========================================
  Files         218      218              
  Lines       18090    18090              
==========================================
- Hits        12281    12280       -1     
- Misses       4654     4655       +1     
  Partials     1155     1155              

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mwbrooks mwbrooks marked this pull request as ready for review March 13, 2026 05:25
@mwbrooks mwbrooks requested a review from a team as a code owner March 13, 2026 05:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:bolt-js Related to github.com/slackapi/bolt-js area:bolt-python Related to github.com/slackapi/bolt-python changelog Use on updates to be included in the release notes enhancement M-T: A feature request for new functionality semver:minor Use on pull requests to describe the release version increment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant