Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Create CODE_OF_CONDUCT.md #28633

Merged
merged 10 commits into from
May 4, 2024
80 changes: 80 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Code of Conduct

In order to deliver great features and support to the Renovate Open Source project, we request a high level of politeness and diligence from those wishing to participate here.

## Our priorities

We prioritize the sustainability of this project, which means prioritizing maintainers and contributors, many of whom donate their time to helping others.
The number one risk to Open Source projects is maintainer burnout, and the number one cause of maintainer burnout is impoliteness in various forms, usually from a minority of users.

## Politeness

It is unfortunately common in Open Source projects for a minority of users act with aggression and disrespect (e.g. "How dare you not fix this already"), but we do not accept it here.

We don't expect too much in terms of overt politeness - simply don't be impolite.
rarkins marked this conversation as resolved.
Show resolved Hide resolved
You can post a question, get an answer, and then never say thank you - that's totally fine!
But do not respond back with something like "Pity the documentation didn't say that in the first place" or "thanks for nothing", etc.

## Respect the time of those who help you

Respect is bidirectional, but unfortunately time is not an equal resource and those seeking help need to understand that maintainer time is limited.
We may see hundreds of different users/questions each week, and try to help every one of them.
In order to "scale" this support, responsibility is usually placed on the user to provide logs or reproductions of their problem.
If you're not willing to accept this, you are unlikely to get the support you're requesting.

It's also important to understand that the majority of time you see spent supporting users is voluntary and not paid - even by Mend.io staff.

## Blocking and unblocking
viceice marked this conversation as resolved.
Show resolved Hide resolved

We act quickly and decisively to address impoliteness from community members through automated comments, or temporary or permanent banning.
If you display repeated undesirable behavior (e.g. spamming maintainers with @mentions) or state openly your defiance to the rules ("How dare you ask me not to @mention you?") then you'll receive a block.
We do not engage in "debate" about such blocks, but we'll almost always undo a block for any user who demonstrates a newfound understanding of the rules or explains it was a misunderstanding.

In other words: we can be quick to both block and unblock, and all that matters is that you can conduct yourself in future according to the project's rules.

## How we prioritize work

When it comes to Renovate's core contributors and maintainers, we prioritize features and fixes:

- those affecting a large number of users, or
- regression errors (something used to work, but we broke it by accident), or
- features needed by a Mend.io customer (Renovate's sponsor/owner), or
rarkins marked this conversation as resolved.
Show resolved Hide resolved
- those we need personally, or just want to see done

A surprising number of users find it hard to accept that the Renovate core team or other community contributors won't build every feature or fix every bug which they'd like to see.
Participating in this repo is dependent on you finding a way to accept this reality, and not being pushy about it.
rarkins marked this conversation as resolved.
Show resolved Hide resolved
rarkins marked this conversation as resolved.
Show resolved Hide resolved

## Maintaining Issue and Code Quality
rarkins marked this conversation as resolved.
Show resolved Hide resolved

We use GitHub Discussions as an entry and triage point for Issues, and do not permit non-maintainers to directly create Issues themselves.
If we can confirm a bug or agree with a feature idea, and we have adequate information (typically a reproduction repository) for it to be actionable, then we will convert it to an Issue.
The purpose of the above is that Issues are mostly actionable - either by maintainers (if we prioritize them) or by community contributors.

Occasionally we may decline an idea because it's too niche - we judge that the additional complexity it would add to code and/or config would burden the project more than the feature would enhance it.

We apply extensive linting rules plus code review to all PRs in order to keep the code base maintainable.
It is not enough that a feature or fix simply "works", it must also be elegant enough to be maintainable in future.
We may apply multiple rounds of code review and suggestions, and sometimes this will feel like a burden, but ultimately our goal is to maintain a sustainable and maintainable project and this is a higher priority than whatever feature or fix you are trying to get merged.

## If you have important work to get done

People who work for large and/or important companies sometimes let the "pressure" of their role or task spill over into pushiness in Open Source.
Such people sometimes find it hard to accept that maintainers cannot spend significant time helping them troubleshoot a config issue, or talk them through logs, or providing a feature or fix they need immediately.
They are especially prone to "pinging" a maintainer with comments like `@rarkins how can we move this forward?`.

Please understand that you are not our customer, and this Open Source project like any other does not owe you even the responsiveness or support you're probably already receiving.
If you do happen to be a Mend.io customer then escalation of feature or support requests should be done via your Support or Customer Success representative and not in Open Source.

## Getting more help

If you need more help than this Open Source project can provide, or simply need guaranteed help, then there are two main options:
rarkins marked this conversation as resolved.
Show resolved Hide resolved

1. Become a customer of Mend.io, such as purchasing Renovate Enterprise, or
2. Engage privately with an experienced Renovate contributor on an hourly or project basis. Mend.io staff do not currently offer this, but one of Renovate's non-Mend.io employed maintainers who otherwise works voluntarily on the project is available for such consulting work.
rarkins marked this conversation as resolved.
Show resolved Hide resolved

## Feedback

We are happy to engage in any respectful discussion about the above, and even to accept PRs improving any of this text.
We won't debate on social media or go "off topic" in GitHub Discussions.

Ultimately, this project's public track record of continuous feature delivery and excellent community support are the best indicators that this approach is working.