Skip to content

Conversation

@mwbrooks
Copy link
Member

@mwbrooks mwbrooks commented May 16, 2025

CHANGELOG

Experimental Feature: --experiment bolt-install

slack create and slack init now set manifest source to "app settings" (remote) for Bolt JS & Bolt Python projects. This means that Bolt Framework projects now treat the app settings as the source of truth. The manifest.json file is only used when creating a new app for the project.

  • slack create --experiment bolt-install
  • slack init --experiment bolt-install

Summary

This pull request updates slack create --experiment bolt-install and slack init --experiment bolt-install to set a different manifest source depending the runtime:

  • Deno SDK: manifest.source: "local"
  • Bolt Frameworks: manifest.source: "remote"

Previously, all runtimes used manifest.source: "local".

Reviewers

# No Experiment + Deno SDK (no changes)
$ lack create asdf -t slack-samples/deno-starter-template
# → Expect output: manifest source to "project" (local)
$ rm -rf asdf/

# No Experiment + Bolt Framework (no changes)
$ lack create asdf -t slack-samples/bolt-js-starter-template
# → Expect output: manifest source to "project" (local)
$ rm -rf asdf/

# With Experiment + Deno SDK
$ lack create asdf -t slack-samples/deno-starter-template --experiment bolt-install
# → Expect output: manifest source to "project" (local)
$ rm -rf asdf/

# ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
# With Experiment + Bolt Framework
# ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
$ lack create asdf -t slack-samples/bolt-js-starter-template --experiment bolt-install
# → Expect output: manifest source to "app settings" (remote)
$ rm -rf asdf/

Requirements

@mwbrooks mwbrooks added this to the Next Release milestone May 16, 2025
@mwbrooks mwbrooks self-assigned this May 16, 2025
@mwbrooks mwbrooks added enhancement M-T: A feature request for new functionality changelog Use on updates to be included in the release notes experiment Experimental feature accessed behind the --experiment flag or toggle semver:patch Use on pull requests to describe the release version increment labels May 16, 2025
@codecov
Copy link

codecov bot commented May 16, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 63.31%. Comparing base (a2b6b3e) to head (ca4184e).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #96   +/-   ##
=======================================
  Coverage   63.30%   63.31%           
=======================================
  Files         211      211           
  Lines       22276    22282    +6     
=======================================
+ Hits        14101    14107    +6     
  Misses       7086     7086           
  Partials     1089     1089           

☔ 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 May 16, 2025 16:05
@mwbrooks mwbrooks requested review from a team as code owners May 16, 2025 16:05
Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

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

@mwbrooks Looks good to me! 🚢 💨

This is an exciting change for changes to follow and it's nice that this is behind the experiment for now!

experiments: []string{"bolt", "bolt-install"},
runtime: "node",
expectedOutputs: []string{
`Updated config.json manifest source to "app settings" (remote)`,
Copy link
Member

Choose a reason for hiding this comment

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

Nice! It's so nice to make this output explicit to avoid unexpected UI changes in perhaps later iteration 👾

Copy link
Member Author

Choose a reason for hiding this comment

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

Yea, I agree. I remember when you suggested adding it and it's helping to catch changes. 🪤

The following is a list of currently available experiments. We may remove an experiment once the feature is released.

* `bolt-install`: enables creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
* `slack create` and `slack init` now set manifest source to "app settings" (remote) for Bolt JS & Bolt Python projects ([PR#96](https://github.com/slackapi/slack-cli/pull/96)).
Copy link
Member

Choose a reason for hiding this comment

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

🔗 ✨

@mwbrooks
Copy link
Member Author

Thanks for the super quick review @zimeg and helping to document experiments better @technically-tracy 🙇🏻 Looks like we're safe to merge this one :shipit:

@mwbrooks mwbrooks merged commit 09d4247 into main May 16, 2025
7 checks passed
@mwbrooks mwbrooks deleted the mwbrooks-bolt-install-init branch May 16, 2025 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog Use on updates to be included in the release notes enhancement M-T: A feature request for new functionality experiment Experimental feature accessed behind the --experiment flag or toggle semver:patch Use on pull requests to describe the release version increment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants