From 1baf8c7888be852251f8a1f8713904cea30ee60a Mon Sep 17 00:00:00 2001 From: Alper Akgun Date: Mon, 13 Nov 2023 19:36:36 +0300 Subject: [PATCH 1/6] Release remove remote_development_feature_flag Changelog: added EE: true --- .../workspaces_dropdown_group.stories.js | 1 - .../vue_shared/components/web_ide_link.vue | 2 +- .../ee/projects/blob_controller.rb | 1 - .../ee/projects/tree_controller.rb | 1 - ee/app/controllers/ee/projects_controller.rb | 1 - ee/app/graphql/ee/types/query_type.rb | 10 ----- .../remote_development/workspaces/create.rb | 4 -- .../remote_development/workspaces/update.rb | 4 -- .../remote_development/workspaces_resolver.rb | 4 -- ee/app/policies/ee/global_policy.rb | 2 +- .../remote_development_feature_flag.yml | 8 ---- ee/lib/ee/api/internal/kubernetes.rb | 8 +--- .../workspaces_controller_spec.rb | 8 ++-- .../workspaces_dropdown_group_spec.rb | 18 ++++----- .../workspaces_dropdown_group_spec.js | 5 +-- .../components/web_ide_link_spec.js | 38 ++++++++----------- ee/spec/policies/global_policy_spec.rb | 8 ---- .../workspaces/create_spec.rb | 10 ----- .../workspaces/update_spec.rb | 10 ----- .../api/graphql/remote_development/shared.rb | 19 ---------- .../requests/api/internal/kubernetes_spec.rb | 26 ------------- 21 files changed, 30 insertions(+), 158 deletions(-) delete mode 100644 ee/config/feature_flags/development/remote_development_feature_flag.yml diff --git a/ee/app/assets/javascripts/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group.stories.js b/ee/app/assets/javascripts/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group.stories.js index ea3b159aeae2d4..a494ec177901c6 100644 --- a/ee/app/assets/javascripts/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group.stories.js +++ b/ee/app/assets/javascripts/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group.stories.js @@ -18,7 +18,6 @@ export const WithAPIAccess = (args, { argTypes, createVueApollo }) => { provide: { glFeatures: { remoteDevelopment: true, - remoteDevelopmentFeatureFlag: true, }, }, props: Object.keys(argTypes), diff --git a/ee/app/assets/javascripts/vue_shared/components/web_ide_link.vue b/ee/app/assets/javascripts/vue_shared/components/web_ide_link.vue index 9c7b01b380debb..a709d561c3ebd0 100644 --- a/ee/app/assets/javascripts/vue_shared/components/web_ide_link.vue +++ b/ee/app/assets/javascripts/vue_shared/components/web_ide_link.vue @@ -40,7 +40,7 @@ export default { }, computed: { isWorkspacesDropdownGroupAvailable() { - return this.glFeatures.remoteDevelopment && this.glFeatures.remoteDevelopmentFeatureFlag; + return this.glFeatures.remoteDevelopment; }, shouldRenderWorkspacesDropdownGroup() { return this.isWorkspacesDropdownGroupAvailable && this.isDropdownVisible; diff --git a/ee/app/controllers/ee/projects/blob_controller.rb b/ee/app/controllers/ee/projects/blob_controller.rb index f020aded602d65..a642c568535b71 100644 --- a/ee/app/controllers/ee/projects/blob_controller.rb +++ b/ee/app/controllers/ee/projects/blob_controller.rb @@ -7,7 +7,6 @@ module BlobController prepended do before_action do - push_frontend_feature_flag(:remote_development_feature_flag) push_licensed_feature(:remote_development) end end diff --git a/ee/app/controllers/ee/projects/tree_controller.rb b/ee/app/controllers/ee/projects/tree_controller.rb index b77419396317a0..e0d15b40d73a8c 100644 --- a/ee/app/controllers/ee/projects/tree_controller.rb +++ b/ee/app/controllers/ee/projects/tree_controller.rb @@ -7,7 +7,6 @@ module TreeController prepended do before_action do - push_frontend_feature_flag(:remote_development_feature_flag) push_licensed_feature(:remote_development) end end diff --git a/ee/app/controllers/ee/projects_controller.rb b/ee/app/controllers/ee/projects_controller.rb index a66458da13ac31..7ec346c28e8f50 100644 --- a/ee/app/controllers/ee/projects_controller.rb +++ b/ee/app/controllers/ee/projects_controller.rb @@ -18,7 +18,6 @@ module ProjectsController end before_action do - push_frontend_feature_flag(:remote_development_feature_flag) push_licensed_feature(:remote_development) end diff --git a/ee/app/graphql/ee/types/query_type.rb b/ee/app/graphql/ee/types/query_type.rb index 62d15c38f472cd..d137c52cdac229 100644 --- a/ee/app/graphql/ee/types/query_type.rb +++ b/ee/app/graphql/ee/types/query_type.rb @@ -136,16 +136,6 @@ def iteration(id:) end def workspace(id:) - unless ::Feature.enabled?(:remote_development_feature_flag) - # NOTE: Could have `included Gitlab::Graphql::Authorize::AuthorizeResource` and then use - # raise_resource_not_available_error!, but didn't want to take the risk to mix that into - # the root query type - # rubocop:disable Graphql/ResourceNotAvailableError -- intentionally not used - see note above - raise ::Gitlab::Graphql::Errors::ResourceNotAvailable, - "'remote_development_feature_flag' feature flag is disabled" - # rubocop:enable Graphql/ResourceNotAvailableError - end - unless License.feature_available?(:remote_development) # NOTE: Could have `included Gitlab::Graphql::Authorize::AuthorizeResource` and then use # raise_resource_not_available_error!, but didn't want to take the risk to mix that into diff --git a/ee/app/graphql/mutations/remote_development/workspaces/create.rb b/ee/app/graphql/mutations/remote_development/workspaces/create.rb index c890bc54bb4855..11b01d9d1a6e31 100644 --- a/ee/app/graphql/mutations/remote_development/workspaces/create.rb +++ b/ee/app/graphql/mutations/remote_development/workspaces/create.rb @@ -52,10 +52,6 @@ class Create < BaseMutation description: 'Project repo git path containing the devfile used to configure the workspace.' def resolve(args) - unless Feature.enabled?(:remote_development_feature_flag) - raise_resource_not_available_error!("'remote_development_feature_flag' feature flag is disabled") - end - unless License.feature_available?(:remote_development) raise_resource_not_available_error!("'remote_development' licensed feature is not available") end diff --git a/ee/app/graphql/mutations/remote_development/workspaces/update.rb b/ee/app/graphql/mutations/remote_development/workspaces/update.rb index 6e3b1bfddecc56..ebbfee11f448eb 100644 --- a/ee/app/graphql/mutations/remote_development/workspaces/update.rb +++ b/ee/app/graphql/mutations/remote_development/workspaces/update.rb @@ -26,10 +26,6 @@ class Update < BaseMutation description: 'Desired state of the created workspace.' def resolve(id:, **args) - unless Feature.enabled?(:remote_development_feature_flag) - raise_resource_not_available_error!("'remote_development_feature_flag' feature flag is disabled") - end - unless License.feature_available?(:remote_development) raise_resource_not_available_error!("'remote_development' licensed feature is not available") end diff --git a/ee/app/graphql/resolvers/remote_development/workspaces_resolver.rb b/ee/app/graphql/resolvers/remote_development/workspaces_resolver.rb index c6b7d6f8ccdd0b..aaaea7a5bdd47b 100644 --- a/ee/app/graphql/resolvers/remote_development/workspaces_resolver.rb +++ b/ee/app/graphql/resolvers/remote_development/workspaces_resolver.rb @@ -22,10 +22,6 @@ class WorkspacesResolver < ::Resolvers::BaseResolver description: 'Includes all workspaces that match any of the actual states.' def resolve(**args) - unless ::Feature.enabled?(:remote_development_feature_flag) - raise_resource_not_available_error! "'remote_development_feature_flag' feature flag is disabled" - end - unless License.feature_available?(:remote_development) raise_resource_not_available_error! "'remote_development' licensed feature is not available" end diff --git a/ee/app/policies/ee/global_policy.rb b/ee/app/policies/ee/global_policy.rb index edd83c5ca1e288..64f18833dfb3e5 100644 --- a/ee/app/policies/ee/global_policy.rb +++ b/ee/app/policies/ee/global_policy.rb @@ -10,7 +10,7 @@ module GlobalPolicy end condition(:remote_development_available) do - ::Feature.enabled?(:remote_development_feature_flag) && License.feature_available?(:remote_development) + License.feature_available?(:remote_development) end condition(:pages_size_limit_available) do diff --git a/ee/config/feature_flags/development/remote_development_feature_flag.yml b/ee/config/feature_flags/development/remote_development_feature_flag.yml deleted file mode 100644 index 88ff1769a61bcf..00000000000000 --- a/ee/config/feature_flags/development/remote_development_feature_flag.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: remote_development_feature_flag -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/391543 -milestone: '15.11' -type: development -group: group::ide -default_enabled: true diff --git a/ee/lib/ee/api/internal/kubernetes.rb b/ee/lib/ee/api/internal/kubernetes.rb index d0116d583a8085..0dceda6d8054f6 100644 --- a/ee/lib/ee/api/internal/kubernetes.rb +++ b/ee/lib/ee/api/internal/kubernetes.rb @@ -11,9 +11,7 @@ module Kubernetes def update_configuration(agent:, config:) super(agent: agent, config: config) - if ::Feature.enabled?(:remote_development_feature_flag) && - ::License.feature_available?(:remote_development) # rubocop:disable Layout/MultilineOperationIndentation -- Currently can't override default RubyMine formatting - + if ::License.feature_available?(:remote_development) # rubocop:disable Layout/MultilineOperationIndentation -- Currently can't override default RubyMine formatting # NOTE: We are explicitly ignoring any failures here. See the comment in the service for more details. ::RemoteDevelopment::AgentConfig::UpdateService.new.execute(agent: agent, config: config) end @@ -33,10 +31,6 @@ def update_configuration(agent:, config:) route_setting :authentication, cluster_agent_token_allowed: true post '/reconcile', urgency: :low, feature_category: :remote_development do - unless ::Feature.enabled?(:remote_development_feature_flag) - forbidden!("'remote_development_feature_flag' feature flag is disabled") - end - unless ::License.feature_available?(:remote_development) forbidden!('"remote_development" licensed feature is not available') end diff --git a/ee/spec/controllers/remote_development/workspaces_controller_spec.rb b/ee/spec/controllers/remote_development/workspaces_controller_spec.rb index 87e8a645fab3ad..a577dc2fdbe9b2 100644 --- a/ee/spec/controllers/remote_development/workspaces_controller_spec.rb +++ b/ee/spec/controllers/remote_development/workspaces_controller_spec.rb @@ -9,10 +9,9 @@ sign_in(user) end - shared_examples 'remote development feature flag' do |feature_flag_enabled, expected_status| + shared_examples 'remote development feature' do |expected_status| before do stub_licensed_features(remote_development: true) - stub_feature_flags(remote_development_feature_flag: feature_flag_enabled) end describe 'GET #index' do @@ -24,9 +23,8 @@ end end - context 'with remote development feature flag' do - it_behaves_like 'remote development feature flag', true, :ok - it_behaves_like 'remote development feature flag', false, :not_found + context 'with remote development feature' do + it_behaves_like 'remote development feature', :ok end context 'with remote development not licensed' do diff --git a/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb b/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb index d35f6a8b92c9d8..e02fa6417a877e 100644 --- a/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb +++ b/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb @@ -49,29 +49,25 @@ wait_for_requests end - shared_examples 'handles workspaces dropdown group visibility' do |feature_flag_enabled, feature_available, visible| + shared_examples 'handles workspaces dropdown group visibility' do |feature_available, visible| before do stub_licensed_features(remote_development: feature_available) - stub_feature_flags(remote_development_feature_flag: feature_flag_enabled) visit subject end - context "when remote_development_feature_flag=#{feature_flag_enabled}" do - context "when remote_development feature availability=#{feature_available}" do - it 'does not display workspaces dropdown group' do - click_button 'Edit' + context "when remote_development feature availability=#{feature_available}" do + it 'does not display workspaces dropdown group' do + click_button 'Edit' - expect(page.has_css?(workspaces_dropdown_selector)).to be(visible) - end + expect(page.has_css?(workspaces_dropdown_selector)).to be(visible) end end end shared_examples 'views and manages workspaces in workspaces dropdown group' do - it_behaves_like 'handles workspaces dropdown group visibility', true, true, true - it_behaves_like 'handles workspaces dropdown group visibility', true, false, false - it_behaves_like 'handles workspaces dropdown group visibility', false, true, false + it_behaves_like 'handles workspaces dropdown group visibility', true, true + it_behaves_like 'handles workspaces dropdown group visibility', false, false context 'when workspaces dropdown group is visible' do before do diff --git a/ee/spec/frontend/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group_spec.js b/ee/spec/frontend/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group_spec.js index 3be531b51ed3eb..86addbfaac61e3 100644 --- a/ee/spec/frontend/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group_spec.js +++ b/ee/spec/frontend/remote_development/components/workspaces_dropdown_group/workspaces_dropdown_group_spec.js @@ -46,10 +46,7 @@ describe('remote_development/components/workspaces_dropdown_group/workspaces_dro mockApollo = createMockApollo([[userWorkspacesListQuery, userWorkspacesListQueryHandler]]); }; - const createWrapper = ({ - propsData = {}, - glFeatures = { remoteDevelopment: true, remoteDevelopmentFeatureFlag: true }, - } = {}) => { + const createWrapper = ({ propsData = {}, glFeatures = { remoteDevelopment: true } } = {}) => { updateWorkspaceMutationMock = jest.fn(); wrapper = shallowMountExtended(WorkspacesDropdownGroup, { diff --git a/ee/spec/frontend/vue_shared/components/web_ide_link_spec.js b/ee/spec/frontend/vue_shared/components/web_ide_link_spec.js index d2f02f80f0c001..2cbd812fdc376e 100644 --- a/ee/spec/frontend/vue_shared/components/web_ide_link_spec.js +++ b/ee/spec/frontend/vue_shared/components/web_ide_link_spec.js @@ -60,31 +60,26 @@ describe('ee_component/vue_shared/components/web_ide_link', () => { }); describe.each` - rdAvailable | rdFFlagEnabled | executed - ${true} | ${true} | ${true} - ${true} | ${false} | ${false} - ${false} | ${true} | ${false} - `( - 'when rdAvailable=$rdAvailable, rdFFlagEnabled=$rdFFlagEnabled', - ({ rdAvailable, rdFFlagEnabled, executed }) => { - it(`getProjectDetailsQuery is${executed ? ' ' : ' not '}executed`, async () => { - createComponent({ - provide: { - glFeatures: { - remoteDevelopment: rdAvailable, - remoteDevelopmentFeatureFlag: rdFFlagEnabled, - }, + rdAvailable | executed + ${true} | ${true} + ${false} | ${false} + `('when rdAvailable=$rdAvailable', ({ rdAvailable, executed }) => { + it(`getProjectDetailsQuery is${executed ? ' ' : ' not '}executed`, async () => { + createComponent({ + provide: { + glFeatures: { + remoteDevelopment: rdAvailable, }, - }); + }, + }); - findCeWebIdeLink().vm.$emit('shown'); + findCeWebIdeLink().vm.$emit('shown'); - await nextTick(); + await nextTick(); - expect(findGetProjectDetailsQuery().exists()).toBe(executed); - }); - }, - ); + expect(findGetProjectDetailsQuery().exists()).toBe(executed); + }); + }); describe('when remote development feature flags are on', () => { describe('when workspaces dropdown group is visible', () => { @@ -95,7 +90,6 @@ describe('ee_component/vue_shared/components/web_ide_link', () => { newWorkspacePath, glFeatures: { remoteDevelopment: true, - remoteDevelopmentFeatureFlag: true, }, }, }); diff --git a/ee/spec/policies/global_policy_spec.rb b/ee/spec/policies/global_policy_spec.rb index 7bddf234bf84fa..9eae4c97e62371 100644 --- a/ee/spec/policies/global_policy_spec.rb +++ b/ee/spec/policies/global_policy_spec.rb @@ -38,14 +38,6 @@ end describe 'reading workspaces' do - context 'when feature flag is disabled' do - before do - stub_feature_flags(remote_development_feature_flag: false) - end - - it { is_expected.to be_disallowed(:read_workspace) } - end - context 'when licensed' do before do stub_licensed_features(remote_development: true) diff --git a/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb b/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb index ac2a3544a5ebec..57e7b9626a307b 100644 --- a/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb +++ b/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/create_spec.rb @@ -109,14 +109,4 @@ def mutation_response let(:match_errors) { include(/'remote_development' licensed feature is not available/) } end end - - context 'when remote_development_feature_flag feature flag is disabled' do - before do - stub_feature_flags(remote_development_feature_flag: false) - end - - it_behaves_like 'a mutation that returns top-level errors' do - let(:match_errors) { include(/'remote_development_feature_flag' feature flag is disabled/) } - end - end end diff --git a/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/update_spec.rb b/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/update_spec.rb index a63a94da392928..0d834cf1c8d09d 100644 --- a/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/update_spec.rb +++ b/ee/spec/requests/api/graphql/mutations/remote_development/workspaces/update_spec.rb @@ -99,14 +99,4 @@ def mutation_response let(:match_errors) { include(/'remote_development' licensed feature is not available/) } end end - - context 'when remote_development_feature_flag feature flag is disabled' do - before do - stub_feature_flags(remote_development_feature_flag: false) - end - - it_behaves_like 'a mutation that returns top-level errors' do - let(:match_errors) { include(/'remote_development_feature_flag' feature flag is disabled/) } - end - end end diff --git a/ee/spec/requests/api/graphql/remote_development/shared.rb b/ee/spec/requests/api/graphql/remote_development/shared.rb index f9d28aa4db33c3..d2d5a7458a2799 100644 --- a/ee/spec/requests/api/graphql/remote_development/shared.rb +++ b/ee/spec/requests/api/graphql/remote_development/shared.rb @@ -105,23 +105,6 @@ end end -RSpec.shared_examples 'query with feature flag off' do - context 'when remote_development_feature_flag feature flag is disabled' do - include_context 'in licensed environment' - - before do - stub_feature_flags(remote_development_feature_flag: false) - end - - context 'when user is authorized' do - include_context 'with authorized user' - - it_behaves_like 'query returns blank' - it_behaves_like 'query includes graphql error', /'remote_development_feature_flag' feature flag is disabled/ - end - end -end - RSpec.shared_examples 'single workspace query' do context 'when remote_development feature is licensed' do include_context 'in licensed environment' @@ -149,7 +132,6 @@ end it_behaves_like 'query in unlicensed environment' - it_behaves_like 'query with feature flag off' end RSpec.shared_examples 'multiple workspaces query' do @@ -200,5 +182,4 @@ end it_behaves_like 'query in unlicensed environment' - it_behaves_like 'query with feature flag off' end diff --git a/ee/spec/requests/api/internal/kubernetes_spec.rb b/ee/spec/requests/api/internal/kubernetes_spec.rb index e262d3c518ba49..d27182c5acb46f 100644 --- a/ee/spec/requests/api/internal/kubernetes_spec.rb +++ b/ee/spec/requests/api/internal/kubernetes_spec.rb @@ -115,20 +115,6 @@ def send_request(params: {}, headers: agent_token_headers) expect(response).to have_gitlab_http_status(:forbidden) end end - - context 'when remote_development_feature_flag feature flag is disabled' do - let(:service_response) { ServiceResponse.success(payload: {}) } - - before do - stub_feature_flags(remote_development_feature_flag: false) - end - - it 'returns service response with payload' do - send_request(params: {}) - - expect(response).to have_gitlab_http_status(:forbidden) - end - end end describe 'POST /internal/kubernetes/agent_configuration' do @@ -187,18 +173,6 @@ def send_request(headers: {}, params: {}) expect(agent.reload.remote_development_agent_config).to be_nil end end - - context 'when remote_development_feature_flag feature flag is disabled' do - before do - stub_feature_flags(remote_development_feature_flag: false) - end - - it 'creates the remote dev configuration' do - send_request(params: { agent_id: agent.id, agent_config: config }) - expect(response).to have_gitlab_http_status(:no_content) - expect(agent.reload.remote_development_agent_config).to be_nil - end - end end end -- GitLab From a9b36e7ab8683b329419ea567401177edaa1eae7 Mon Sep 17 00:00:00 2001 From: Alper Akgun Date: Wed, 15 Nov 2023 11:09:47 +0300 Subject: [PATCH 2/6] Remove doc references --- doc/user/workspace/configuration.md | 3 +-- doc/user/workspace/create_image.md | 5 +---- doc/user/workspace/index.md | 3 +-- ee/lib/ee/api/internal/kubernetes.rb | 2 +- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/doc/user/workspace/configuration.md b/doc/user/workspace/configuration.md index 3684845c2c7819..f4eb605e0ced37 100644 --- a/doc/user/workspace/configuration.md +++ b/doc/user/workspace/configuration.md @@ -6,12 +6,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Workspace configuration **(PREMIUM ALL BETA)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11. > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. FLAG: On self-managed GitLab, by default this feature is available. -To hide the feature, an administrator can [disable the feature flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. On GitLab.com, this feature is available. The feature is not ready for production use. diff --git a/doc/user/workspace/create_image.md b/doc/user/workspace/create_image.md index df70ff311943f7..f9040c3a802025 100644 --- a/doc/user/workspace/create_image.md +++ b/doc/user/workspace/create_image.md @@ -6,12 +6,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Tutorial: Create a custom workspace image that supports arbitrary user IDs **(PREMIUM ALL BETA)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. -FLAG: -On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. On GitLab.com, this feature is available. The feature is not ready for production use. - WARNING: This feature is in [Beta](../../policy/experiment-beta-support.md#beta) and subject to change without notice. To leave feedback, see the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/410031). diff --git a/doc/user/workspace/index.md b/doc/user/workspace/index.md index 21905381577d20..09f1cb85bbf8ef 100644 --- a/doc/user/workspace/index.md +++ b/doc/user/workspace/index.md @@ -6,12 +6,11 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Workspaces **(PREMIUM ALL BETA)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. FLAG: On self-managed GitLab, by default this feature is available. -To hide the feature, an administrator can [disable the feature flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. On GitLab.com, this feature is available. The feature is not ready for production use. diff --git a/ee/lib/ee/api/internal/kubernetes.rb b/ee/lib/ee/api/internal/kubernetes.rb index 0dceda6d8054f6..d010d66cc58fb7 100644 --- a/ee/lib/ee/api/internal/kubernetes.rb +++ b/ee/lib/ee/api/internal/kubernetes.rb @@ -11,7 +11,7 @@ module Kubernetes def update_configuration(agent:, config:) super(agent: agent, config: config) - if ::License.feature_available?(:remote_development) # rubocop:disable Layout/MultilineOperationIndentation -- Currently can't override default RubyMine formatting + if ::License.feature_available?(:remote_development) # NOTE: We are explicitly ignoring any failures here. See the comment in the service for more details. ::RemoteDevelopment::AgentConfig::UpdateService.new.execute(agent: agent, config: config) end -- GitLab From 611738b2ac2c220402350de32ef733769df0942f Mon Sep 17 00:00:00 2001 From: Amy Qualls Date: Thu, 16 Nov 2023 07:39:12 +0000 Subject: [PATCH 3/6] Doc updates --- doc/user/workspace/configuration.md | 10 +++------- doc/user/workspace/create_image.md | 5 +++-- doc/user/workspace/index.md | 8 ++------ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/doc/user/workspace/configuration.md b/doc/user/workspace/configuration.md index f4eb605e0ced37..fd7fc842142641 100644 --- a/doc/user/workspace/configuration.md +++ b/doc/user/workspace/configuration.md @@ -4,15 +4,11 @@ group: IDE info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Workspace configuration **(PREMIUM ALL BETA)** +# Workspace configuration **(PREMIUM ALL)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. - -FLAG: -On self-managed GitLab, by default this feature is available. -On GitLab.com, this feature is available. -The feature is not ready for production use. +> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136744) in GitLab 16.7. Feature flag `remote_development_feature_flag` removed. WARNING: This feature is in [Beta](../../policy/experiment-beta-support.md#beta) and subject to change without notice. diff --git a/doc/user/workspace/create_image.md b/doc/user/workspace/create_image.md index f9040c3a802025..d44d72ec634e07 100644 --- a/doc/user/workspace/create_image.md +++ b/doc/user/workspace/create_image.md @@ -4,10 +4,11 @@ group: IDE info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Tutorial: Create a custom workspace image that supports arbitrary user IDs **(PREMIUM ALL BETA)** +# Tutorial: Create a custom workspace image that supports arbitrary user IDs **(PREMIUM ALL)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. +> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136744) in GitLab 16.7. Feature flag `remote_development_feature_flag` removed. WARNING: This feature is in [Beta](../../policy/experiment-beta-support.md#beta) and subject to change without notice. To leave feedback, see the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/410031). diff --git a/doc/user/workspace/index.md b/doc/user/workspace/index.md index 09f1cb85bbf8ef..023a27cde9f5d5 100644 --- a/doc/user/workspace/index.md +++ b/doc/user/workspace/index.md @@ -6,13 +6,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Workspaces **(PREMIUM ALL BETA)** -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. - -FLAG: -On self-managed GitLab, by default this feature is available. -On GitLab.com, this feature is available. -The feature is not ready for production use. +> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136744) in GitLab 16.7. Feature flag `remote_development_feature_flag` removed. WARNING: This feature is in [Beta](../../policy/experiment-beta-support.md#beta) and subject to change without notice. -- GitLab From d1cb3df9698736eea28c16b3ea317390c32363a4 Mon Sep 17 00:00:00 2001 From: Amy Qualls Date: Thu, 16 Nov 2023 07:40:23 +0000 Subject: [PATCH 4/6] Doc update remove beta --- doc/user/workspace/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/user/workspace/index.md b/doc/user/workspace/index.md index 023a27cde9f5d5..11c4ed963d10d8 100644 --- a/doc/user/workspace/index.md +++ b/doc/user/workspace/index.md @@ -4,7 +4,7 @@ group: IDE info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments --- -# Workspaces **(PREMIUM ALL BETA)** +# Workspaces **(PREMIUM ALL)** > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112397) in GitLab 15.11 [with a flag](../../administration/feature_flags.md) named `remote_development_feature_flag`. Disabled by default. > - [Enabled on GitLab.com and self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/391543) in GitLab 16.0. -- GitLab From 4500c214e20e141e581cc2f7c41f713f65c012ea Mon Sep 17 00:00:00 2001 From: Chad Woolley Date: Thu, 16 Nov 2023 07:41:29 +0000 Subject: [PATCH 5/6] Spec update --- .../remote_development/workspaces_controller_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ee/spec/controllers/remote_development/workspaces_controller_spec.rb b/ee/spec/controllers/remote_development/workspaces_controller_spec.rb index a577dc2fdbe9b2..5f8c91df65e836 100644 --- a/ee/spec/controllers/remote_development/workspaces_controller_spec.rb +++ b/ee/spec/controllers/remote_development/workspaces_controller_spec.rb @@ -9,13 +9,13 @@ sign_in(user) end - shared_examples 'remote development feature' do |expected_status| + shared_examples 'remote development feature licensing' do |is_licensed, expected_status| before do - stub_licensed_features(remote_development: true) + stub_licensed_features(remote_development: is_licensed) end describe 'GET #index' do - it 'responds with the expected status' do + it 'responds with status "#{expected_status}"' do get :index expect(response).to have_gitlab_http_status(expected_status) -- GitLab From 291787c025585a48863ee06842d197838394e0b3 Mon Sep 17 00:00:00 2001 From: Alper Akgun Date: Thu, 16 Nov 2023 14:58:52 +0300 Subject: [PATCH 6/6] Update scope and fix spec --- .../remote_development/workspaces_controller_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ee/spec/controllers/remote_development/workspaces_controller_spec.rb b/ee/spec/controllers/remote_development/workspaces_controller_spec.rb index 5f8c91df65e836..bca318cb6233ed 100644 --- a/ee/spec/controllers/remote_development/workspaces_controller_spec.rb +++ b/ee/spec/controllers/remote_development/workspaces_controller_spec.rb @@ -15,7 +15,7 @@ end describe 'GET #index' do - it 'responds with status "#{expected_status}"' do + it "responds with status '#{expected_status}'" do get :index expect(response).to have_gitlab_http_status(expected_status) @@ -24,7 +24,7 @@ end context 'with remote development feature' do - it_behaves_like 'remote development feature', :ok + it_behaves_like 'remote development feature licensing', true, :ok end context 'with remote development not licensed' do -- GitLab