Commit 7cf3bb60 authored by Mikołaj Wawrzyniak's avatar Mikołaj Wawrzyniak

Merge branch 'psi-iteration-board-lists' into 'master'

Remove iteration_board_lists feature flag

See merge request gitlab-org/gitlab!75404
parents 58a84211 444a19e7
...@@ -313,12 +313,8 @@ As in other list types, click the trash icon to remove a list. ...@@ -313,12 +313,8 @@ As in other list types, click the trash icon to remove a list.
### Iteration lists **(PREMIUM)** ### Iteration lists **(PREMIUM)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/250479) in GitLab 13.11 [with a flag](../../administration/feature_flags.md) named `iteration_board_lists`. Enabled by default. > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/250479) in GitLab 13.11 [with a flag](../../administration/feature_flags.md) named `iteration_board_lists`. Enabled by default.
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75404) in GitLab 14.6. Feature flag `iteration_board_lists` removed.
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, ask an
administrator to [disable the `iteration_board_lists` flag](../../administration/feature_flags.md).
On GitLab.com, this feature is available.
You're also able to create lists of an iteration. You're also able to create lists of an iteration.
These lists filter issues by the assigned iteration. These lists filter issues by the assigned iteration.
......
...@@ -65,7 +65,7 @@ module EE ...@@ -65,7 +65,7 @@ module EE
def all_iteration_lists def all_iteration_lists
# Note that the names are very similar but these are different. # Note that the names are very similar but these are different.
# One is a license name and the other is a feature flag # One is a license name and the other is a feature flag
if parent.feature_available?(:board_iteration_lists) && ::Feature.enabled?(:iteration_board_lists, parent, default_enabled: :yaml) if parent.feature_available?(:board_iteration_lists)
board.lists.iteration.where.not(iteration_id: nil) board.lists.iteration.where.not(iteration_id: nil)
else else
::List.none ::List.none
......
...@@ -54,7 +54,7 @@ module EE ...@@ -54,7 +54,7 @@ module EE
milestone_id: milestone_id milestone_id: milestone_id
} }
movement_args[:sprint_id] = iteration_id(issue) if ::Feature.enabled?(:iteration_board_lists, parent, default_enabled: :yaml) movement_args[:sprint_id] = iteration_id(issue)
movement_args movement_args
end end
......
...@@ -10,7 +10,6 @@ module EE ...@@ -10,7 +10,6 @@ module EE
override :execute override :execute
def execute(board) def execute(board)
return ServiceResponse.error(message: 'iteration_board_lists feature flag is disabled') if type == :iteration && ::Feature.disabled?(:iteration_board_lists, board.resource_parent, default_enabled: :yaml)
return license_validation_error unless valid_license?(board.resource_parent) return license_validation_error unless valid_license?(board.resource_parent)
super super
......
...@@ -18,7 +18,6 @@ module EE ...@@ -18,7 +18,6 @@ module EE
def unavailable_list_types_for(board) def unavailable_list_types_for(board)
list_types = super list_types = super
list_types += unlicensed_lists_for(board) list_types += unlicensed_lists_for(board)
list_types << ::List.list_types[:iteration] if ::Feature.disabled?(:iteration_board_lists, board.resource_parent, default_enabled: :yaml)
list_types.uniq list_types.uniq
end end
......
---
name: iteration_board_lists
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49688
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/250479
milestone: '13.7'
type: development
group: group::project management
default_enabled: true
...@@ -64,19 +64,6 @@ RSpec.describe Boards::ListsController do ...@@ -64,19 +64,6 @@ RSpec.describe Boards::ListsController do
context 'for iteration lists' do context 'for iteration lists' do
let_it_be(:iteration) { create(:iteration, group: group) } let_it_be(:iteration) { create(:iteration, group: group) }
context 'when iteration_board_lists is disabled' do
before do
stub_feature_flags(iteration_board_lists: false)
end
it 'returns an error' do
create_board_list user: user, board: board, iteration_id: iteration.id
expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response['errors']).to eq(['iteration_board_lists feature flag is disabled'])
end
end
context 'when license is available' do context 'when license is available' do
before do before do
stub_licensed_features(board_iteration_lists: true) stub_licensed_features(board_iteration_lists: true)
......
...@@ -114,14 +114,6 @@ RSpec.describe Mutations::Boards::Lists::Create do ...@@ -114,14 +114,6 @@ RSpec.describe Mutations::Boards::Lists::Create do
end end
end end
context 'when feature flag is disabled' do
it 'returns an error' do
stub_feature_flags(iteration_board_lists: false)
expect(subject[:errors]).to include 'iteration_board_lists feature flag is disabled'
end
end
it 'creates a new issue board list for the iteration' do it 'creates a new issue board list for the iteration' do
expect { subject }.to change { board.lists.count }.from(1).to(2) expect { subject }.to change { board.lists.count }.from(1).to(2)
......
...@@ -109,16 +109,6 @@ RSpec.describe Boards::Issues::ListService, services: true do ...@@ -109,16 +109,6 @@ RSpec.describe Boards::Issues::ListService, services: true do
expect(issues).to include(iteration_issue) expect(issues).to include(iteration_issue)
end end
end end
context 'when feature flag is disabled' do
before do
stub_feature_flags(iteration_board_lists: false)
end
it 'includes issues in the iteration list' do
expect(issues).to include(iteration_issue)
end
end
end end
end end
......
...@@ -114,17 +114,6 @@ RSpec.describe Boards::Issues::MoveService, services: true do ...@@ -114,17 +114,6 @@ RSpec.describe Boards::Issues::MoveService, services: true do
.from(nil) .from(nil)
.to(iteration_list1.iteration) .to(iteration_list1.iteration)
end end
context 'when feature flag is disabled' do
before do
stub_feature_flags(iteration_board_lists: false)
end
it 'does not assign the iteration' do
expect { described_class.new(parent, user, params).execute(issue) }
.not_to change { issue.reload.iteration }
end
end
end end
context 'from iteration to backlog list' do context 'from iteration to backlog list' do
......
...@@ -83,15 +83,6 @@ RSpec.describe Boards::Lists::CreateService do ...@@ -83,15 +83,6 @@ RSpec.describe Boards::Lists::CreateService do
end end
end end
it 'returns an error when feature flag is disabled' do
stub_feature_flags(iteration_board_lists: false)
response = service.execute(board)
expect(response.success?).to eq(false)
expect(response.errors).to include('iteration_board_lists feature flag is disabled')
end
it 'returns an error when license is unavailable' do it 'returns an error when license is unavailable' do
stub_licensed_features(board_iteration_lists: false) stub_licensed_features(board_iteration_lists: false)
......
...@@ -71,16 +71,6 @@ RSpec.describe Boards::Lists::ListService do ...@@ -71,16 +71,6 @@ RSpec.describe Boards::Lists::ListService do
expect(execute_service) expect(execute_service)
.to match_array([backlog_list, list, iteration_list, board.lists.closed.first]) .to match_array([backlog_list, list, iteration_list, board.lists.closed.first])
end end
context 'when the feature flag is disabled' do
before do
stub_feature_flags(iteration_board_lists: false)
end
it 'filters out iteration lists that might have been created while subscribed' do
expect(execute_service).to match_array [backlog_list, list, board.lists.closed.first]
end
end
end end
context 'when feature is disabled' do context 'when feature is disabled' do
......
...@@ -14,15 +14,6 @@ RSpec.shared_examples 'iteration board list' do ...@@ -14,15 +14,6 @@ RSpec.shared_examples 'iteration board list' do
expect(json_response.dig('message', 'error')).to eq('Iteration not found') expect(json_response.dig('message', 'error')).to eq('Iteration not found')
end end
it 'returns 400 if feature flag is disabled' do
stub_feature_flags(iteration_board_lists: false)
post api(url, user), params: { iteration_id: iteration.id }
expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response.dig('message', 'error')).to eq('iteration_board_lists feature flag is disabled')
end
it 'returns 400 if not licensed' do it 'returns 400 if not licensed' do
stub_licensed_features(board_iteration_lists: false) stub_licensed_features(board_iteration_lists: false)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment