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 7, 2024
1 parent 6b15920 commit 0f0c8ca
Show file tree
Hide file tree
Showing 5 changed files with 226 additions and 43 deletions.
40 changes: 0 additions & 40 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

115 changes: 115 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -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<br/>
> "Not behaving as it was obviously intended to behave"<br/>
or is it just not as expected as in<br/>
> "I've expected it to do X but it did do Y instead"<br/>
?
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?<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

3 changes: 0 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -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.<br/>
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.

<br/>

GitHub issues don't work very well for this approach, because they're tickets and tickets need a clear resolution in a predefined timeframe.<br/>
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.<br/>
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.<br/>
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
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/pls_support_robot.yml
Original file line number Diff line number Diff line change
@@ -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.

<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.<br/>
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.<br/>
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 0f0c8ca

Please sign in to comment.