Skip to content

Commit a76c2e7

Browse files
authored
Merge pull request #60 from ghostbsd/contiributors-guide
Adding GhostBSD Contributor's Guide and is work in progress
2 parents 14655ee + 1381790 commit a76c2e7

File tree

2 files changed

+138
-1
lines changed

2 files changed

+138
-1
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
GhostBSD Contributor's Guide
2+
============================
3+
4+
## 1. Introduction
5+
Welcome to the GhostBSD Contributor’s Guide. This guide outlines the responsibilities, workflows, and best practices for contributors, helping maintain the quality and consistency of the GhostBSD project. Being a committer allows you to directly contribute to the project’s growth and collaborate with a dedicated community.
6+
7+
## 2. Becoming An Official Contributor
8+
### 2.1. Eligibility
9+
Anyone who has the interest to help the project can become a contributor. You must become a New Contributor first and have demonstrated a consistent track record of quality contributions to the GhostBSD project.
10+
### 2.2. Mentorship Program
11+
New committers will be assigned a mentor by the project maintainers to guide them through the initial stages, ensuring they understand the project’s standards and workflows.
12+
### 2.3. Trial Ending
13+
Once the mentor thinks the new contributor understands the project’s standards and workflows well the new contributor will become a contributor.
14+
15+
## 3. Contributor Responsibilities
16+
### 3.1. Code Contributions
17+
Ensure your code contributions are well-tested and adhere to the project’s coding standards.
18+
### 3.2. Code Reviews
19+
Participate in code reviews to help maintain code quality and mentor new contributors.
20+
### 3.3. Documentation
21+
Update and improve documentation as part of your contributions.
22+
### 3.4. Community Engagement
23+
Engage with the community by participating in discussions, answering questions, and providing support.
24+
25+
## 4. Using GitHub
26+
### 4.1. Repository Structure
27+
Understand the structure of the GhostBSD repositories and where to find relevant code and documentation.
28+
### 4.2. Branching Strategy
29+
Follow the project’s branching strategy for development, feature, and release branches:
30+
* **main**: Stable release branch.
31+
* **develop**: Ongoing development branch.
32+
* **feature/xxx**: Feature branches for new developments.
33+
### 4.3. Cloning Repositories
34+
Clone the main repository:
35+
36+
```
37+
git clone [email protected]:ghostbsd/ghostbsd.git
38+
```
39+
### 4.4. Handling Merge Conflicts
40+
Resolve conflicts using Git:
41+
42+
```
43+
git fetch origin
44+
git checkout feature/branch
45+
git merge origin/main
46+
# Resolve conflicts
47+
git add -A
48+
git commit
49+
```
50+
51+
## 5. Commit Messages
52+
### 5.1. Format
53+
Use the following format for commit messages:
54+
55+
```
56+
Subject Line (50 characters or less)
57+
58+
Detailed explanation of the changes, reasons for the changes, and any additional
59+
information that might be useful.
60+
```
61+
### 5.2. Best Practices
62+
* Use the imperative mood in the subject line (e.g., "Fix bug" not "Fixed bug").
63+
* Include relevant issue numbers for traceability.
64+
### 5.3. Examples
65+
* Good: Fix issue #123: Correct memory leak in network module
66+
* Bad: Fixed stuff
67+
68+
## 6. Working With Pull Requests
69+
### 6.1. Creating a Pull Request
70+
Ensure your pull request is well-documented and includes relevant tests.
71+
### 6.2. Reviewing Pull Requests
72+
Provide constructive feedback and ensure the code meets project standards.
73+
### 6.3. Merging Pull Requests
74+
Merge pull requests only after they have been reviewed and approved by at least one other contributor.
75+
### 6.4. Handling Complex Pull Requests
76+
* Breaking Down PRs: Divide large PRs into smaller, manageable parts.
77+
* Managing Dependencies: Ensure dependent PRs are noted and reviewed in order.
78+
79+
## 7. Code Reviews
80+
### 7.1. Purpose
81+
Code reviews help maintain code quality and ensure adherence to project standards.
82+
### 7.2. Process
83+
Review code for correctness, readability, and adherence to coding standards. Provide feedback and request changes if necessary.
84+
### 7.3. Checklist
85+
* Compliance with coding standards.
86+
* Adequate test coverage.
87+
* Clear commit messages and documentation updates.
88+
89+
## 8. Handling Bug Reports
90+
### 8.1. Triage
91+
Prioritize and categorize bug reports based on severity and impact.
92+
### 8.2. Resolution
93+
Work on resolving bugs in a timely manner, ensuring that fixes are well-tested.
94+
### 8.3. Examples
95+
* High Priority: Critical system crashes.
96+
* Medium Priority: Functionality issues.
97+
* Low Priority: Minor UI bugs.
98+
99+
## 9. Testing And Quality Assurance
100+
### 9.1. Automated Testing
101+
Ensure your changes pass all relevant automated tests.
102+
### 9.2. Manual Testing
103+
Perform manual testing when necessary, especially for user-facing features.
104+
### 9.3. Continuous Integration
105+
Make use of the project’s continuous integration system to verify your changes.
106+
### 9.4. Guidelines for Writing Tests
107+
* Use testing frameworks.
108+
* Include unit tests for new features.
109+
110+
## 10. Documentation
111+
### 10.1. Updating Documentation
112+
Ensure that all changes are reflected in the relevant documentation.
113+
### 10.2. Writing New Documentation
114+
Write clear, concise, and comprehensive documentation for new features and changes.
115+
### 10.3. Standards
116+
* Use Markdown for documentation.
117+
* Follow the project’s style guide.
118+
### 10.4. Tools
119+
* MkDocs for documentation management.
120+
121+
## 11. Communication And Conduct
122+
### 11.1. Code of Conduct
123+
Adhere to the project’s code of conduct in all interactions.
124+
### 11.2. Communication Channels
125+
Use appropriate channels (mailing lists, forums, chat) for discussions and announcements.
126+
### 11.3. Examples of Proper Etiquette
127+
* Respectful and constructive communication.
128+
* Professionalism in all interactions.
129+
130+
## 12. Resources
131+
### 12.1. Documentation
132+
Access the project’s documentation portal for guidelines and references.
133+
### 12.2. Tools
134+
Recommended tools and utilities for development:
135+
* IDEs: JetBrains IDEs, vscode, Sublime Text
136+
* Debugging Tools: GDB, LLDB

source/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Welcome to GhostBSD's documentation portal!
22
===========================================
33

4-
This documentation portal has all of the information users need to get going with their journey using GhostBSD. It also contains information for people that want to help the community, report bugs, and contribute to the project.
4+
This documentation portal has all the information users need to get going with their journey using GhostBSD. It also contains information for people that want to help the community, report bugs, and contribute to the project.
55

66
## Overview
77

@@ -29,6 +29,7 @@ user/FAQ
2929
3030
contributor/get-involved
3131
contributor/contributor-levels
32+
contributor/ghostbsd-contributors-guide
3233
```
3334

3435

0 commit comments

Comments
 (0)