Closing issue via board or show differs in behaviour

Summary

  • Moving an issue from a board list to the Closed list removes all labels that are attached to board lists.
  • Closing an issue (say from the issue itself) just closes the issue, removing no label.

Some history: I remember it used to be a problem back when moving an issue from a board list to the Closed list removed only the label within which the issue was moved (which could have been legit, albeit confusing, behaviour), as it was not possible for the act of closing from a show to know which label to remove if there were multiple boards, plus it was triggering a bug wherein an issue still labeled with a listed label but closed was flat out vanishing from the board.

All in all, the new behaviour is more consistent throughout WRT boards, but not when just closing the issue. This requires users to consciously and consistently either go back to the board then find and drag the issue to the Closed list, or carefully play whack-a-mole in the label selector before closing the issue. If the user doesn't, the issue will indeed appear completely inconsistent within the boards:

Screen_Shot_2017-07-19_at_15.40.14

Steps to reproduce

  • create a project with two boards
  • add a different list to each board
  • create an issue and add it to a list on each board
  • show the issue and close it
  • go to either board
  • be amazed at the conundrum you are presented with
  • back to show, reopen the issue
  • on either board, drag the issue from any list to the Closed list
  • the issue is closed and all labels that are in any board lists (and only those) are removed
  • bonus bug: right after the drag, notice that while the relevant labels are indeed all removed in database, the ones that are not of the current board visually aren't updated as such client-side

Screen_Shot_2017-07-19_at_15.44.13

Example Project

https://gitlab.com/lloeki/test/boards

What is the current bug behavior?

Closing an issue from said issue (or - unchecked, that's a guess - from a commit or a MR):

  • is inconsistent with closing issue from a board
  • produces results that don't make sense in the boards

What is the expected correct behavior?

Closing an issue by whatever means (from the issue itself, from any board, from commits, from MRs) should do the same thing: remove all labels that are lists in any board of the project, leaving the issue in a meaningful, consistent state.

Stretch goal: adding a label that is a board list to an issue should remove any other label that is a list from the same board. Why? Because boards are basically state machines and people rarely want quantic states in their workflow.

Output of checks

This bug happens on GitLab.com

Assignee Loading
Time tracking Loading