Skip to content
This repository has been archived by the owner on Feb 28, 2024. It is now read-only.

Pitch: ticket dependencies #143

Open
rjpaskin opened this issue Oct 16, 2019 · 0 comments
Open

Pitch: ticket dependencies #143

rjpaskin opened this issue Oct 16, 2019 · 0 comments

Comments

@rjpaskin
Copy link
Contributor

Ticket dependencies

As a user
I want to specify dependencies between tickets
So that I can tell what tickets need to be deployed before others

Proposal

A lot of this is based on a similar feature from Waffle: their help doc

Be able to declare dependencies using keywords in the title or description of a ticket

Given a ticket numbered 123
And a ticket numbered 987
When I add "requires #123" to ticket 987
Then I should see ticket 123 as a parent of 987
And I should see ticket 987 as a child of 123

Proposed keywords (taken from Waffle):

  • blocked by #123
  • requires #123
  • require #123
  • needs #123
  • need #123
  • depends on #123

Possible UI:

_________________________________________________________
| _______________________  |  __________________________ |
| | 123                 |  |  | 987                    | |
| | Some ticket         |  |  | Some other ticket      | |
| |_____________________|  |  |________________________| |
| | <icon> requires 987 |  |  | <icon> required by 123 | |
| |_____________________|  |  |________________________| |
|                          |                             |

For the icon/status, a dependency is "ok" if the required ticket is in the same swimlane
as the requiree, or a swimlane to the right:

Where Ticket 2 requires Ticket 1:

| Ticket 1 | Ticket 2 | => status: warning
|          |          |
| Ticket 1 |          | => status: ok
| Ticket 2 |          |
| Ticket 2 | Ticket 1 | => status: ok
|          |          |

Looking through previous tickets, it seems that we generally have a sequence of dependencies for
tickets:

ticket 1 => needed by ticket 2 => needed by ticket 3 => needed by ticket 4

with an occasional fanning-out - e.g. a ticket has 2 dependencies, which themselves are independent.

Out of scope/not going to do

  • Keywords anywhere not in title/description - i.e. comments
    Too many places for parser code to look
  • Dependencies between ticket => PR or PR => PR (we already have PR => ticket from the connects keyword)
    Simpler database modelling
  • Adding dependencies through a UI in FlightPlan
    Text interface works well enough
  • 'Inverse' dependencies - adding a keyword to the parent ticket (e.g. required by #123)
    Feel like it would be confusing if you needed to remove or amend the dependency to have to look at the parent ticket
  • Showing nested dependencies - dependencies are only one level deep, but dependencies can form an implicit chain
    Prevent having to do expensive recursive database queries, or having a complex UI

Bonus

  • Data migration to add dependencies to existing tickets in database
  • Add to realtime updates
  • Be able to 'navigate' through the dependency chain - click on a dependency and scroll that ticket into view?
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant