Skip to content

Commit 4fb7b4f

Browse files
zimegsrtaalejlukegalbraithrussell
authored
feat(experiment): charming scaffolds (#348)
Co-authored-by: Ale Mercado <maria.mercado@slack-corp.com> Co-authored-by: Luke Russell <31357343+lukegalbraithrussell@users.noreply.github.com>
1 parent 3aa60a2 commit 4fb7b4f

3 files changed

Lines changed: 20 additions & 13 deletions

File tree

docs/reference/experiments.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,24 @@ The Slack CLI has an experiment (`-e`) flag behind which we put features current
66

77
The following is a list of currently available experiments. We'll remove experiments from this page if we decide they are no longer needed or once they are released, in which case we'll make an announcement about the feature's general availability in the [developer changelog](https://docs.slack.dev/changelog).
88

9-
* `bolt-install`: enables creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
10-
* `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)).
11-
* `slack run` and `slack install` support 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), [PR#154](https://github.com/slackapi/slack-cli/pull/154)).
9+
- `bolt-install`: enables creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest).
10+
- `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)).
11+
- `slack run` and `slack install` support 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), [PR#154](https://github.com/slackapi/slack-cli/pull/154)).
12+
- `charm`: shows beautiful prompts ([PR#348](https://github.com/slackapi/slack-cli/pull/348)).
1213

1314
## Experiments changelog
1415

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

17-
* **December 2025**: Concluded the `read-only-collaborators` experiment with full support introduced to the Slack CLI. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/12/04/slack-cli).
18-
* **June 2025**:
19-
* Updated the `slack run` command to create and install new and existing Bolt framework projects configured with app settings as the source of truth (remote manifest).
20-
* Added support for creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest). New Bolt projects are now configured to have apps managed by app settings rather than by project. When running a project for local development, the app and bot tokens are automatically set, and no longer require developers to export them as environment variables. Existing Bolt projects will continue to work with a project (local) manifest, and linking an app from app settings will configure the project to be managed by app settings (remote manifest). In an upcoming release, support for installing and deploying apps managed by app settings will be implemented.
21-
* **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).
22-
* **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).
23-
* **August 2024**: Added the `bolt` experiment for the `slack create` command.
24-
* **January 2024**: Added the experiment `read-only-collaborators`.
18+
- **February 2026**: Added the `charm` experiment.
19+
- **December 2025**: Concluded the `read-only-collaborators` experiment with full support introduced to the Slack CLI. See the changelog announcement [here](https://docs.slack.dev/changelog/2025/12/04/slack-cli).
20+
- **June 2025**:
21+
- Updated the `slack run` command to create and install new and existing Bolt framework projects configured with app settings as the source of truth (remote manifest).
22+
- Added support for creating, installing, and running Bolt projects that manage their app manifest on app settings (remote manifest). New Bolt projects are now configured to have apps managed by app settings rather than by project. When running a project for local development, the app and bot tokens are automatically set, and no longer require developers to export them as environment variables. Existing Bolt projects will continue to work with a project (local) manifest, and linking an app from app settings will configure the project to be managed by app settings (remote manifest). In an upcoming release, support for installing and deploying apps managed by app settings will be implemented.
23+
- **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).
24+
- **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).
25+
- **August 2024**: Added the `bolt` experiment for the `slack create` command.
26+
- **January 2024**: Added the experiment `read-only-collaborators`.
2527

2628
## Feedback
2729

internal/experiment/experiment.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,24 @@ const (
3838
// manage their app manifest on app settings (remote manifest).
3939
BoltInstall Experiment = "bolt-install"
4040

41+
// Charm experiment enables beautiful prompts.
42+
Charm Experiment = "charm"
43+
4144
// Placeholder experiment is a placeholder for testing and does nothing... or does it?
4245
Placeholder Experiment = "placeholder"
4346
)
4447

48+
// AllExperiments is a list of all available experiments that can be enabled
4549
// Please also add here 👇
46-
// AllExperiment is a list of all available experiments that can be enabled
4750
var AllExperiments = []Experiment{
4851
BoltFrameworks,
4952
BoltInstall,
53+
Charm,
5054
Placeholder,
5155
}
5256

53-
// Please also add here 👇
5457
// EnabledExperiments is a list of experiments that are permanently enabled
58+
// Please also add here 👇
5559
var EnabledExperiments = []Experiment{
5660
BoltFrameworks,
5761
BoltInstall,

internal/experiment/experiment_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ func Test_Includes(t *testing.T) {
2626

2727
// Test expected experiments
2828
require.Equal(t, true, Includes(Experiment("bolt")))
29+
require.Equal(t, true, Includes(Experiment("charm")))
2930

3031
// Test invalid experiment
3132
require.Equal(t, false, Includes(Experiment("should-fail")))

0 commit comments

Comments
 (0)