aboutsummaryrefslogtreecommitdiffstats
path: root/doc/feature_matrix.md
blob: c902408ee6355b91860e0898f4cad739b1a0c0dd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# User facing capabilities

This 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.

As 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.

This 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.

βœ…: working  🟠: partial implementation  ❌: not working

## Other goals

Some goals don't really fit below, so I'll mention them here:
- 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
- project configuration (valid labels, ...)
- commit signature to fully authenticate user's interaction
- interface with the system keyring, to distribute and expose known public keys and allow checking signed commit in normal git workflow
- privileged roles (admin, ...) and enforcing the corresponding rules
- package the webui as a desktop app

Additionally, some other are captured as [Github issues](https://github.com/MichaelMure/git-bug/issues) or [Discussions](https://github.com/MichaelMure/git-bug/discussions). 

## Entities

The most high level overview of what kind of entities are supported and where.

|                | Core | CLI | TermUI | WebUI |
|----------------|:----:|:---:|:------:|:-----:|
| Identities     |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Bug            |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Board          |  🟠  | 🟠  |   ❌    |   ❌   |
| Pull-request   |  ❌   |  ❌  |   ❌    |   ❌   |
| Project Config |  ❌   |  ❌  |   ❌    |   ❌   |

More specific features across the board.

|                    | Core | CLI | TermUI | WebUI |
|--------------------|:----:|:---:|:------:|:-----:|
| Media embedding    |  🟠  |  ❌  |   ❌    |   ❌   |
| Fast indexing      |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Markdown rendering | N/A  |  ❌  |   ❌    |   βœ…   |

#### Identities

|                         | Core | CLI | TermUI | WebUI |
|-------------------------|:----:|:---:|:------:|:-----:|
| Public keys             |  🟠  |  ❌  |   ❌    |   ❌   |
| Private keys management |  🟠  |  ❌  |   ❌    |   ❌   |
| Identity edition        |  βœ…   |  βœ…  |   ❌    |   ❌   |
| Identity adoption       |  βœ…   |  βœ…  |   ❌    |   ❌   |
| Identity protection     |  🟠  |  ❌  |   ❌    |   ❌   |

#### Bugs

|                   | Core | CLI | TermUI | WebUI |
|-------------------|:----:|:---:|:------:|:-----:|
| Comments          |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Comments edition  |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Comments deletion |  βœ…   |  ❌  |   ❌    |   ❌   |
| Labels            |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Status            |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Title edition     |  βœ…   |  βœ…  |   βœ…    |   βœ…   |
| Assignee          |  ❌   |  ❌  |   ❌    |   ❌   |
| Milestone         |  ❌   |  ❌  |   ❌    |   ❌   |
 

## Bridges

### Importers

General capabilities of importers:

|                                                 | Github | Gitlab | Jira | Launchpad |
|-------------------------------------------------|:------:|:------:|:----:|:---------:|
| **incremental**<br/>(can import more than once) |   βœ…    |   βœ…    |  βœ…   |     ❌     |
| **with resume**<br/>(download only new data)    |   βœ…    |   βœ…    |  βœ…   |     ❌     |
| **media/files**                                 |   ❌    |   ❌    |  ❌   |     ❌     |
| **automated test suite**                        |   βœ…    |   βœ…    |  ❌   |     ❌     |

Identity support:

|                   | Github | Gitlab | Jira | Launchpad |
|-------------------|:------:|:------:|:----:|:---------:|
| **identities**    |   βœ…    |   βœ…    |  βœ…   |     βœ…     |
| identities update |   ❌    |   ❌    |  ❌   |     ❌     |
| public keys       |   ❌    |   ❌    |  ❌   |     ❌     |

Bug support:

|                  | Github | Gitlab | Jira | Launchpad |
|------------------|:------:|:------:|:----:|:---------:|
| **bug**          |   βœ…    |   βœ…    |  βœ…   |     βœ…     |
| comments         |   βœ…    |   βœ…    |  βœ…   |     βœ…     |
| comment editions |   βœ…    |   ❌    |  βœ…   |     ❌     |
| labels           |   βœ…    |   βœ…    |  βœ…   |     ❌     |
| status           |   βœ…    |   βœ…    |  βœ…   |     ❌     |
| title edition    |   βœ…    |   βœ…    |  βœ…   |     ❌     |
| Assignee         |   ❌    |   ❌    |  ❌   |     ❌     |
| Milestone        |   ❌    |   ❌    |  ❌   |     ❌     |

Board support:

|           | Github | Gitlab | Jira | Launchpad |
|-----------|:------:|:------:|:----:|:---------:|
| **board** |   ❌    |   ❌    |  ❌   |     ❌     |

### Exporters

**General capabilities of exporters**:

|                                                 | Github | Gitlab | Jira | 
|-------------------------------------------------|:------:|:------:|:----:|
| **incremental**<br/>(can export more than once) |   βœ…    |   βœ…    |  βœ…   |
| **with resume**<br/>(upload only new data)      |   βœ…    |   βœ…    |  βœ…   |
| **automated test suite**                        |   βœ…    |   βœ…    |  ❌   |

**Identity support**:

|                   | Github | Gitlab | Jira |         
|-------------------|:------:|:------:|:----:|
| **identities**    |   βœ…    |   βœ…    |  βœ…   |
| identities update |   ❌    |   ❌    |  ❌   |

Note: 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.

**Bug support**:

|                  | Github | Gitlab | Jira |         
|------------------|:------:|:------:|:----:|
| **bugs**         |   βœ…    |   βœ…    |  βœ…   |
| comments         |   βœ…    |   βœ…    |  βœ…   |
| comment editions |   βœ…    |   βœ…    |  βœ…   |
| labels           |   βœ…    |   βœ…    |  βœ…   |
| status           |   βœ…    |   βœ…    |  βœ…   |
| title edition    |   βœ…    |   βœ…    |  βœ…   |
| Assignee         |   ❌    |   ❌    |  ❌   |
| Milestone        |   ❌    |   ❌    |  ❌   |