Thank you for considering contributing to Meshtastic! We appreciate your time and effort in helping to improve the project. This document outlines the guidelines for contributing to the project.
- Getting Started
- Development Workflow
- Creating a Branch
- Making Changes
- Commit Messages
- Merging Changes
- Testing
- Code Review
- Documentation
- Style Guides
- Community
- Fork the repository on GitLab.
- Clone your fork to your local machine:
git clone https://gitlab.com/<your-username>/Meshtastic-Apple.git
- Navigate to the project directory:
cd Meshtastic-Apple
- Open the Meshtastic.xcworkspace
open Meshtastic.xcworkspace
In accordance with trunk-based development, all changes should target the main
branch.
To facilitate easy code reviews and minimize merge conflicts, we encourage making small, incremental changes. Each change should be a self-contained, logically coherent unit of work that addresses a specific task or fixes a particular issue.
To keep the project history clean, please use rebasing over merging when incorporating changes from the main
branch into your feature branches. To rebase your branch on main
, you can perform the following steps.
git fetch
git rebase main
To enable pulls to rebase by default, you can use this git configuration option.
git config pull.rebase true
- Always create a new branch for your work. Use a descriptive name for your branch:
git checkout -b your-branch-name
- Make your changes in the new branch.
- Ensure your changes adhere to the project’s coding standards and conventions.
- Keep your changes focused and avoid combining multiple unrelated tasks in a single branch.
- Write clear and concise commit messages following the guidelines in Git Commit Messages.
- Push your changes to your fork:
git push origin your-branch-name
- Create a pull request (PR) targeting the
main
branch. - Ensure your PR adheres to the project's guidelines and includes a clear description of the changes.
- Request a code review from the project maintainers.
- Ensure all existing tests pass before submitting your PR.
- Write new tests for any new features or bug fixes.
- Run the tests locally
- Address any feedback or changes requested by the reviewers.
- Once approved, the PR will be merged into the
main
branch by a project maintainer.
- Update the documentation to reflect any changes you have made.
- Ensure the documentation is clear and concise.
- Use the imperative mood in the subject line (e.g., "Fix bug" instead of "Fixed bug").
- Use the body to explain what and why, not how.
- This project requires swiftLint - see https://github.com/realm/SwiftLint
- Use SwiftUI
- Use SFSymbols for icons
- Use Core Data for persistence
- Ensure your code is clean and well-documented.
- Join our community on Discord.
- Participate in discussions and share your ideas.
Thank you for contributing to Meshtastic!