feature_matrix.md

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