Skip to content

Commit e43e865

Browse files
authored
feat(bolt-install): enable bolt-install experiment by default (#112)
* feat(bolt-install): enable bolt-install experiment by default * feat(bolt-install): reference PR
1 parent 11ef1dc commit e43e865

4 files changed

Lines changed: 13 additions & 8 deletions

File tree

docs/reference/experiments.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ The following is a list of currently available experiments. We'll remove experim
99
* `bolt-install`: enables creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
1010
* `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)).
1111
* `slack run` supports creating and installing Bolt Framework apps that have the manifest source set to "app settings (remote)" ([PR#111](https://github.com/slackapi/slack-cli/pull/111)).
12+
* `--experiment bolt-install` is now enabled by default ([PR#112](https://github.com/slackapi/slack-cli/pull/112)).
1213
* `read-only-collaborators`: enables creating and modifying collaborator permissions via the `slack collaborator` commands.
1314

1415
## Experiments changelog
1516

1617
Below is a list of updates related to experiments.
1718

19+
* **June 2025**: Enabled the `bolt-install` experiment by default to support using `slack run` with apps that have a manifest source set to "app settings" (remote).
1820
* **May 2025**: Added the experiment `bolt-install` to enable creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
1921
* **February 2025**: Added full Bolt framework support to the Slack CLI and removed the features from behind the experiment flag. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/02/27/slack-cli-release).
2022
* **August 2024**: Added the `bolt` experiment for the `slack create` command.

internal/experiment/experiment.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ var AllExperiments = []Experiment{
5959
// EnabledExperiments is a list of experiments that are permanently enabled
6060
var EnabledExperiments = []Experiment{
6161
BoltFrameworks,
62+
BoltInstall,
6263
}
6364

6465
// Includes checks that a supplied experiment is included within AllExperiments

internal/pkg/apps/install_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -885,11 +885,11 @@ func TestInstallLocalApp(t *testing.T) {
885885
TeamName: &mockTeamDomain,
886886
UserID: &mockUserID,
887887
},
888-
mockAPICreateError: slackerror.New(slackerror.ErrAppCreate),
889-
mockAPIUpdateError: slackerror.New(slackerror.ErrAppAdd),
890-
mockAPIInstallError: slackerror.New(slackerror.ErrAppInstall),
891-
mockBoltExperiment: true,
892-
mockManifestSource: config.ManifestSourceRemote,
888+
mockAPICreateError: slackerror.New(slackerror.ErrAppCreate),
889+
mockAPIUpdateError: slackerror.New(slackerror.ErrAppAdd),
890+
mockBoltExperiment: true,
891+
mockBoltInstallExperiment: false,
892+
mockManifestSource: config.ManifestSourceRemote,
893893
expectedApp: types.App{
894894
AppID: "A004",
895895
IsDev: true,

internal/pkg/create/create.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,11 @@ func InstallProjectDependencies(
467467
// When the BoltInstall experiment is enabled, set non-ROSI projects to ManifestSourceRemote.
468468
if clients.Config.WithExperimentOn(experiment.BoltInstall) {
469469
// TODO: should check if Slack hosted project, but the SDKConfig has not been initialized yet.
470-
isDenoProject := strings.Contains(strings.ToLower(clients.Runtime.Name()), "deno")
471-
if !isDenoProject {
472-
manifestSource = config.ManifestSourceRemote
470+
if clients.Runtime != nil {
471+
isDenoProject := strings.Contains(strings.ToLower(clients.Runtime.Name()), "deno")
472+
if !isDenoProject {
473+
manifestSource = config.ManifestSourceRemote
474+
}
473475
}
474476
}
475477

0 commit comments

Comments
 (0)