Commit f15ceccb authored by Alper Akgun's avatar Alper Akgun

Merge branch 'psi-group-iterations-feature-flag' into 'master'

Remove group_iterations feature flag

See merge request gitlab-org/gitlab!75319
parents 5c1f6a17 79b25f53
...@@ -7,14 +7,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w ...@@ -7,14 +7,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Iterations **(PREMIUM)** # Iterations **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/214713) in GitLab 13.1. > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/214713) in GitLab 13.1 [with a flag](../../../administration/feature_flags.md) named `group_iterations`. Disabled by default.
> - Deployed behind a feature flag, disabled by default. > - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/issues/221047) in GitLab 13.2.
> - [Enabled by default](https://gitlab.com/gitlab-org/gitlab/-/issues/221047) in GitLab 13.2.
> - Enabled on GitLab.com.
> - Can be enabled or disabled per-group.
> - Recommended for production use.
> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-iterations).
> - Moved to GitLab Premium in 13.9. > - Moved to GitLab Premium in 13.9.
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/221047) in GitLab 14.6. [Feature flag `group_iterations`](https://gitlab.com/gitlab-org/gitlab/-/issues/221047) removed.
Iterations are a way to track issues over a period of time. This allows teams Iterations are a way to track issues over a period of time. This allows teams
to track velocity and volatility metrics. Iterations can be used with [milestones](../../project/milestones/index.md) to track velocity and volatility metrics. Iterations can be used with [milestones](../../project/milestones/index.md)
...@@ -171,30 +167,6 @@ To group issues by label: ...@@ -171,30 +167,6 @@ To group issues by label:
You can also search for labels by typing in the search input. You can also search for labels by typing in the search input.
1. Select or tap outside of the label dropdown. The page is now grouped by the selected labels. 1. Select or tap outside of the label dropdown. The page is now grouped by the selected labels.
## Enable or disable iterations **(PREMIUM SELF)**
GitLab Iterations feature is deployed with a feature flag that is **enabled by default**.
[GitLab administrators with access to the GitLab Rails console](../../../administration/feature_flags.md)
can disable it for your instance. `:group_iterations` can be enabled or disabled per-group.
To enable it:
```ruby
# Instance-wide
Feature.enable(:group_iterations)
# or by group
Feature.enable(:group_iterations, Group.find(<group ID>))
```
To disable it:
```ruby
# Instance-wide
Feature.disable(:group_iterations)
# or by group
Feature.disable(:group_iterations, Group.find(<group ID>))
```
### Enable or disable iteration cadences **(PREMIUM SELF)** ### Enable or disable iteration cadences **(PREMIUM SELF)**
Iteration Cadences feature is under development and not ready for production use. It is Iteration Cadences feature is under development and not ready for production use. It is
......
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
- breadcrumb_title params[:id] - breadcrumb_title params[:id]
- page_title s_("Iterations|Edit iteration") - page_title s_("Iterations|Edit iteration")
- if Feature.enabled?(:group_iterations, @group, default_enabled: true) .js-iteration{ data: { full_path: @group.full_path,
.js-iteration{ data: { full_path: @group.full_path, iterations_list_path: group_iterations_path(@group),
iterations_list_path: group_iterations_path(@group), can_edit: can?(current_user, :admin_iteration, @group).to_s,
can_edit: can?(current_user, :admin_iteration, @group).to_s, iteration_id: params[:id],
iteration_id: params[:id], preview_markdown_path: preview_markdown_path(@group) } }
preview_markdown_path: preview_markdown_path(@group) } }
- page_title _("Iterations") - page_title _("Iterations")
- if Feature.enabled?(:group_iterations, @group, default_enabled: true) .js-iterations-list{ data: { full_path: @group.full_path, can_admin: can?(current_user, :create_iteration, @group).to_s, new_iteration_path: new_group_iteration_path(@group) } }
.js-iterations-list{ data: { full_path: @group.full_path, can_admin: can?(current_user, :create_iteration, @group).to_s, new_iteration_path: new_group_iteration_path(@group) } }
...@@ -2,12 +2,11 @@ ...@@ -2,12 +2,11 @@
- breadcrumb_title params[:id] - breadcrumb_title params[:id]
- page_title _("Iterations") - page_title _("Iterations")
- if Feature.enabled?(:group_iterations, @group, default_enabled: true) .js-iteration{ data: { full_path: @group.full_path,
.js-iteration{ data: { full_path: @group.full_path, can_edit: can?(current_user, :admin_iteration, @group).to_s,
can_edit: can?(current_user, :admin_iteration, @group).to_s, has_scoped_labels_feature: @group.licensed_feature_available?(:scoped_labels).to_s,
has_scoped_labels_feature: @group.licensed_feature_available?(:scoped_labels).to_s, iteration_id: params[:id],
iteration_id: params[:id], iterations_list_path: group_iterations_path(@group),
iterations_list_path: group_iterations_path(@group), labels_fetch_path: group_labels_path(@group, format: :json, include_ancestor_groups: true),
labels_fetch_path: group_labels_path(@group, format: :json, include_ancestor_groups: true), preview_markdown_path: preview_markdown_path(@group),
preview_markdown_path: preview_markdown_path(@group), svg_path: image_path('illustrations/issues.svg') } }
svg_path: image_path('illustrations/issues.svg') } }
- if Feature.enabled?(:group_iterations, @project.group, default_enabled: true) && @project.group.licensed_feature_available?(:iterations) - if @project.group.licensed_feature_available?(:iterations)
.js-iteration-select{ data: { can_edit: can_edit, group_path: group_path, project_path: project_path, issue_iid: issue_iid } } .js-iteration-select{ data: { can_edit: can_edit, group_path: group_path, project_path: project_path, issue_iid: issue_iid } }
---
name: group_iterations
introduced_by_url:
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/221047
milestone:
type: development
group: group::project management
default_enabled: true
...@@ -32,7 +32,7 @@ module EE ...@@ -32,7 +32,7 @@ module EE
end end
def iterations_enabled? def iterations_enabled?
::Feature.enabled?(:group_iterations, context.group, default_enabled: true) && context.group.licensed_feature_available?(:iterations) context.group.licensed_feature_available?(:iterations)
end end
def user_can_access_iterations? def user_can_access_iterations?
......
...@@ -104,7 +104,6 @@ RSpec.describe 'Iterations list', :js do ...@@ -104,7 +104,6 @@ RSpec.describe 'Iterations list', :js do
context 'as user' do context 'as user' do
before do before do
stub_licensed_features(iterations: true) stub_licensed_features(iterations: true)
stub_feature_flags(group_iterations: true)
group.add_developer(user) group.add_developer(user)
sign_in(user) sign_in(user)
visit group_iterations_path(group) visit group_iterations_path(group)
......
...@@ -14,7 +14,6 @@ RSpec.describe 'Group navbar' do ...@@ -14,7 +14,6 @@ RSpec.describe 'Group navbar' do
before do before do
group.add_maintainer(user) group.add_maintainer(user)
stub_feature_flags(group_iterations: false)
stub_feature_flags(customer_relations: false) stub_feature_flags(customer_relations: false)
stub_group_wikis(false) stub_group_wikis(false)
sign_in(user) sign_in(user)
...@@ -208,13 +207,6 @@ RSpec.describe 'Group navbar' do ...@@ -208,13 +207,6 @@ RSpec.describe 'Group navbar' do
context 'when iterations are available' do context 'when iterations are available' do
before do before do
stub_licensed_features(iterations: true) stub_licensed_features(iterations: true)
stub_feature_flags(group_iterations: true)
insert_after_sub_nav_item(
_('Milestones'),
within: _('Issues'),
new_sub_nav_item_name: _('Iterations')
)
visit group_path(group) visit group_path(group)
end end
......
...@@ -70,28 +70,10 @@ RSpec.describe 'layouts/nav/sidebar/_group' do ...@@ -70,28 +70,10 @@ RSpec.describe 'layouts/nav/sidebar/_group' do
stub_licensed_features(iterations: true) stub_licensed_features(iterations: true)
end end
context 'with group iterations feature flag enabled' do it 'is visible' do
before do render
stub_feature_flags(group_iterations: true)
end
it 'is visible' do
render
expect(rendered).to have_text 'Iterations'
end
end
context 'with iterations feature flag disabled' do
before do
stub_feature_flags(group_iterations: false)
end
it 'is not visible' do
render
expect(rendered).not_to have_text 'Iterations' expect(rendered).to have_text 'Iterations'
end
end end
end end
......
...@@ -14,7 +14,6 @@ RSpec.describe 'Group navbar' do ...@@ -14,7 +14,6 @@ RSpec.describe 'Group navbar' do
before do before do
insert_package_nav(_('Kubernetes')) insert_package_nav(_('Kubernetes'))
stub_feature_flags(group_iterations: false)
stub_feature_flags(customer_relations: false) stub_feature_flags(customer_relations: false)
stub_config(dependency_proxy: { enabled: false }) stub_config(dependency_proxy: { enabled: false })
stub_config(registry: { enabled: false }) stub_config(registry: { enabled: false })
......
...@@ -190,7 +190,8 @@ RSpec.shared_context 'group navbar structure' do ...@@ -190,7 +190,8 @@ RSpec.shared_context 'group navbar structure' do
[ [
_('List'), _('List'),
_('Board'), _('Board'),
_('Milestones') _('Milestones'),
(_('Iterations') if Gitlab.ee?)
] ]
end end
......
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