Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Contributing to Prasmoid

First of all, thank you for considering contributing to Prasmoid! We welcome any and all contributions, from bug reports to new features. This document will guide you through the process.

## How to Contribute

We use the standard GitHub flow for contributions. Here's a quick overview:

1. **Fork the repository** to your own GitHub account.
2. **Create a new branch** for your changes.
3. **Make your changes** and commit them with a clear and descriptive commit message.
4. **Run the local CI checks** to ensure your changes meet our standards.
5. **Push your changes** to your fork.
6. **Submit a pull request** to the `main` branch of the Prasmoid repository.

## Development Setup

To get started with development, you'll need to set up your local environment. Here's what you'll need:

- **Go:** Version 1.24.x or later.
- **gettext:** A tool for internationalization.
- **plasma-sdk:** The SDK for developing Plasma widgets.

```bash
# For Debian/Ubuntu
sudo apt install gettext plasma-sdk

# For Fedora
sudo dnf install gettext plasma-sdk
```

Once you have these dependencies installed, you can set up the project with the following commands:

```bash
# Clone your fork of the repository
git clone https://github.com/YOUR_USERNAME/prasmoid.git
cd prasmoid

# Install Go dependencies
go mod download
```

## Coding Standards

We use `golangci-lint` to enforce code quality. You can run all the necessary checks with our local CI command:

```bash
go run ./dev/main.go ci
```

This command will run all the necessary checks.

## Commit Messages

We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification for our commit messages. This helps us maintain a clear and descriptive commit history.

Each commit message should consist of a **type**, a **scope** (optional), and a **description**.

```
<type>(<scope>): <description>
```

- **type:** `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
- **scope:** The part of the codebase you're changing (e.g., `preview`, `ci`, `docs`).
- **description:** A short summary of the changes.

## Pull Request Process

Before submitting a pull request, please ensure the following:

- Your code builds and runs without errors.
- All tests pass. You can run them with `go test ./...`.
- The local CI checks pass. Run `go run ./dev/main.go ci`.

Your pull request should have:

- A clear and descriptive title.
- A detailed description of the changes you've made.
- A reference to the issue it resolves (e.g., `Closes #123`).

## Code of Conduct

This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ Prasmoid provides a comprehensive set of commands to manage your plasmoid projec
| `commands remove` | Removes a custom command. | `prasmoid commands remove [-n <name>]` <br> `-n, --name`: Command name. |
| `i18n` | Handles internationalization tasks. | See subcommands below. |
| `i18n extract` | Extracts strings for translation from metadata and QML files. | `prasmoid i18n extract` <br> `--no-po`: Skip `.po` generation. |
| `i18n compile` | Compiles `.po` files into `.mo` files for use in plasmoids. | `prasmoid i18n compile` <br> `-s, --silent`: Suppress output. |
| `i18n compile` | Compiles `.po` files into `.mo` files for use in plasmoids. | `prasmoid i18n compile` <br> `-s, --silent`: Suppress output. |
| `i18n locales` | Manages supported locales. | See subcommands below. |
| `i18n locales edit` | Launches locale selector to edit supported locales. | `prasmoid i18n locales edit` |
| `regen` | Regenerates config or type definition files. | See subcommands below. |
Expand Down Expand Up @@ -336,6 +336,8 @@ We welcome contributions from the community! Whether it's bug reports, feature r
- **Report Bugs**: If you find an issue, please open a [GitHub Issue](https://github.com/PRASSamin/prasmoid/issues).
- **Suggest Features**: Have an idea for a new feature? Open an issue to discuss it.

For more information on how to contribute, see the [CONTRIBUTING.md](CONTRIBUTING.md) file.

---

## 💖 Credits
Expand Down
Loading