# Code of Conduct

This code of conduct outlines our expectations for the people involved with this project. We, as members, contributors,
and leaders, are committed to fostering a welcoming and inspiring project where anyone can participate with the
expectation of a harassment-free experience, as outlined in this code of conduct.

The goal of this document is to set the overall tone for our community. It is here to outline some of the things you can
and can't do if you wish to participate in our community.

However, it is not intended as a rulebook containing an exhaustive list of permitted and prohibited actions. Social
conduct varies between situations and individuals, but we should all do our best to create a welcoming and positive
experience for everyone.

We value many things beyond just technical expertise, including collaboration and supporting others within our
community. Providing a positive experience for others can have a much more significant impact than simply providing the
correct answer.

## Harassment

We share a common understanding of what constitutes harassment as it applies to a professional setting. Although this
list cannot be exhaustive, we explicitly honor the following "protected attributes": **diversity in age, gender,
culture, ethnicity, language, national origin, political beliefs, profession, race, religion, sexual orientation,
socioeconomic status, disability and personal appearance**. We will not tolerate discrimination based on any of the
protected characteristics above, including others not explicitly listed here. We consider discrimination of any kind to
be unacceptable and immoral.

Harassment includes, but is not limited to:

- Offensive comments (or "jokes") related to any of the above mentioned attributes.
- Deliberate "outing"/"doxing" of any aspect of a person's identity, such as physical or electronic address, without
  their explicit consent, except as necessary means to protect others from intentional abuse.
- Unwelcome comments regarding a person's lifestyle choices and practices, including those related to food, health,
  parenting, drugs and employment.
- Deliberate misgendering, including deadnaming or persistently using a pronoun that does not correctly reflect a
  person's gender identity. You should do your best to address people by the name/pronoun they give you when not
  addressing them by their username or handle.
- Threats of physical or psychological violence.
- Incitement of violence towards any individual, including encouraging a person to engage in self-harm.
- Publishing private communication without consent, even if non-harassing.
- A pattern of inappropriate behavior, such as unwelcome intimacy or persistent teasing after a request to stop.
- Continued one-on-one communication after requests to cease.
- Sabotage of someone else's work or intentionally hindering someone else's performance.

## Plagiarism

Plagiarism is the re-use of someone else's work (e.g., binary content such as images, textual content such as an
article, but also source code, or any other copyrightable resources) without the permission or a license right from the
author. Claiming someone else's work as your own is not only unethical and disrespectful to the author, but also
illegal in most countries. You should always respect the author's wishes, and give credit where credit is due.

### Intentional vs. Unintentional Plagiarism

If we find that you've **intentionally** attempted to add plagiarized content to our code-base, you will likely face a
**permanent ban** from any future contributions to this project's repository. We will, of course, do our best to
remove, or properly attribute this plagiarized content as quickly as possible.

Unintentional plagiarism will not be punished as harshly, but nevertheless, it is your responsibility as a contributor
to check where the code you're submitting comes from, and so, repeated submissions of such content, even after warnings,
may still result in a ban.

### Understanding code licensing

Please note that an online repository **without a license** is presumed to only be source-available, **NOT
open-source**. This means the work is **still protected by author's copyright**, automatically imposed over it and
without any license extending that copyright, you have no legal rights to use such code. **Simply finding publicly
posted code does not grant permission to reuse it in other projects.** This code may be available to be seen by anyone,
but that does not mean it's also available to be used by anyone in any way they like.

Another important note to keep in mind is that **even if a project has an open-source license**, that license may have
conditions which are **incompatible** with our codebase. For example, some licenses require that all linked code be
licensed under the same terms, which may not align with our project's licensing. Always review and understand a license
before using code under it — **simple attribution often isn't enough**.

??? tip "Learn more about software licensing"

    If you are new to software licensing, you can check out [this](https://itsdrike.com/posts/software-licenses/)
    article, which does a good job at explaining the basics.

## Generally inappropriate behavior

Outside of just harassment and plagiarism, there are countless other behaviors which we consider unacceptable, as they
may be offensive or discourage people from engaging with our community.

**Examples of generally inappropriate behavior:**

- The use of sexualized language or imagery of any kind
- The use of inappropriate images, including in an account's avatar
- The use of inappropriate language, including in an account's nickname
- Any form of spamming, flaming, baiting or other attention-stealing / disruptive behavior that derails discussions
- Discussing topics that are overly polarizing, sensitive, or incite arguments.
- Responding with "RTFM", "just google it" or similar response to help requests
- Other conduct which could be reasonably considered inappropriate

**Examples of generally appropriate behavior:**

- Being kind and courteous to others
- Collaborating with other community members
- Gracefully accepting constructive criticism
- Using welcoming and inclusive language
- Showing empathy towards other community members

## Scope

This Code of Conduct applies within all community spaces, including this repository itself, conversations on any
platforms officially connected to this project (such as in GitHub issues, emails or platforms like discord). It also
applies when an individual is officially representing the community in public spaces. Examples of representing our
community include using an official social media account, or acting as an appointed representative at an online or
offline event.

All members involved with the project are expected to follow this Code of Conduct, regardless of their position in the
project's hierarchy, this Code of Conduct applies equally to contributors, maintainers, and those seeking help or
reporting bugs.

## Enforcement Responsibilities

Whenever a participant has made a mistake, we expect them to take responsibility for their actions. If someone has been
harmed or offended, it is our responsibility to listen carefully and respectfully, and to do our best to right the
wrong.

Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take
appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening,
offensive, harmful, or otherwise undesirable.

Community leaders have the authority and responsibility to remove, edit, or reject any contributions — such as comments,
commits, code, wiki edits, issues, or Discord messages — that violate this Code of Conduct. When appropriate, they will
also make sure to communicate the reasons for moderation decisions.

If you have experienced or witnessed unacceptable behavior constituting a code of conduct violation or have any other
code of conduct concerns, please let us know and we will do our best to resolve this issue.

## Reporting a Code of Conduct violation

If you think that someone is violating the Code of Conduct, you can report it to any repository maintainer. When doing
so, follow these steps:

1. Contact a repository maintainer via email or Discord DM. Avoid using public channels for these reports.
2. When submitting the report, make sure to provide all the necessary details of the incident, including context and
   relevant links/screenshots.
3. We also kindly ask that you maintain confidentiality and avoid any public discussions of the violation.

## Sources

The open-source community has an incredible amount of resources that people have freely provided to others and we all
depend on these projects in many ways. This code of conduct article is no exception and there were many open source
projects that has helped bring this code of conduct to existence. For that reason, we'd like to thank all of these
communities and projects for keeping their content open and available to everyone, but most notably we'd like to thank
the projects with established codes of conduct and diversity statements that we used as our inspiration. Below is the
list these projects:

- Python: <https://www.python.org/community/diversity/>
- Contributor Covenant: <https://www.contributor-covenant.org/>
- Rust-lang: <https://www.rust-lang.org/policies/code-of-conduct>
- Code Fellows: <https://github.com/codefellows/code-of-conduct>
- Python Discord: <https://www.pythondiscord.com/pages/code-of-conduct/>
