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

Added Licensing, CLA & Contribution Guidelines #76

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
68 changes: 68 additions & 0 deletions .github/CLA
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
### Contributor License Agreement for j0be/PowerDeleteSuite

Thank you for your interest in contributing to j0be/PowerDeleteSuite! This Contributor License Agreement (CLA) outlines the terms under which you contribute to the project. By submitting your contributions, you agree to the following:

### 1. **Definitions**

- "Project": Refers to the software and/or documentation maintained under the name j0be/PowerDeleteSuite, which is licensed under the GNU General Public License version 2 (GPLv2).
- "Contributor": A person or entity who submits a contribution to the project.
- "Contribution": Any code, documentation, or other materials submitted to the project by the Contributor, which may be incorporated into the project.

### 2. **Your Rights and Responsibilities**

- By submitting a Contribution, you assert that you hold the necessary rights to make the contribution and that it does not infringe on the rights of any third party.
- You agree that all Contributions you submit to the project will be licensed under the terms of the GNU General Public License version 2 (GPLv2) or any later version, which means that the Contributions will remain free and open source, ensuring the freedoms to run, study, modify, and share the software.

### 3. **Grant of License**

- **Grant of Copyright License**: You hereby grant to the project maintainers and to the community a worldwide, non-exclusive, royalty-free license to use, reproduce, modify, display, perform, sublicense, and distribute your Contribution under the terms of the GNU GPLv2.
- **Grant of Patent License**: You further grant to the project maintainers and the community a worldwide, non-exclusive, royalty-free license to use any patents, trademarks, or other intellectual property rights you may hold, which are necessary for the use or distribution of your Contribution under the GPLv2.

### 4. **Maintaining the Four Freedoms**

The project is committed to preserving and protecting the four freedoms as defined by the Free Software Foundation:

1. The freedom to run the program as you wish, for any purpose.
2. The freedom to study how the program works, and change it so it does your computing as you wish.
3. The freedom to redistribute copies so you can help your neighbor.
4. The freedom to distribute copies of your modified versions to others.

As a contributor, you agree that your Contributions will be made available under the GPLv2 license, ensuring these freedoms are upheld for all users and contributors.

### 5. **Contributions Are Voluntary**

- You are not required to contribute to this project. All contributions are voluntary, and you retain the right to distribute your Contributions elsewhere, subject to the GPLv2.
- You are also free to decide whether or not to submit any particular Contribution, and whether or not you want to submit your Contributions under the terms of this CLA.

### 6. **No Warranty**

The project is provided "as is" without any warranties of any kind, either express or implied, including but not limited to warranties of merchantability or fitness for a particular purpose. By contributing, you agree that you are submitting your Contributions at your own risk and that the project maintainers are not responsible for any damages arising from the Contributions.

### 7. **Contribution Guidelines**

- Before submitting any contributions, please ensure that they comply with the project's contribution guidelines, including coding standards, documentation practices, and other project-specific rules.
- We encourage contributions that are respectful and inclusive of all contributors, ensuring that the project remains a welcoming environment for everyone.

### 8. **Revocation of CLA**

- If a contributor feels their rights to contribute have been compromised, they may withdraw their contributions from the project at any time, provided such withdrawal does not affect previously granted licenses or the public's use of prior versions of the project under the GPLv2.

### 9. **Agreement to the CLA**

By submitting a Contribution to j0be/PowerDeleteSuite, you agree to the terms of this CLA. You represent that you are legally authorized to submit the Contribution, and that your Contribution complies with the project's contribution guidelines.

You agree that the project maintainers may update this CLA from time to time and that any new contributions will be governed by the updated CLA, which will be made publicly available.

---

### Signature

Please sign and date below to acknowledge that you agree to the terms of this Contributor License Agreement.

Contributor's Full Name: __________________________

Contributor's Email Address: _______________________

Signature: ________________________________________

Date: ____________________________________________
263 changes: 263 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,263 @@
# CONTRIBUTING

---

---

# Desired Contributions

---

We welcome any improvements to PowerDeleteSuite's [README.md](http://README.md) documentation. A more comprehensive guide would greatly benefit users.

For additional contribution opportunities, please check out the [issues](https://github.com/j0be/PowerDeleteSuite/issues) page.

---

---

# Code Standards

---

## Code Conventions

### Naming

All variables and functions must be named in camelCase format.

- Example: `checkBookmarkletVersion`, `applyStyles`, `handleSingle` .

Variables and functions must be descriptive and self-documenting whenever possible.

### White Space, Indentation & Comments

*White Space*:

- No trailing whitespace at the end of lines.
- One blank line should exist between functions as well as between logical sections of code within functions.
- There should be spaces:
- After commas in lists.
- Around operators (e.g. `+`, `-`, `*`, `/`, `=`, `>`, `<`, …).
- After keywords (e.g. `if`, `else`, `for`, …).
- Padding content inside of curly braces `{ <content> }` .

*Indentation*: This project uses two spaces for indentation.

*Comments*:

- Every file must begin with a comment block matching the one below outlining the licensing information of the project.

```
/*
* This file is part of j0be/PowerDeleteSuite.
*
* j0be/PowerDeleteSuite is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* j0be/PowerDeleteSuite is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License version 2
* along with j0be/PowerDeleteSuite. If not, see <http://www.gnu.org/licenses/>.
*/
```

- If your code fails to be self-documenting, please utilize general comments in a Documentation Block Comment. Read more [here](https://jsdoc.app/about-getting-started) if you are not familiar.

### String Literals

Single quotes are to be used when deliminating string literals.

### Error Handling

All contributions must implement robust error handling using try-catch blocks or similar mechanisms. Specifically, code should catch and handle exceptions for network requests, file operations, and data parsing to prevent application crashes.

### Linters

This project would benefit from implementing [ESLint](https://eslint.org/) to ensure consistent code style across all contributions. These tools can automatically enforce our coding standards and conventions.

Contributors should run ESLint before submitting pull requests to maintain code quality.

---

---

# Workflow

---

## Forking

**Please do not fork this project.**

Contributions should be achieved through branches set for deletion upon merge approval/denial.

---

## Branching

Branch names shall be prefixed with their applicable tag:

- `feature/` for new features.
- `issue<#>/` for addressing issues with the corresponding number of the issue being addressed (see below).

Example: `issue74/<your-branch-name>` .
See exampleOfIssueNumber.png for reference.

- `generic/` for maintenance tasks and updates (refactoring for example).
- `documentation/` for changes to the documentation.
- Please ensure all of these changes reside in the `.github` directory.

Creating your branch:

- Clone the repository.
- Run this command when you have navigated to your local project’s directory:

```bash
git checkout -b <branch-name>
```

- Ensure that any commits are pushed only into your branch by using this command:

```bash
git push origin -u origin <your-branch-name>
```

- This ensures your local branch has a remote tracking branch of the same name referring to an upstream branch in your remote repository.
- This avoids pushing all matching branches.

Synchronizing your Branch:

- When creating your branch, make sure you are branching from the master. This ensures that your work is based on the last stable version of the code.
- To ensure your project is up-to-date with the latest changes in the master, please regularly sync your branch (every time you begin work again) in order to avoid wasted time.
To sync your branch run this command after you have navigated to your local project’s directory:

```bash
git fetch origin
```


---

## Commits

### Commit Message Guidelines

*Title***:** Brevity is appreciated here; be descriptive but be brief.

*Content*: Please add at least two sentences describing your changes if they are not immediately evident or self-explanatory.

*Footer*: The last section of your commit should address any issues this change addresses.

### Template

```
<Title>
<Content>
<Footer>
```

```
Added Licensing, CLA & Contribution Guidelines
Created a directory to house github files named .github.
Created a CLA for all potential contributors to sign prior to pull requests.
Added the GPLv2 License to the project and all project files.
Closes issue #46
```

### Frequency

Push to your branch at the end of every working period. j0be/PowerDeleteSuite is not responsible for any lost, uncommitted code due to user error.

---

## Pull Requests

### Pull Request Message Guidelines

Follow the guidelines present for commit messages (above).

### How to Submit a Pull Request

To submit a pull request, navigate to your branch within the repository (refer to image.png).

Once you have pushed your changes, click on where it says “This branch is <#> commits ahead of….” (refer to image 1.png).

If your branch is behind the master, it is your responsibility to sync your repository *BEFORE* submitting a pull request. Difficult merges will not be the responsibility of j0be or any subsidiaries.

Next, double check your branch is merging into the master, and click “Create pull request” (refer to image 2.png).

Ensure your title and content are consistent with the message guidelines above, and “Create pull request” (refer to image 3.png).

---

## Code Review

We welcome your contributions to j0be/PowerDeleteSuite.

By adhering to guidelines, your pull requests are more likely to be properly reviewed and integrated into the project.

### Reviewer

The Reviewer checks the code to make sure it satisfactorily adheres to the guidelines established above and tests the code for functionality and bugs.

### Requirements

*Code Conventions*: Including entity naming, white space, indentation, comments, strings, error handling, and the use of ESLint as outlined above.

*Workflow*: Including forking, branching, committing, and creating pull requests, as outlined above.

### Anticipated Response time

We intend to review and respond to all pull requests but sometimes, life gets in the way.

Here, we like to go with the flow and get there when we get there.

---

---

# Community Guidelines

---

## Code of Conduct

Refer to the [Contribution License Agreement](/.github/CLA)

---

## Communication Platforms

[r/PowerDeleteSuite](https://www.reddit.com/r/PowerDeleteSuite/)

---

---

# Licensing

---

### License

j0be/PowerDeleteSuite is licensed under the GNU General Public License v2.0 (GPL-2.0).

See the [LICENSE](https://www.notion.so/CONTRIBUTING-197f5e03d29880e3bf8ce4e247406ed7?pvs=21) file for more details.

---

### Contributor License Agreement (CLA)

The CLA can be found [here](/.github/CLA). Please fill out your information prior to creating a pull request.

---

---

Author: forma-cristata
Loading