From 3c1b8fd044be73c3c860ce68a19977b985688e30 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Mon, 23 Jan 2023 22:48:44 +0100 Subject: doc: add a feature matrix --- doc/architecture.md | 4 +- doc/feature_matrix.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 doc/feature_matrix.md (limited to 'doc') diff --git a/doc/architecture.md b/doc/architecture.md index 5f81462b..395886ea 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -88,7 +88,7 @@ The package `termui` contains the interactive terminal user interface, implement ## graphql -The package `graphql` implement the GraphQL API, mapping the data model and providing read/write access from outside of the process. This API is in particular used by the webUI but could be used to implement other user interfaces or bridges with other systems. +The package `graphql` implement the GraphQL API, mapping the data model and providing read/write access from outside the process. This API is in particular used by the webUI but could be used to implement other user interfaces or bridges with other systems. ## webui @@ -96,7 +96,7 @@ The package `webui` hold the web based user interface, implemented in both go an The javascript code is compiled and packaged inside the go binary, allowing for a single file distribution of git-bug. -When the webUI is started from the CLI command, a localhost HTTP server is started to serve the webUI resources (html, js, css), as well as the GraphQL API. When the webUI is loaded in the browser, it interact with the git-bug process through the GraphQL API to load and edit bugs. +When the webUI is started from the CLI command, a localhost HTTP server is started to serve the webUI resources (html, js, css), as well as the GraphQL API. When the webUI is loaded in the browser, it interacts with the git-bug process through the GraphQL API to load and edit bugs. ## bridge diff --git a/doc/feature_matrix.md b/doc/feature_matrix.md new file mode 100644 index 00000000..91abfba2 --- /dev/null +++ b/doc/feature_matrix.md @@ -0,0 +1,124 @@ +# 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 than 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 + +## Entities + +The most high level overview of what kind of entities are supported and where. + +| | Core | CLI | TermUI | WebUI | +|--------------|:----:|:---:|:------:|:-----:| +| Identities | ✅ | ✅ | ✅ | ✅ | +| Bug | ✅ | ✅ | ✅ | ✅ | +| Board | 🟠 | 🟠 | ❌ | ❌ | +| Pull-request | ❌ | ❌ | ❌ | ❌ | + +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**
(can import more than once) | ✅ | ✅ | ✅ | ❌ | +| **with resume**
(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**
(can export more than once) | ✅ | ✅ | ✅ | +| **with resume**
(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 | ❌ | ❌ | ❌ | -- cgit