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