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..272ad0cf94b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,115 @@ +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: 2 + 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..19519bb1823 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,6 +6,3 @@ contact_links: - name: I'm having issues using the software url: https://github.com/Hypfer/Valetudo/discussions/category_choices 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..c781a0f1d91 --- /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 is a mature and polished software project that has been going for 5+ years and is being used by the dev himself (me) on a daily basis.
+ Furthermore, as you might've noticed, I'm _very_ active in the support groups and am solely responsible for writing the documentation. + + I do that not only because I enjoy helping respectful people and want to ensure that everything stays on the right path, + but also because I believe that it is vital to hear about the issues, annoyances and roadblocks people struggle with. + + I think many projects subjected to growth tend to become worse _because_ the distance between the user and the developer/management/etc increases over time. + I do not want that to happen which is why I'm there, helping out, listening in and keeping track of problems and ideas to further improve the project. + +
+ + GitHub issues don't work very well for this approach, because they're tickets and tickets need a clear resolution in a predefined timeframe.
+ That's not how ideas and feedback work though. It's how contract work works, but I ain't no contractor. + + Because of that, 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" + + + 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. + + You don't have to be a developer to take part in such an exchange, but you do have to step out of the mindset of a customer that wants something to happen. + + - 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..41a6f5a94f4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/pls_support_robot.yml @@ -0,0 +1,63 @@ +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