Browse Source
* added contribution guidelines doc * Update packages/web/CONTRIBUTIONS.md Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>pull/792/head
committed by
GitHub
1 changed files with 150 additions and 0 deletions
@ -0,0 +1,150 @@ |
|||||
|
# Contributing to Meshtastic Web |
||||
|
|
||||
|
Thank you for your interest in contributing to **Meshtastic Web**! 🎉 |
||||
|
We welcome all contributions—whether it’s fixing a typo, improving documentation, adding new features, or reporting bugs. This document outlines how to get started and the conventions we follow. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 📋 Code of Conduct |
||||
|
We follow the [Meshtastic Code of Conduct](https://meshtastic.org/docs/legal/conduct/). |
||||
|
Please make sure you are familiar with it before contributing. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🚀 Getting Started |
||||
|
Before making changes, please take some time to explore the repository and its monorepo structure. |
||||
|
Understanding how the packages are organized will make it much easier to contribute effectively. |
||||
|
|
||||
|
[Meshtastic Web](https://github.com/meshtastic/web/) |
||||
|
|
||||
|
### Prerequisites |
||||
|
- [Node.js](https://nodejs.org/) (v22 or later) |
||||
|
- [pnpm](https://pnpm.io/) (v10.14.x or later) |
||||
|
- Git |
||||
|
|
||||
|
### Installation |
||||
|
Clone the repo and install dependencies: |
||||
|
|
||||
|
```bash |
||||
|
git clone https://github.com/meshtastic/web.git meshtastic-web |
||||
|
cd meshtastic-web |
||||
|
pnpm install |
||||
|
``` |
||||
|
|
||||
|
### Development |
||||
|
Start the development server: |
||||
|
|
||||
|
```bash |
||||
|
pnpm --filter @meshtastic/web dev |
||||
|
``` |
||||
|
|
||||
|
Once running, the site will be available at: |
||||
|
👉 **http://localhost:3000** |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🗂 Repository Structure |
||||
|
Meshtastic Web uses a **monorepo** setup managed with **pnpm workspaces**: |
||||
|
|
||||
|
``` |
||||
|
/packages |
||||
|
├─ web # React frontend |
||||
|
├─ core # Shared types & logic |
||||
|
├─ transport-* # Transport layer packages |
||||
|
└─ ...other packages |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## ✅ Contribution Workflow |
||||
|
|
||||
|
1. **Fork the repo** and create your branch from `main`. |
||||
|
|
||||
|
### Branch Naming |
||||
|
- Use [Conventional Commit](https://www.conventionalcommits.org/) style for your branch names: |
||||
|
``` |
||||
|
feat/add-project-filter |
||||
|
fix/storage-service |
||||
|
chore/update-ci-cache |
||||
|
``` |
||||
|
|
||||
|
2. **Make your changes locally** and verify that the app runs as expected at `http://localhost:3000`. |
||||
|
|
||||
|
3. **Commit your changes** with a descriptive commit message that follows the [Conventional Commits](https://www.conventionalcommits.org/) style. |
||||
|
|
||||
|
4. **Open a Pull Request (PR)** from your fork's branch to the main repository's `main` branch on GitHub: |
||||
|
- Clearly describe the problem and solution. |
||||
|
- Reference related issues (e.g., `Fixes #123`). |
||||
|
- Keep PRs focused on a single feature or fix. |
||||
|
- Complete all fields in the PR template. |
||||
|
- Tag a **Meshtastic Web developer** in the PR for review. |
||||
|
|
||||
|
5. **CI/CD**: |
||||
|
- Our GitHub Actions workflows handle builds, linting, and packaging automatically. |
||||
|
- All checks must pass before merge. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🌍 Internationalization (i18n) |
||||
|
|
||||
|
Meshtastic Web supports multiple languages. If your changes introduce **new user-facing strings**: |
||||
|
|
||||
|
- Add them to the **`en.json`** file. |
||||
|
- Do **not** hardcode English strings directly in components. |
||||
|
- This ensures they can be translated into other languages. |
||||
|
|
||||
|
🔗 See these guides for more details: |
||||
|
- [i18n Developer Guide](https://github.com/meshtastic/web/blob/main/packages/web/CONTRIBUTING_I18N_DEVELOPER_GUIDE.md) |
||||
|
- [Translation Contribution Guide](https://github.com/meshtastic/web/blob/main/packages/web/CONTRIBUTING_TRANSLATIONS.md) |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🧪 Testing |
||||
|
Tests are written with [Vitest](https://vitest.dev/). |
||||
|
|
||||
|
Run all tests locally with: |
||||
|
|
||||
|
```bash |
||||
|
pnpm --filter @meshtastic/web test |
||||
|
``` |
||||
|
|
||||
|
Please include tests for new features and bug fixes whenever possible. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 📝 Commit Messages |
||||
|
We use **Conventional Commits**: |
||||
|
|
||||
|
- `feat:` – a new feature |
||||
|
- `fix:` – a bug fix |
||||
|
- `docs:` – documentation changes |
||||
|
- `chore:` – maintenance, dependencies, build scripts |
||||
|
- `refactor:` – code restructuring without feature changes |
||||
|
- `test:` – adding or updating tests |
||||
|
- `ci:` – CI/CD changes |
||||
|
|
||||
|
Example: |
||||
|
``` |
||||
|
feat: add toast notification system |
||||
|
fix: correct caching issue in storage service |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 💡 Tips for Contributors |
||||
|
- Keep PRs **small, focused, and atomic**. |
||||
|
- Discuss larger changes with the team on [Discord](https://discord.gg/meshtastic) before starting work. |
||||
|
- If unsure, open a draft PR for early feedback. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🙌 Community |
||||
|
Contributors are the heart of Meshtastic ❤️. |
||||
|
Join the conversation: |
||||
|
- [Discord](https://discord.gg/meshtastic) |
||||
|
- [GitHub Discussions](https://github.com/meshtastic/web/discussions) |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 📜 License |
||||
|
By contributing, you agree that your contributions will be licensed under the [GPL-3.0-only License](../../LICENSE). |
||||
Loading…
Reference in new issue