Skip to content

Commit

Permalink
chore: Issue forms
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Feb 8, 2024
1 parent 6b15920 commit 4dcee5c
Show file tree
Hide file tree
Showing 5 changed files with 213 additions and 45 deletions.
40 changes: 0 additions & 40 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

112 changes: 112 additions & 0 deletions .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?<br/>
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.<br/>
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

7 changes: 2 additions & 5 deletions .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
48 changes: 48 additions & 0 deletions .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.
<br/>
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.
<br/>
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
51 changes: 51 additions & 0 deletions .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.

<br/>

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.

<br/>

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

0 comments on commit 4dcee5c

Please sign in to comment.