From 4dcee5c20a2fd2b617508c87e65041657c0c9712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Beye?= Date: Thu, 8 Feb 2024 09:08:00 +0100 Subject: [PATCH] chore: Issue forms --- .github/ISSUE_TEMPLATE/bug_report.md | 40 ------- .github/ISSUE_TEMPLATE/bug_report.yml | 112 +++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 7 +- .github/ISSUE_TEMPLATE/feature_request.yml | 48 ++++++++ .github/ISSUE_TEMPLATE/pls_support_robot.yml | 51 +++++++++ 5 files changed, 213 insertions(+), 45 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/ISSUE_TEMPLATE/pls_support_robot.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 6f1d1f6b33f..00000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: Bug report -about: Please only open a bug report when you're sure that it is in fact a bug -title: '' -labels: bug -assignees: '' - ---- - - -## Describe the bug - - -## To Reproduce - - -### Screenshots - - -### Vacuum Model - - -### Valetudo Version - - -## Expected behavior - - -## Additional context - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..2a26bfd3750 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,112 @@ +name: Bug Report +description: Please only open a bug report when you're sure that it is in fact a bug in Valetudo +labels: ["bug"] +body: + - type: textarea + id: what-is-happening + attributes: + label: What is happening? + description: What behavior do you observe? + validations: + required: true + + - type: dropdown + id: broken-or-not-as-expected + attributes: + label: Broken or not as expected? + description: | + Do you believe that that is actually broken as in "Not behaving as it was obviously intended to behave", + or is it just not as expected as in "I've expected it to do X but it did do Y instead"? + options: + - Broken + - Not as expected + default: 1 + validations: + required: true + + - type: textarea + id: what-should-be-happening + attributes: + label: What should be happening? + description: | + What would be the correct behavior?
+ If you've previously selected "Not as expected", why did you expect that? Is it reasonable to expect that? + validations: + required: true + + - type: textarea + id: how-to-reproduce + attributes: + label: How to reproduce + description: Steps to reproduce the bug + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + + - type: dropdown + id: valetudo-relation + attributes: + label: Is this Valetudo-related? + description: | + Since Valetudo is not a custom firmware but just a cloud replacement running on the robot, + are you sure that the issue you're seeing relates to **the code of Valetudo** and not the vendor firmware? + options: + - Certainly Valetudo-related + - Probably Valetudo-related + - Might be Valetudo-related + - Could be Valetudo-related + - Probably not Valetudo-related + - Certainly not Valetudo-related + default: 1 + validations: + required: true + + - type: input + id: valetudo-version + attributes: + label: Please enter the Valetudo version you're using + validations: + required: true + + - type: input + id: robot + attributes: + label: Please enter the vendor and model of robot you're using + validations: + required: true + + - type: input + id: robot-firmware + attributes: + label: Please enter the robot's firmware version you're using + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: | + Anything else relevant to the situation.
+ Think: Browser, Phone, Home Assistant version, Wi-Fi access points, Etc. + validations: + required: true + + - type: textarea + id: context-reflection + attributes: + label: Context reflection + description: Thinking about what you said above about your setup, do you see anything non-standard about it that might be troublesome and cause this? + validations: + required: true + + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: If applicable, please add screenshots here + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 83ff20747bd..5ccfb009a4e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,8 @@ blank_issues_enabled: true contact_links: - name: I have a question - url: https://github.com/Hypfer/Valetudo/discussions/category_choices + url: https://github.com/Hypfer/Valetudo/discussions/new?category=q-a-support about: Ask your question in the Q&A section - name: I'm having issues using the software - url: https://github.com/Hypfer/Valetudo/discussions/category_choices + url: https://github.com/Hypfer/Valetudo/discussions/new?category=q-a-support about: Ask for help in the support section - - name: I've made a thing utilizing Valetudo - url: https://github.com/Hypfer/Valetudo/discussions/category_choices - about: Talk about your thing in the Show and tell section diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..15f6a7863e9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,48 @@ +name: Feature request +description: A request for a software feature or functionality +body: + - type: markdown + attributes: + value: | + Valetudo doesn't utilize GitHub issues for feature requests. + + This decision stems from the project's 5+ years of development and daily usage by myself, the developer. + I am taking care of the vast majority of daily support and documentation not only because I enjoy helping people but also because I believe that this is vital to hear about the issues, annoyances and roadblocks people struggle with. + + 99.9% of the software I use daily isn't built by me though, so in other contexts, I'm also a user like you. And, being a user, I've noticed that many projects subjected to growth tend to become worse. I believe that that is often because the distance between the user and the developer/management/etc increases over time. This is a fate I'd very much want to avoid for Valetudo. + +
+ + GitHub issues are not the right place for just being there, helping out, listening in and keeping track of problems, ideas and improvements. + This is because they're tickets and tickets need a clear resolution in a predefined timeframe. That makes any interaction over them asymmetric in various ways which harms actual understanding and interaction as humans. It also lacks the space, time and freedom that ideas and feedback need to grow and mature. + +
+ + Therefore, instead and as said, feature requests are handled by regular human dialog and me taking (mental) notes of things that come up. So, if you have an idea, feel free to talk with me about it in the support groups. + + I won't lie, I'm not super excited to hear them, because, since this is a mature and polished project, most of the time, "feature requests" fall in one of these three categories: + - "hey I see you made decision A, I'd've preferred if you'd've picked B instead" + or + - "I have this super niche need and I demand you to cater for it" + or + - "I believe that things should be this way and I'm going to scream until they are" + + I can't imagine anyone else getting excited about that either tbh. + + + That said, I do greatly enjoy interesting respectful productive exchange with other people as equals that respects boundaries. + This is one of the gifts of doing open-source software and I'm super glad about every instance where that happens. + + Being a developer is not a requirement for such an exchange, however, stepping out of the mindset of a customer that wants something to happen is. + + - type: checkboxes + id: checkboxes + attributes: + label: Conclusion + options: + - label: I have read the text above + required: true + - label: Having read the text above, I understand that there is no point in opening an issue for this + required: true + - label: I will not click the submit button + required: true diff --git a/.github/ISSUE_TEMPLATE/pls_support_robot.yml b/.github/ISSUE_TEMPLATE/pls_support_robot.yml new file mode 100644 index 00000000000..9db07335b58 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/pls_support_robot.yml @@ -0,0 +1,51 @@ +name: Robot support request +description: An inquiry to ask if a robot is supported or a request to support a robot +body: + - type: markdown + attributes: + value: | + The exhaustive list of supported robots can be found in the docs: https://valetudo.cloud/pages/general/supported-robots.html + + The following text can be found there and also in the FAQ. It is mirrored here purely for your convenience. + + + ## Robots that aren't supported + + While Valetudo tries its best to be generic and reuse code wherever possible, since it is not a custom firmware, the backend is basically a few huge chunks of code that are very specific to the respective vendor firmware and cloud architecture they try to emulate. + + Supporting any new vendors is thus quite a large task because not only requires it to write large parts of the backend again from scratch but also do the reverse engineering of data formats, authentication, communication and various functionality with no documentation from the vendor available. + + It's a time-consuming process that mostly involves random chance and that can only start once security vulnerabilities leading to system administrator level access on the hardware in question has been found. A similar reverse-engineering process without any documentation that is also quite time-consuming and mostly involves random chance. + +
+ + Valetudo only runs on the supported robots because security researcher [Dennis Giese](https://dontvacuum.me) found ways to root them. + + Rooting in this context means taking these locked-down IoT devices, finding and exploiting security flaws in their design and gaining permanent system administrator level access to them to allow for running additional custom software such as Valetudo and modifying the system to make the unclouding possible. + + These security flaws are all 0days of which we sometimes need multiple to achieve the rooting. + They're also specific to one specific vendor's implementation of something on one specific piece of hardware. + + With a public root release, these get burned and usually quickly fixed by the vendors, making finding a working exploit chain for newer models after the release harder or sometimes even impossible. + +
+ + Therefore, please refrain from asking if something that isn't on this list is supported. + Please do not ask if someone "tried" it. Please do not state that you would like it if something would be supported. + + Without explicitly mentioning this, readers often expect that something not being supported just means that no one has tried it yet, which is more akin to how e.g. running GNU+Linux on some random laptop works. + + Thank you for your understanding + + + - type: checkboxes + id: checkboxes + attributes: + label: Conclusion + options: + - label: I have read the text above + required: true + - label: Having read the text above, I understand that there is no point in opening an issue for this + required: true + - label: I will not click the submit button + required: true