feature-matrix.md

  1# User facing capabilities
  2
  3This document tries to give an overview of what is currently supported, and by
  4extension where effort can be focused to bring feature completion and parity.
  5
  6As git-bug is a free software project, accept and rely on contributor, those
  7feature matrices kinda define a roadmap, in the sense that anything mentioned
  8below is a planned feature and can be worked on. This does not mean that a
  9feature not mentioned here should not be considered, just maybe check the issue
 10tracker and come talk about it.
 11
 12This document however does not show all the untold work required to support
 13those user-facing capabilities. There has been a ton of work behind the scene
 14and more will be required over time.
 15
 16✅: working 🟠: partial implementation ❌: not working
 17
 18## Other goals
 19
 20Some goals don't really fit below, so I'll mention them here:
 21
 22- have the webUI accept external OAuth (Github, ...) and act as a public portal
 23  where user outside the project can browse and interact with the project
 24- project configuration (valid labels, ...)
 25- commit signature to fully authenticate user's interaction
 26- interface with the system keyring, to distribute and expose known public keys
 27  and allow checking signed commit in normal git workflow
 28- privileged roles (admin, ...) and enforcing the corresponding rules
 29- package the webui as a desktop app
 30
 31Additionally, some other are captured as
 32[Github issues](https://github.com/git-bug/git-bug/issues) or
 33[Discussions](https://github.com/git-bug/git-bug/discussions).
 34
 35## Entities
 36
 37The most high level overview of what kind of entities are supported and where.
 38
 39|                | Core | CLI | TermUI | WebUI |
 40| -------------- | :--: | :-: | :----: | :---: |
 41| Identities     |  ✅  | ✅  |   ✅   |  ✅   |
 42| Bug            |  ✅  | ✅  |   ✅   |  ✅   |
 43| Board          |  🟠  | 🟠  |   ❌   |  ❌   |
 44| Pull-request   |  ❌  | ❌  |   ❌   |  ❌   |
 45| Project Config |  ❌  | ❌  |   ❌   |  ❌   |
 46
 47More specific features across the board.
 48
 49|                    | Core | CLI | TermUI | WebUI |
 50| ------------------ | :--: | :-: | :----: | :---: |
 51| Media embedding    |  🟠  | ❌  |   ❌   |  ❌   |
 52| Fast indexing      |  ✅  | ✅  |   ✅   |  ✅   |
 53| Markdown rendering | N/A  | ❌  |   ❌   |  ✅   |
 54
 55#### Identities
 56
 57|                         | Core | CLI | TermUI | WebUI |
 58| ----------------------- | :--: | :-: | :----: | :---: |
 59| Public keys             |  🟠  | ❌  |   ❌   |  ❌   |
 60| Private keys management |  🟠  | ❌  |   ❌   |  ❌   |
 61| Identity edition        |  ✅  | ✅  |   ❌   |  ❌   |
 62| Identity adoption       |  ✅  | ✅  |   ❌   |  ❌   |
 63| Identity protection     |  🟠  | ❌  |   ❌   |  ❌   |
 64
 65#### Bugs
 66
 67|                   | Core | CLI | TermUI | WebUI |
 68| ----------------- | :--: | :-: | :----: | :---: |
 69| Comments          |  ✅  | ✅  |   ✅   |  ✅   |
 70| Comments edition  |  ✅  | ✅  |   ✅   |  ✅   |
 71| Comments deletion |  ✅  | ❌  |   ❌   |  ❌   |
 72| Labels            |  ✅  | ✅  |   ✅   |  ✅   |
 73| Status            |  ✅  | ✅  |   ✅   |  ✅   |
 74| Title edition     |  ✅  | ✅  |   ✅   |  ✅   |
 75| Assignee          |  ❌  | ❌  |   ❌   |  ❌   |
 76| Milestone         |  ❌  | ❌  |   ❌   |  ❌   |
 77
 78## Bridges
 79
 80### Importers
 81
 82General capabilities of importers:
 83
 84|                                                 | Github | Gitlab | Jira | Launchpad |
 85| ----------------------------------------------- | :----: | :----: | :--: | :-------: |
 86| **incremental**<br/>(can import more than once) |   ✅   |   ✅   |  ✅  |    ❌     |
 87| **with resume**<br/>(download only new data)    |   ✅   |   ✅   |  ✅  |    ❌     |
 88| **media/files**                                 |   ❌   |   ❌   |  ❌  |    ❌     |
 89| **automated test suite**                        |   ✅   |   ✅   |  ❌  |    ❌     |
 90
 91Identity support:
 92
 93|                   | Github | Gitlab | Jira | Launchpad |
 94| ----------------- | :----: | :----: | :--: | :-------: |
 95| **identities**    |   ✅   |   ✅   |  ✅  |    ✅     |
 96| identities update |   ❌   |   ❌   |  ❌  |    ❌     |
 97| public keys       |   ❌   |   ❌   |  ❌  |    ❌     |
 98
 99Bug support:
100
101|                  | Github | Gitlab | Jira | Launchpad |
102| ---------------- | :----: | :----: | :--: | :-------: |
103| **bug**          |   ✅   |   ✅   |  ✅  |    ✅     |
104| comments         |   ✅   |   ✅   |  ✅  |    ✅     |
105| comment editions |   ✅   |   ❌   |  ✅  |    ❌     |
106| labels           |   ✅   |   ✅   |  ✅  |    ❌     |
107| status           |   ✅   |   ✅   |  ✅  |    ❌     |
108| title edition    |   ✅   |   ✅   |  ✅  |    ❌     |
109| Assignee         |   ❌   |   ❌   |  ❌  |    ❌     |
110| Milestone        |   ❌   |   ❌   |  ❌  |    ❌     |
111
112Board support:
113
114|           | Github | Gitlab | Jira | Launchpad |
115| --------- | :----: | :----: | :--: | :-------: |
116| **board** |   ❌   |   ❌   |  ❌  |    ❌     |
117
118### Exporters
119
120**General capabilities of exporters**:
121
122|                                                 | Github | Gitlab | Jira |
123| ----------------------------------------------- | :----: | :----: | :--: |
124| **incremental**<br/>(can export more than once) |   ✅   |   ✅   |  ✅  |
125| **with resume**<br/>(upload only new data)      |   ✅   |   ✅   |  ✅  |
126| **automated test suite**                        |   ✅   |   ✅   |  ❌  |
127
128**Identity support**:
129
130|                   | Github | Gitlab | Jira |
131| ----------------- | :----: | :----: | :--: |
132| **identities**    |   ✅   |   ✅   |  ✅  |
133| identities update |   ❌   |   ❌   |  ❌  |
134
135Note: as the target bug tracker require accounts and credentials, there is only
136so much that an exporter can do about identities. A bridge should be able to
137load and use credentials for multiple remote account, but when they are not
138available, the corresponding changes can't be replicated.
139
140**Bug support**:
141
142|                  | Github | Gitlab | Jira |
143| ---------------- | :----: | :----: | :--: |
144| **bugs**         |   ✅   |   ✅   |  ✅  |
145| comments         |   ✅   |   ✅   |  ✅  |
146| comment editions |   ✅   |   ✅   |  ✅  |
147| labels           |   ✅   |   ✅   |  ✅  |
148| status           |   ✅   |   ✅   |  ✅  |
149| title edition    |   ✅   |   ✅   |  ✅  |
150| Assignee         |   ❌   |   ❌   |  ❌  |
151| Milestone        |   ❌   |   ❌   |  ❌  |