Providing debug/troubleshooting info in Inkscape
TL;DR: What is done and what is missing?
-
Conceptual design and main UX decisions. Done, but could be reviewed. -
Wireframe. Done, but could be reviewed. -
Consider additional features like initiating debugging from Inkscape itself. -
Input by a seasoned dev on what debugging info would be relevant. -
UI file, if done in glade. -
Actual programming under the hood.
While discussing about the improvement of the About screen (inkscape!1186 (merged)), some of you came up with the idea of adding more detailed debug info beyond the version number that is included at the footer of the window.
The idea was very welcomed, and it escalated quickly from an additional button to a sub-menu and then to a whole new tab in the About screen, so we decided to split the debate into a separate issue.
After thinking a bit more about it, I think it should 'escalate' even more to take into account other parts of the experience of finding relevant info about Inkscape and reporting a bug from within the application itself. For example, the 'Help' menu itself. There are other pieces in the bug reporting process (website, chats, bug tracker, etc.), but we can get to them in a different issue.
To show the underlying complexity, I tried to represent several things in the following diagrams:
- The current sources of information.
- The items of the 'Help' menu that are relevant, and sometimes lead to those sources of information.
- The user journey as they set out to report a bug, find out how to do it, are asked for technical information, go back to find it, and hopefully end up making a decent bug report.
This is the current workflow when a user wants to report a bug:
The key pain points are:
- The user leaves Inkscape without key information.
- When asked for it, they have to gather it from different sources.
This would be a possible way of improving this:
In this case:
- A 'Technical info' screen is added, which acts as a dashboard. All information is gathered from the program and the system and clearly displayed and made easy to share.
- This screen is also connected to a modified entry in the 'Help' menu and works as a first stop in the 'Bug reporting' user journey, suggesting channels for assistance (chat) and information (website) and insisting that the user copies information before continuing.
- This way, the user leaves Inkscape with a clearer idea of where to go, and equipped with the info they will need.
While overthinking all this, I went as far as thinking of integrating the 'About memory' info in this new screen. I'm not sure it's relevant or if it's better used as a panel you can leave attached while you work, as it is now. In that second case, we could forget about that part and just leave it on the menu. Or display some basic memory usage in the 'Technical info' screen, and link from there to the 'About memory' side panel.
Also, that new panel could be a tab in the about screen as it was proposed before, but I'm getting the feeling that it might end up deserving its own window.
Note: I've been using the term 'technical info' instead of 'debug info' on purpose. I think that, if possible, we should adopt a language that works for users with different levels of software-related knowledge.
You all probably know much better than me how bug reporting or issue solving usually works, so just take this as a conversation starter and feel free to propose better approaches.
Also, in case you want to play with the diagrams above, I'm attaching an XML file you can edit using diagrams.net. debug-process.xml