taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit c5abdc459008578f9ed28008c152370b8d81f77e
parent fd942ad7d6e2c74a46c3116ac224c94474fa1b82
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Wed, 15 Apr 2026 10:29:10 +0200

draft new support process

Diffstat:
Mdeveloper/taler-developer-manual.rst | 4+++-
Msystem-administration/index.rst | 1+
Asystem-administration/support.rst | 216+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 220 insertions(+), 1 deletion(-)

diff --git a/developer/taler-developer-manual.rst b/developer/taler-developer-manual.rst @@ -234,7 +234,9 @@ We use the following conventions for the bug states: * FEEDBACK: When blocked on feedback from reporter or other developer. Assigned to other developer (but cannot be assigned to reporter, in this case MAY remain associated with the developer who expects - the feedback). + the feedback). If a bug is on feedback, it automatically should be + considered to be high-priority to give the feedback (as it is + blocking someone else!). * ACKNOWLEDGED: The bug has been reviewed, but no decision about what action to take has been made yet. Should not be worked on diff --git a/system-administration/index.rst b/system-administration/index.rst @@ -26,6 +26,7 @@ Internal System Administration uptime-kuma taler-monitoring-infrastructure backups + support prometheus prometheus-alerts nginx-prometheus-exporter diff --git a/system-administration/support.rst b/system-administration/support.rst @@ -0,0 +1,216 @@ +.. + This file is part of GNU TALER. + Copyright (C) 2026 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 2.1, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + + @author Christian Grothoff + +Support Process +############### + +This chapter documents the main support proess for GNU Taler users. +The goal is to ensure customers are kept in the loop and receive +timely feedback and quality resolutions. + + +Incoming +======== + +There are several ways how users may reach us for support: + +- Filing bugs at https://bugs.taler.net (Mantis) +- Contacting us via e-mail, usually support@taler.net or + a dedicated support e-mail address of the respective + Taler operator. +- Contacting us via e-mail at sales@taler.net or + a dedicated sales e-mail address of the respective + Taler operator. Those should soon be routed directly into the ERP. +- Phone calls (usually to the respective Taler operator). + For these, we should eventually set up an automatic + cascade. + +The next steps depend a bit on the type of issue, channel used +and the type of customer. + +Bugtracker +---------- + +If an issue was raised in the bugtracker, that is perfect and +it basically immediately goes into the analysis stage. + +Support E-mail +-------------- + +If raised via e-mail, there recipient should do some initial +triage. + +- If the request is likely to be an actionable bug in the documentation, software or + operations, a bug report should be filed on Mantis without personally + identifiable information about the user. If such information is critical to + the issue, it could be added as as a "private" note. If the issue could have + serious negative implications if disclosed to the public prematurely (like a + security problem on our end), it should be set to "private". +- If the request relates to needs for onboarding and commercial support, + a record for the merchant or bank should be created in the ERP and + the communication added there (if the support e-mail did not already + arrive into the ERP). The process continues with the "Sales" stage. +- If the support request is answered by existing documentation, the + e-mail should be answered by pointing to the existing documentation and + asking the user politely if that answers their question. If the user is + unhappy with the documentation or if them not finding it happens + frequently for a particular question, a bug should be opened indicating that + the documentation or its discoverability need to be improved. + (In this case, the user does NOT need to be pointed to that bug.) + If existing documentation does not answer the user, this is an + actionable bug (see above) and should be treated as a documentation + bug. + +Issues in the bugtracker added on behalf of customers +should always be filed in state "new" and not already be assigned. +They should be tagged with "Customer". + + +Support phone +------------- + +When receiving a customer call via phone, it is important to note the +following: + +- Name of the customer +- Type of customer (user, merchant, bank, other?) +- Contact information (e-mail? phone number!) +- Anything about the actual issue +- Date of the call + +These should be added to the bug tracker (if we have a problem) or +the ERP (if related to onboarding / sales) respectively. + +During the first phone call, focus on listening to the customer to make sure +you understand their issue as best as you can. You may point them already to +existing documentation, but should not promise that particular issues will be +fixed or within a certain timeline unless you are very sure that the timeline +can be met and will have management approval. If in doubt, you may forward +the customer to management. + + +Sales E-mail +------------ + +Sales E-mails should be added to the ERP under the respective customer. +The process then continues with the "Sales" stage. + + +Sales +===== + +The sales process follows the usual ERP processes from leads to conversion. In +general, it is important to identify blockers for the customer (such as +missing features) early on and to proceed once we are ready to follow through. + +If technical issues (incl. feature requests) arise during the sales process, +management should be consulted about making a commercial offer, addressing the +issue gratis, or refusing to address the request. If the customer accepts the +offer (or if management decided to address it gratis), a respective issue +should be opened on the bug tracker. + + +Analysis +======== + +Initial analysis of all incoming bugs is generally done by the management; +some executive will look over NEW bugs and assign a priority and set a staff +member to look into the issue. Developers may self-assign ("grab") incoming +issues that are clearly in their domain if they consider them clearly urgent +and suitable for fast resolution. However, any interference with customer +accounts or data (such as re-setting passwords) always requires prior +assignment of the issue to the staff member by management. + +The bug is first set to "feedback". At this stage, the developer MUST urgently +respond if the problem (and path to resolution) is clear, and what they think +is a realistic and conservative (!) timeline for fixing the issue. If the +issue is complex and likely to require changes in other subsystems, sub-bugs +may need to be opened by the developer, which may in turn require feedback +from other developers as well (so they should be assigned with "feedback" to +the other developers). After the feedback has been collected, the bug status +should be set back to "NEW". This even applies if the developer already fixed +the issue; if the issue has aready been resolved it should be noted where (in +Git? in testing? in production? which version?). + +Afterwards, management will determine a timeline for resolution based on the +feedback and either directly respond to the reporter or ask a suitable staff +member to communicate a response to the user (for reports received via phone +or e-mail). In general, the user must receive an answer that we are +"investigating the issue" including a link to the bug (unless it is set to +"private" and would thus not be visible to the user). The bug(s) are set to +"confirmed" and the request then proceeds to the action stage. + + +Action +====== + +Staff generally promote tasks from "confirmed" to "assigned" when they start +to work on them. In general, this should happen by checking the target release +and/or bug priority, but developers may have good reasons (context, +dependencies, etc.) to make adjustments. If it becomes likely (!) that +deadlines cannot be met, staff will put this in writing with the impacted +issues. In general, the subject of the bug should contain the amount of time +needed that is left for fixing the issue, and a deadline ([4h, +14.3.2034]). These numbers should be updated whenever predictions change or +work progresses. + +After the developer has fixed the issue, they draft a response to the customer +as a bug note. The general tone of the response should always be "we fixed", +not "I fixed", never put any blame on the user, and acknowledge mistakes +appropriately. The issue should then be scheduled for review by assigning the +bug to another staff member for "feedback". + + +Review +====== + +When receiving a (presumably) resolved bug for feedback, the staff member is +supposed to try to reproduce the original issue and check if is now +absent. This may again require sub-tasks such as packaging and deployment +(into staging systems) to be performed. Review does not have to be done in a +big QC session, but especially for complex issues it is recommended to look +into them during a QC session. + +If the issue is not addressed fully, it should go back into the "Action" +stage, otherwise it is assigned (status: assigned) to the staff member +responsible for communicating the resolution to the customer. It should be +noted that this only applies to bugs opened by customers, if no customer is +involved the bug may simply be marked as "resolved" directly. + + +Resolution +========== + +In this phase, the same staff member (if possible) who responded to the +customer during the analysis phase writes a brief notification to the customer +about the issue having been fixed based on the draft provided by the +developer. Depending on the customer, this may happen after confirmed fix is +in Git, deployed to staging or is available in production. The staff member +should consider when to send out the notification on a case-by-case basis, but +in general earlier is better as long as the infomation is useful for the +customer. Technical information may be shared, but the amount of sharing +should be tailored to what we believe the customer would want to comprehend. + +If the issue originated from a sales process, the ERP must also be +updated and (if applicable) the invoicing / billing process be +initiated. In this case, the response should be sent via the ERP. + +Afterwards the issue should be marked as "resolved" and is finally closed +by management with the next release cycle. + + +