diff --git a/docs/reference/experiments.md b/docs/reference/experiments.md index b6ddbb84..ae29bc61 100644 --- a/docs/reference/experiments.md +++ b/docs/reference/experiments.md @@ -6,22 +6,24 @@ The Slack CLI has an experiment (`-e`) flag behind which we put features current 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). -* `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)). - * `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)). +- `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)). + - `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)). +- `charm`: shows beautiful prompts ([PR#348](https://github.com/slackapi/slack-cli/pull/348)). ## Experiments changelog Below is a list of updates related to experiments. -* **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). -* **June 2025**: - * 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). - * 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. -* **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). -* **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). -* **August 2024**: Added the `bolt` experiment for the `slack create` command. -* **January 2024**: Added the experiment `read-only-collaborators`. +- **February 2026**: Added the `charm` experiment. +- **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). +- **June 2025**: + - 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). + - 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. +- **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). +- **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). +- **August 2024**: Added the `bolt` experiment for the `slack create` command. +- **January 2024**: Added the experiment `read-only-collaborators`. ## Feedback diff --git a/internal/experiment/experiment.go b/internal/experiment/experiment.go index 13cf2454..c7b90149 100644 --- a/internal/experiment/experiment.go +++ b/internal/experiment/experiment.go @@ -38,20 +38,24 @@ const ( // manage their app manifest on app settings (remote manifest). BoltInstall Experiment = "bolt-install" + // Charm experiment enables beautiful prompts. + Charm Experiment = "charm" + // Placeholder experiment is a placeholder for testing and does nothing... or does it? Placeholder Experiment = "placeholder" ) +// AllExperiments is a list of all available experiments that can be enabled // Please also add here 👇 -// AllExperiment is a list of all available experiments that can be enabled var AllExperiments = []Experiment{ BoltFrameworks, BoltInstall, + Charm, Placeholder, } -// Please also add here 👇 // EnabledExperiments is a list of experiments that are permanently enabled +// Please also add here 👇 var EnabledExperiments = []Experiment{ BoltFrameworks, BoltInstall, diff --git a/internal/experiment/experiment_test.go b/internal/experiment/experiment_test.go index 15309fac..fa27f80b 100644 --- a/internal/experiment/experiment_test.go +++ b/internal/experiment/experiment_test.go @@ -26,6 +26,7 @@ func Test_Includes(t *testing.T) { // Test expected experiments require.Equal(t, true, Includes(Experiment("bolt"))) + require.Equal(t, true, Includes(Experiment("charm"))) // Test invalid experiment require.Equal(t, false, Includes(Experiment("should-fail")))