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 | ❌ | ❌ | ❌ |