From 48c09f55274c6f4dc122fea4f20b9dec49261624 Mon Sep 17 00:00:00 2001 From: Paul Slaughter Date: Fri, 14 Mar 2025 12:00:30 -0500 Subject: [PATCH 1/7] Enable extension marketplace by default - https://gitlab.com/groups/gitlab-org/-/epics/16250 Changelog: added --- .../{wip => beta}/vscode_extension_marketplace_settings.yml | 4 ++-- config/feature_flags/beta/web_ide_extensions_marketplace.yml | 2 +- doc/user/project/web_ide/_index.md | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) rename config/feature_flags/{wip => beta}/vscode_extension_marketplace_settings.yml (90%) diff --git a/config/feature_flags/wip/vscode_extension_marketplace_settings.yml b/config/feature_flags/beta/vscode_extension_marketplace_settings.yml similarity index 90% rename from config/feature_flags/wip/vscode_extension_marketplace_settings.yml rename to config/feature_flags/beta/vscode_extension_marketplace_settings.yml index 8614962383fc8a..bb4f5797137fbd 100644 --- a/config/feature_flags/wip/vscode_extension_marketplace_settings.yml +++ b/config/feature_flags/beta/vscode_extension_marketplace_settings.yml @@ -5,5 +5,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/181624 rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/508996 milestone: '17.10' group: group::remote development -type: wip -default_enabled: false +type: beta +default_enabled: true diff --git a/config/feature_flags/beta/web_ide_extensions_marketplace.yml b/config/feature_flags/beta/web_ide_extensions_marketplace.yml index ba76b1d3fb598d..03f8a375bf66af 100644 --- a/config/feature_flags/beta/web_ide_extensions_marketplace.yml +++ b/config/feature_flags/beta/web_ide_extensions_marketplace.yml @@ -6,4 +6,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/459028 milestone: '17.0' group: group::ide type: beta -default_enabled: false +default_enabled: true diff --git a/doc/user/project/web_ide/_index.md b/doc/user/project/web_ide/_index.md index 37b942bceacc6b..b3e5e074d6916d 100644 --- a/doc/user/project/web_ide/_index.md +++ b/doc/user/project/web_ide/_index.md @@ -244,7 +244,7 @@ To view any notification you might have missed: {{< details >}} -- Offering: GitLab.com +- Offering: GitLab.com, GitLab Self-Managed {{< /details >}} @@ -253,6 +253,7 @@ To view any notification you might have missed: - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151352) as a [beta](../../../policy/development_stages_support.md#beta) in GitLab 17.0 [with flags](../../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default. - Feature flags `web_ide_oauth` [enabled](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) on GitLab.com, GitLab Self-Managed, and GitLab Dedicated, and `web_ide_extensions_marketplace` [enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) on GitLab.com in GitLab 17.4. - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. Feature flag `web_ide_oauth` removed. +- Feature flags `web_ide {{< /history >}} -- GitLab From 617988d857f5b86200a4433ea4af9bdc09dd037e Mon Sep 17 00:00:00 2001 From: Paul Slaughter Date: Sun, 16 Mar 2025 12:47:15 -0500 Subject: [PATCH 2/7] Update ff_to_data migration to check for ff persistence - Now that we're default enabling the flag we want to make sure we only do this if someone has explicitly enabled the ff --- ...ate_vscode_extension_marketplace_feature_flag_to_data.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb b/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb index 1f81de3853b087..eb0a681f273a7e 100644 --- a/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb +++ b/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb @@ -44,6 +44,10 @@ def down def extension_marketplace_flag_enabled? # NOTE: It's possible the flag is only enabled for a specific user, but in that case we'll assume # the instance admin didn't want the feature globally available and we won't initialize the data. - Feature.enabled?(:web_ide_extensions_marketplace, nil) && Feature.enabled?(:vscode_web_ide, nil) + Feature.enabled?(:web_ide_extensions_marketplace, nil) && + # NOTE: We only want to migrate instances that have **explicitly** opted in to the early + # extensions marketplace experience (not just enabled by default feature flag). + Feature.persisted_name?(:web_ide_extensions_marketplace) && + Feature.enabled?(:vscode_web_ide, nil) end end -- GitLab From d3cfd9db74cad3e9f9f06baf4ef593a57f8552ac Mon Sep 17 00:00:00 2001 From: Paul Slaughter Date: Sun, 16 Mar 2025 13:54:47 -0500 Subject: [PATCH 3/7] Docs for VS Code Extension Marketplace settings - FF is now enabled by default - New prerequisite for admin to enable --- .../settings/vscode_extension_marketplace.md | 69 +++++++++++++++++++ doc/user/enterprise_user/_index.md | 6 ++ doc/user/profile/preferences.md | 12 ++-- doc/user/project/web_ide/_index.md | 8 +-- 4 files changed, 84 insertions(+), 11 deletions(-) create mode 100644 doc/administration/settings/vscode_extension_marketplace.md diff --git a/doc/administration/settings/vscode_extension_marketplace.md b/doc/administration/settings/vscode_extension_marketplace.md new file mode 100644 index 00000000000000..5e4f70da252928 --- /dev/null +++ b/doc/administration/settings/vscode_extension_marketplace.md @@ -0,0 +1,69 @@ +--- +stage: Create +group: Remote Development +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +description: Configure VS Code Extension Marketplace for features on the GitLab self-managed instance. +title: Configure VS Code Extension Marketplace for Web IDE and Workspaces +--- + +{{< details >}} + +- Tier: Free, Premium, Ultimate +- Offering: GitLab Self-Managed + +{{< /details >}} + +GitLab enables users with administrator access to configure the +enablement and integration with a VS Code Extension Marketplace. +This will impact the Web IDE and Workspaces features. + +Prerequisites: + +- You must be an administrator. + +To access the visibility and access control options: + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings > General**. +1. Expand **VS Code Extension Marketplace**. + +## Enable with default extension registry + +By default, the GitLab instance is preconfigured to use the [Open VSX](https://open-vsx.org/) extension registry. To +enable the extension marketplace with this default configuration: + +Prerequisites: + +- You must be an administrator. + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings > General**. +1. Expand **VS Code Extension Marketplace**. +1. Toggle on **Enable Extension Marketplace** to enable the extension marketplace across the GitLab instance. + +## Customize extension registry + +To connect the GitLab instance with a custom extension registry: + +- You must be an administrator. + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings > General**. +1. Expand **VS Code Extension Marketplace**. +1. Expand **Extension registry settings**. +1. Toggle off **Use Open VSX extension registry**. +1. Enter full URL's for a VS Code extension registry's **Service URL**, **Item URL**, and **Resource URL Template**. +1. Click **Save changes**. + +{{< alert type="note" >}} + +Users need to [opt-in to use the extension marketplace](../../user/profile/preferences.md#integrate-with-the-extension-marketplace). +If the base URL for the VS Code extension registry changes, this will nullify a user's prior opt-in. Users must opt-in again +to the new extension registry. + +If a user has not opted into the extension marketplace, then changing the extension registry URL's will not affect +their experience. + +Changing the URL's will not effect any active Web IDE or Workspaces instances. + +{{< /alert >}} diff --git a/doc/user/enterprise_user/_index.md b/doc/user/enterprise_user/_index.md index 5db71e6643d6a8..5bb301a1f46925 100644 --- a/doc/user/enterprise_user/_index.md +++ b/doc/user/enterprise_user/_index.md @@ -248,6 +248,7 @@ To disable 2FA: - Feature flag `web_ide_oauth` [enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) in GitLab 17.4. - Feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4. - Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. +- Feature flags `web_ide_extensions_marketplace` and `vscode_extension_marketplace_settings` enabled by default in GitLab 17.11. {{< /history >}} @@ -258,6 +259,11 @@ For more information, see the history. {{< /alert >}} +Prerequisites: + +- In admin settings, a GitLab administrator must + [enable the extension marketplace](../../administration/settings/vscode_extension_marketplace.md). + If you have the Owner role for a top-level group, you can enable the [extension marketplace](../project/web_ide/_index.md#extension-marketplace) for enterprise users. diff --git a/doc/user/profile/preferences.md b/doc/user/profile/preferences.md index 8fd80f0d667cf9..37bd05e06f41b2 100644 --- a/doc/user/profile/preferences.md +++ b/doc/user/profile/preferences.md @@ -478,6 +478,7 @@ You must be the administrator of the GitLab instance to configure GitLab with So - Feature flag `web_ide_oauth` [enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) and feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4. - Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. - Enabled by default for [workspaces](../workspace/_index.md) in GitLab 17.6. Workspaces do not require any feature flags for the extension marketplace to be available. +- Feature flags `web_ide_extensions_marketplace` and `vscode_extension_marketplace_settings` enabled by default in GitLab 17.11. {{< /history >}} @@ -492,6 +493,11 @@ You can use the [extension marketplace](../project/web_ide/_index.md#extension-m manage extensions for the [Web IDE](../project/web_ide/_index.md) and [workspaces](../workspace/_index.md). For third-party extensions, you must enable the marketplace in user preferences. +Prerequisites: + +- In admin settings, a GitLab administrator must + [enable the extension marketplace](../../administration/settings/vscode_extension_marketplace.md). + To enable the extension marketplace for the Web IDE and workspaces: 1. On the left sidebar, select your avatar. @@ -501,12 +507,6 @@ To enable the extension marketplace for the Web IDE and workspaces: 1. In the third-party extension acknowledgement, select **I understand**. 1. Select **Save changes**. -{{< alert type="note" >}} - -This preferences checkbox will always be available, even if the feature flags are disabled. - -{{< /alert >}} -