Skip to content

Commit

Permalink
docs: Contributing.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Nov 13, 2023
1 parent ec3d3c6 commit 06defd0
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 2 deletions.
127 changes: 127 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Contributing to Valetudo

**Don't**


Heh, I bet you weren't expecting that. But it is actually the answer you're looking for.

### Code Contributions

Unless explicitly noted otherwise (e.g. in a Help Wanted issue), I'm usually not interested in any contributions to Valetudo.<br/>
This is because Valetudo is mature software that I'm personally using daily.

Due to that, pretty much all low-hanging-fruits are already gone and those that still _appear_ 🍐 to be there are either
not as trivial and simple as you'd think initially or conscious design decisions that should actually be like that.

Everything that _isn't_ a low-hanging-fruit on the other hand usually turns out to be such an invasive change, that I won't be accepting
any PRs for such changes, because I know from experience that after merging any such PR, I will be rewriting the whole
thing anyway, which not only doesn't save me any time or effort but actually costs me even more.

### A word on documentation

It's a similar story with documentation efforts. The docs are exactly how they are supposed to be. I know that the project
might not be immediately accessible to _everyone_ without further research but that filtering is a feature and not an oversight.

I do quite enjoy writing documentation, so I don't help in doing so. In fact, I think it's best if I do it, because I
know quite exactly how the software works.<br/>
Playing a game of telephone will already happen further down the information chain.
It shouldn't be part of the documentation itself.

The docs are the single source of truth, so they need to be truthy.

### Some context

Because I *support* newcomers and long-time-users *daily*, I pretty much know _exactly_ where the pain-points are,
what issues there might be, which things people struggle with and what the scope should be. Therefore, it is highly
unlikely that someone new to the project happens to see something obvious that all people just missed until they came along.

It might happen of course, but the chances of having another nonsense discussion are a few orders of magnitude higher.

I also have developed a quite good understanding of who this project is for and - more importantly - who it isn't for.
I can tell who will struggle with it, what drama that will cause and if it is worth it. The docs take that into account
and try to filter to avoid all this very exhausting drama.

### On (not) growing the target audience

Please please please keep those filters as-is. Please do not invite people that clearly can't pass those filters to the project.<br/>
Please do not attempt to "make things more accessible". Please do not make any video-tutorials.<br/>
It's not helping anyone.

At the end of the day, it will still be yours truly that has to deal with the support requests resulting from that.

I know that if you're on board the "_everyone_ MUST use this software and it MUST be _for everyone_ bandwagon",
you likely won't see what the issue with that is.<br/>
But **please**, **listen to me**. No one is winning if you facilitate a nonsense-DDoS against FOSS maintainers.

**Side-note:**<br/>
This btw is by no means FOSS-specific or even software- or IT-specific. It affects any "social" project/movement/idea.<br/>
Half-baked "I'd like to do good" **always** just backfires and **only** increases the workload on the existing volunteer structures.

Yes, short-term, there may be some benefits, sure, but that doesn't matter if long-term, volunteers quit and structures crumble,
because they were pushed into unsustainable conditions by well-meaning third-parties.
Third-parties that even feel proud having done "the right thing". Third-parties that are long gone once things start to fall
apart in consequence of their actions.

It's a shame, really, but it keeps repeating itself over and over and over _everywhere_.<br/>
It needs to stop and stopping starts with a **no**.

### Being for everyone

> A friend to all is a friend to none
>
> ― Taylor Swift

If there's one thing to take away from this text then it's that the opposite of _"not for everyone"_ isn't _"for everyone"_
but rather _"for no one"_, because things trying to be _"for everyone"_ will always collapse under their own weight.

<br/>

Please also note the **important distinction** between _"for anyone"_ and _"for everyone"_.<br/>
Valetudo actually is _"for anyone"_, because anyone can pick it up; no matter the specific selection of attributes such as
e.g., sex, gender, age, ethnicity and whatever other uncontrollable backgrounds you can come up with.

It is however not _"for everyone"_, because _"everyone"_ is a superset of _"anyone"_ that then includes wants, needs,
ideas, behaviour and whatnot.<br/>
Basically everything the individual _can_ and _does_ control.

Yes, I'm aware that controlling those things can sometimes be more challenging depending on background, but we're talking
about a cloud replacement for vacuum robots (read: luxury goods) maintained as a hobby project by some random guy on the internet and not
access to healthcare, public services, legal protection or anything vital like that provided by a nation-state or billion-dollar company.

Expectations need to be reasonable.

### Expectation management

On that note, to set expectations, you can basically think of Valetudo as **freeware with source available**, so that
others can learn from it, and you can be sure that I'm not doing something evil on your robot.

If you base the way you'd like to contribute something on that mental image, it's probably correct-ish.

### Final remarks

I know that this text will have offended quite a few people. I know they will say that this is _elitism_ or _not real open-source_
or really any other _digital blunt object used for smashing people on the head to try to force your will onto them_.

To those, I can say that this is _precisely_ why I'm not doing _open-source_ anymore. I've dropped the term and replaced
it with _opinionated_ software that just happens to be licensed under the same licenses.

_Open-source_ by the definition of that crowd is a bottomless pit that devours the souls of young, naive, motivated,
gullible and easy to exploit individuals. It burns them out to a crisp for personal and corporate profit.
It is so very unsustainable and inhumane. I'm not doing that anymore.

I'd also want to encourage other FOSS maintainers to say no. To set up boundaries and filters and stick to them.<br/>
You're already bringing a **ton** of value to other people. Don't ever forget that.
Anyone demanding even more is just being unreasonable.<br/>
It is **okay** to say no. It is **okay** to set up boundaries and not be for _everyone_.


<br/>

If you can understand what I'm saying here, feel free to stick around in the support groups :)

I for sure don't know everything and also can't do everything.<br/>
I absolutely need the input and help of other people and for that I'm glad.<br/>
Thanks for the support and for being part of the community &#9829;

Without people like you, the project certainly wouldn't be where it is today!
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,14 @@ There, you will find a list of [supported robots](https://valetudo.cloud/pages/g
## Further questions?
[Valetudo Telegram group](https://t.me/+wtIVqHUXoWljMDQy)

## Contributing

Make sure to familiarize yourself with the [./CONTRIBUTING.md](./CONTRIBUTING.md)


## Honourable mentions

Valetudo and its companion applications are developed using JetBrains IDEs such as [WebStorm](https://www.jetbrains.com/webstorm/).
Licenses for those have been provided for free by JetBrains to the project in context of [their open source support program](https://jb.gg/OpenSourceSupport) since multiple years now.

Thanks a lot for that!
Thanks a lot for that!
2 changes: 1 addition & 1 deletion docs/_pages/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ order: 30

Valetudo is the roman name for the greek goddess Hygieia, which is the goddess of health, cleanliness and hygiene.

## Can you support Robot Model XY? <a name="support-new-robot"></a>
## Can you support Robot Model XY? <a name="newbot"></a>

Sure! We'd be glad to look into your case. To help us help you, we only require you to buy and permanently
donate 3 units of the robot in question to us. (2 for HW Hacking, 1 for SW Hacking)
Expand Down

0 comments on commit 06defd0

Please sign in to comment.