Iterations

Version history
  • Introduced in GitLab 13.1.
  • Deployed behind a feature flag, disabled by default.
  • Enabled by default 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.
  • Moved to GitLab Premium in 13.9.

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 for tracking over different time periods.

For example, you can use:

  • Milestones for Program Increments, which span 8-12 weeks.
  • Iterations for Sprints, which span 2 weeks.

In GitLab, iterations are similar to milestones, with a few differences:

  • Iterations are only available to groups.
  • A group can only have one active iteration at a time.
  • Iterations require both a start and an end date.
  • Iteration date ranges cannot overlap.

Iteration cadences

Version history
  • Introduced in GitLab 14.1.
  • Deployed behind a feature flag, disabled by default.
  • Disabled on GitLab.com.
  • Not recommended for production use.
  • To use in GitLab self-managed instances, ask a GitLab administrator to enable it.

This in-development feature might not be available for your use. There can be risks when enabling features still in development. Refer to this feature’s version history for more details.

Iteration cadences automate some common iteration tasks. They can be used to automatically create iterations every 1, 2, 3, 4, or 6 weeks. They can also be configured to automatically roll over incomplete issues to the next iteration.

With iteration cadences enabled, you must first create an iteration cadence before you can create an iteration.

Create an iteration cadence

Prerequisites:

To create an iteration cadence:

  1. On the top bar, select Menu > Groups and find your group.
  2. On the left sidebar, select Issues > Iterations.
  3. Select New iteration cadence.
  4. Fill out required fields, and select Create iteration cadence. The cadence list page opens.

Delete an iteration cadence

Prerequisites:

Deleting an iteration cadence also deletes all iterations within that cadence.

To delete an iteration cadence:

  1. On the top bar, select Menu > Groups and find your group.
  2. On the left sidebar, select Issues > Iterations.
  3. Select the three-dot menu () > Delete cadence for the cadence you want to delete.
  4. Select Delete cadence in the confirmation modal.

View the iterations list

To view the iterations list, go to Issues > Iterations. To view all the iterations in a cadence, ordered by descending date, select that iteration cadence. From there you can create a new iteration or select an iteration to get a more detailed view.

Create an iteration

Prerequisites:

For manually scheduled iteration cadences, you create and add iterations yourself.

To create an iteration:

  1. On the top bar, select Menu > Groups and find your group.
  2. On the left sidebar, select Issues > Iterations.
  3. Select New iteration.
  4. Enter the title, a description (optional), a start date, and a due date.
  5. Select Create iteration. The iteration details page opens.

Edit an iteration

Introduced in GitLab 13.2.

Prerequisites:

To edit an iteration, select the three-dot menu () > Edit.

Delete an iteration

Introduced in GitLab 14.3.

Prerequisites:

To delete an iteration, select the three-dot menu () > Delete.

Add an issue to an iteration

Introduced in GitLab 13.2.

To learn how to add an issue to an iteration, see the steps in Managing issues.

View an iteration report

Viewing iteration reports in projects introduced in GitLab 13.5.

You can track the progress of an iteration by reviewing iteration reports. An iteration report displays a list of all the issues assigned to an iteration and their status.

The report also shows a breakdown of total issues in an iteration. Open iteration reports show a summary of completed, unstarted, and in-progress issues. Closed iteration reports show the total number of issues completed by the due date.

To view an iteration report, go to the iterations list page and select an iteration’s title.

Iteration burndown and burnup charts

Version history

The iteration report includes burndown and burnup charts, similar to how they appear when viewing a milestone.

Burndown charts help track completion progress of total scope, and burnup charts track the daily total count and weight of issues added to and completed in a given timebox.

Group issues by label

Introduced in GitLab 13.8.

You can group the list of issues by label. This can help you view issues that have your team’s label, and get a more accurate understanding of scope attributable to each label.

To group issues by label:

  1. On the top bar, select Menu > Groups and find your group.
  2. On the left sidebar, select Issues > Iterations.
  3. In the Group by dropdown, select Label.
  4. Select the Filter by label dropdown.
  5. Select the labels you want to group by in the labels dropdown. You can also search for labels by typing in the search input.
  6. Select or tap outside of the label dropdown. The page is now grouped by the selected labels.

Enable or disable iterations

GitLab Iterations feature is deployed with a feature flag that is enabled by default. GitLab administrators with access to the GitLab Rails console can disable it for your instance. :group_iterations can be enabled or disabled per-group.

To enable it:

# Instance-wide
Feature.enable(:group_iterations)
# or by group
Feature.enable(:group_iterations, Group.find(<group ID>))

To disable it:

# Instance-wide
Feature.disable(:group_iterations)
# or by group
Feature.disable(:group_iterations, Group.find(<group ID>))

Enable or disable iteration cadences

Iteration Cadences feature is under development and not ready for production use. It is deployed behind a feature flag that is disabled by default. GitLab administrators with access to the GitLab Rails console can enable it.

To enable it:

Feature.enable(:iteration_cadences)

To disable it:

Feature.disable(:iteration_cadences)