Skip to content

Commit

Permalink
Add code of conduct, contributing and security policies
Browse files Browse the repository at this point in the history
  • Loading branch information
roderickvd committed Aug 22, 2024
1 parent 821e19e commit cc46fae
Show file tree
Hide file tree
Showing 3 changed files with 191 additions and 0 deletions.
63 changes: 63 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Code of Conduct for pleezer

## 1. Purpose

This Code of Conduct outlines our expectations for all those who participate in the pleezer project, as well as the consequences for unacceptable behavior. We invite all those who participate in pleezer to help us create safe and positive experiences for everyone.

## 2. Core Values

Our project is based on the following core values:

- Respect
- Collaboration
- Inclusivity
- Professionalism
- Accountability

## 3. Expected Behavior

We expect all project participants to exhibit these values in their interactions:

- Be respectful of others and their viewpoints
- Collaborate effectively with other project members
- Foster an inclusive environment where everyone feels welcome
- Maintain professionalism at all times
- Be accountable for your actions

## 4. Unacceptable Behavior

Unacceptable behaviors include:

- Harassment, discrimination, or personal attacks
- Trolling or spamming
- Sharing inappropriate content
- Violating copyright laws
- Any other behavior that goes against our core values

## 5. Consequences of Unacceptable Behavior

Unacceptable behavior will not be tolerated. The consequences for such behavior will depend on the severity of the violation and may include warnings, temporary or permanent bans from the project, and legal action if necessary.

## 6. Reporting Unacceptable Behavior

If you experience or witness unacceptable behavior, please report it by contacting the project author or using GitHub's anonymous "Report content" feature.

## 7. Scope

This Code of Conduct applies to all project spaces, including social media, events where project members are present, and any other interactions related to the project.

## 8. Contact Information

For any questions about this Code of Conduct, please refer to the contact details provided in the README.md file.

## 9. Changes to this Code of Conduct

This Code of Conduct may be revised and updated at any time. Changes will be posted on the project's GitHub repository.

## 10. Acknowledgment

By participating in this project, you acknowledge that you have read, understood, and agreed to abide by this Code of Conduct.

## 11. Adherence to Deezer's Terms of Service

In addition to this Code of Conduct, users of pleezer are expected to adhere to [Deezer's Terms of Service](https://www.deezer.com/legal/cgu). This includes, but is not limited to, using the software only for permitted purposes, such as personal or family use, and avoiding any activities that violate Deezer's policies or terms.
89 changes: 89 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Contributing to pleezer

Thank you for your interest in contributing to **pleezer**! Your support is crucial to improving this project. This guide will help you understand how to report bugs, submit pull requests, and engage with our community.

## Table of Contents

- [Code of Conduct and Project Governance](#code-of-conduct-and-project-governance)
- [Getting Started](#getting-started)
- [How to Contribute](#how-to-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Feature Requests](#feature-requests)
- [Pull Request Process](#pull-request-process)
- [Project History](#project-history)
- [Financial Contributions](#financial-contributions)
- [CI Pipeline](#ci-pipeline)
- [Automated Testing](#automated-testing)
- [Performance Testing](#performance-testing)
- [Coding Conventions](#coding-conventions)
- [Documentation](#documentation)
- [Acknowledgments](#acknowledgments)

## Code of Conduct and Project Governance

We require all contributors to adhere to our [Code of Conduct](CODE_OF_CONDUCT.md), which ensures a respectful and constructive environment for everyone. The project is currently maintained by the author, who holds the final decision-making power. We expect all contributors to resolve any conflicts, either technical or interpersonal, in a manner that aligns with the Code of Conduct. The final decision on any conflicts rests with the author.

## Getting Started

### Volunteer Project

**pleezer** is maintained by volunteers. We aim to review pull requests promptly, but response times may vary from a day to several weeks. If you feel a review is delayed, feel free to send a polite reminder. Peer reviews are also encouraged as the community grows.

## How to Contribute

### Reporting Bugs

1. **Check for Existing Issues**: Before reporting a bug, search the issue tracker to avoid duplicates.
2. **Create a GitHub Issue**: If the bug is new, create a [GitHub issue](https://github.com/roderickvd/pleezer/issues) and label it as "bug". Include as much detail as possible—steps to reproduce, logs, and screenshots are particularly helpful.

### Feature Requests

1. **Submit as GitHub Issues**: If you have an idea for a new feature, submit it as a [GitHub issue](https://github.com/roderickvd/pleezer/issues) with the "enhancement" label.
2. **Be Detailed**: Provide clear details about the feature you’re proposing to help us understand and prioritize it.

### Pull Request Process

1. **Create a Branch**: Always create a new branch for each feature or bug fix. Avoid committing directly to the `main` branch.
2. **Test Your Code**: Ensure your code works as expected before submitting a pull request. Cross-platform testing is encouraged if possible.
3. **Open a Pull Request**: Submit a pull request against the `main` branch. Include a clear description of your changes and reference any related issues.
4. **Review Process**: We will review your pull request as soon as possible, but response times can vary.
5. **Testing**: Although we encourage writing new tests, it’s not required at this stage because we do not yet have a test harness. Just make sure your code passes any existing tests.
6. **Documentation**: Contributions to documentation are highly valued. If your pull request includes changes that require documentation updates, please include them.

We will acknowledge contributors in the release notes unless they choose to opt out. Sponsoring the project via [GitHub Sponsors](https://github.com/sponsors/roderickvd) is also a meaningful way to contribute.

By contributing, you agree that your code will be licensed under the terms of the [Sustainable Use License](LICENSE.md).

## Financial Contributions

If you wish to support the project financially, you can do so through the [GitHub Sponsors program for @roderickvd](https://github.com/sponsors/roderickvd). Your support is greatly appreciated and will help ensure the continued development and improvement of **pleezer**.

## CI Pipeline

Our CI pipeline, managed with [GitHub Actions](https://github.com/roderickvd/pleezer/actions), includes the following workflows:

- **Cross-Compilation**: Checks for cross-compilation on Rust stable with every push and pull request.
- **Code Quality**: Checks code formatting and linting on Rust stable.
- **Weekly Maintenance**: Periodically checks for compilation on Rust beta to ensure readiness for the next stable release of Rust.

Please ensure your code passes these checks before submitting a pull request.

## Automated Testing

We currently do not have a test harness. However, we encourage you to thoroughly test your changes before submitting a pull request.

## Performance Testing

While we do not have a formal performance testing process, manual testing is encouraged. Keep in mind that the minimum supported platform for **pleezer** is a Raspberry Pi 3B+ with 1GB of RAM.

## Coding Conventions

We follow Rust's idiomatic style and use `rustfmt` and `clippy` to enforce formatting and linting. Please ensure your code passes these checks before submitting a pull request.

## Documentation

Our goal is to provide thorough documentation for **pleezer**. Contributions to improve documentation are highly valued. Although we currently have limited documentation, we aim to improve this over time and publish it to docs.rs when it's mature enough.

## Acknowledgments

We appreciate all contributions to **pleezer**. We will acknowledge contributors in the release notes unless they choose to opt out.
39 changes: 39 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Security Policy

## Supported Versions

The **pleezer** project is actively being developed and we currently only support the latest version. We recommend users to always update to the latest version of **pleezer** to ensure they have all the recent security updates and fixes.

| Version | Supported |
| ------- | ------------------ |
| Latest | :white_check_mark: |
| < Latest| :x: |

## Reporting a Vulnerability

We take the security of **pleezer** seriously. If you discover a security vulnerability within **pleezer**, please disclose it to us privately to avoid public exposure of the vulnerability until it's fixed.

For reporting security vulnerabilities, please do not use the GitHub issues or discussions. Instead, contact the author directly via email. The email address can be found in the [Contacting the Author](README.md#contacting-the-author) section of the README.md file.

When reporting a vulnerability, please provide detailed steps to reproduce the issue. This will help us understand the problem and fix it more quickly.

We will review and respond to your email as soon as possible, acknowledging your report and providing an estimated timeline for a fix. We will also notify you when the issue is resolved.

## Security Updates

When a security vulnerability is discovered and fixed, we will release a new version of **pleezer** as soon as possible. We will also provide a description of the vulnerability, its potential impact, and the steps we've taken to fix it in the release notes.

We strongly recommend users to regularly check for updates and always use the latest version of **pleezer**.

## Responsible Disclosure

We kindly ask that you give us a reasonable amount of time to fix the issue before you publish it. This helps to ensure that the vulnerability does not put other users at risk.

## Security Practices

As a user, it's important to follow good security practices when using **pleezer**. This includes:

- Keeping your `secrets.toml` file secure and private.
- Regularly updating **pleezer** to the latest version.

Remember, your security is also our priority. We appreciate your cooperation and understanding.

0 comments on commit cc46fae

Please sign in to comment.