by ktolsen » 2017-10-13 08:10
We literally just created this project a few hours ago, it's something I've been thinking of for years and just finally someone else took interest in. The idea is to create a more polished frontend similar to reportbug with ideally a core package and lots of different frontends like debconf has, and multiple backends to access this forum, the bts, mailing list, irc support, etc. It'd be a tiered support system that would attempt to solve the issue first, then check the bts, then go to irc, then if user isnt willing to sit there and get a solution it'd optionally forward the issue to mailing list or the issue tracker would allow responses to be logged into the issue and forwarded back to the user's supplied reply email or possibly viewed by a tracker id number. We'd want to use the existing systems in a synergistic fashion, rather than duplicate or consolidate them into a central database. The only idea for a central server component would be for metadata specific to the "ticket" that would point to any paste.debian.net logs, bugs filed, or other data on other services. I would like to see implementation of diagnostic trees that are well tested diagnostics, signed and trusted. An example I've been using is an issue I had recently where I had no sound in pianobar and mps-youtube but my sound worked anyhow. I'd fire up such a support client and select a program like pianobar, then enter in my issue "no sound" or such and it'd first do as reportbug does and gather info about pianobar, its dependancies, versions, etc, then it'd follow a diagnostic tree for "sound" issues, which would in such a case realize that pianobar depends on libao, so first it'd do a ALSA sound test, telling the user it's going to run "aplay test.wav" or such, then when they allow it to do so, it'll ask if they heard that. In this case I'd say yes, and it'd then run an libao sound test and ask if I hear it. .and I'd say no.. so now it knows that the problem is with libao.conf it'd check to see if libao.conf existed which in this case it didn't and then the obvious diagnostic tree would be since alsa works and libao doesnt, and there is no libao config, it needs to create a libao.conf that uses alsa as the default output. Problem solved. If it hadn't been solved, it would check the bts and show me bugs for pianobar, if I didn't see any relevant bugs it would connect to the IRC bot component and announce my issue to support channels and make the logs it compiled available to supporters and forward back to the client any responses to this issue. Ideally the bot will act as a proxy forwarding only stuff relevant to the issue at hand. "< dissbot> Issue #195724: no sound in pianobar" would appear in the channel and users could then using that id number to address this user.. now how that would work could be either through irc client scripts which help tab-complete that issue number so the bot knows that response belongs to that issue, or maybe you could /msg dissbot with a command telling it you're signing on to that issue so anything you say to dissbot is now going to that issue.. etc.. that makes it easier for the user because they dont see all the chatter only that relevant and it makes it easier to save the solutions onto the forums or forward it on to BTS or Mailing lists later if the issue isn't resolved in chat. It also would allow people not wanting to partake in this form of support to simply ignore the bot or anything being said to the bot which also can be done with scripts or built-in irc client features. People sitting around wanting to support an issue could also just ask the bot what open issues are available. These solutions would then be rated, like on most good open source forums, by the user which would add trust to the solutions and in the case of the diagnostic trees, it'd add a gpg signature to that tree increasing the trust of that diagnostic. The diagnostic trees are going to be the most complex part as they will require a high level of security and be used only for basic and well tested diagnostics to cut down on simple problems and to gather information to be used by other tiers of support. These will need to be updated and new ones created, and this will need to be done with special care and signed by multiple parties and still only allowed to do things by telling the user first what commands are running, showing them the output before its made available, and whenever possible locked down perhaps in schrooted environments or making use of kernel level security mechanisms to limit what can be done, and making backups of files modified and such. This will not allow running of arbitrary commands only highly trusted diagnostic trees selected for the issue by the user. So there will be essentially a client, server/tracker, bot, and possibly some irc client scripts for supporters who simply want to use their normal irc clients to interface with more ease. Its a very ambitious project unlike anything I've ever seen, that will have a lot of moving parts and require lots of help from people with experience in all areas of development from GUI programming, socket and network programming, trust based services, etc. This will also need to take special care to pay attention to the branch of the system, directing to appropriate channels, check for mixing and frakendebian situations, and so on.