mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-01-06 04:48:14 -05:00
126 lines
3.0 KiB
Markdown
126 lines
3.0 KiB
Markdown
# Contributing to This Repository
|
||
|
||
We welcome pull requests, but only if they meet the project's quality and design standards. Follow the process below precisely to avoid wasting time—yours or ours.
|
||
|
||
## Prerequisites
|
||
|
||
- Familiarity with Git and GitHub (basic commands, branching, forking, etc.)
|
||
- A functioning development environment
|
||
- Node.js, Python, or other relevant runtime/tools installed (check the `README.md`)
|
||
|
||
## Fork & Clone
|
||
|
||
1. **Fork the repository** using the GitHub UI.
|
||
2. **Clone your fork** locally:
|
||
```bash
|
||
git clone https://github.com/your-username/Compass.git
|
||
cd your-fork
|
||
|
||
3. **Add the upstream remote**:
|
||
|
||
```bash
|
||
git remote add upstream https://github.com/CompassConnections/Compass.git
|
||
```
|
||
|
||
## Create a New Branch
|
||
|
||
Never work on `main` or `master`.
|
||
|
||
```bash
|
||
git checkout -b fix/brief-but-specific-description
|
||
```
|
||
|
||
Use a clear, descriptive branch name. Avoid vague names like `patch-1`.
|
||
|
||
## Stay Updated
|
||
|
||
Before you start, make sure your fork is up to date:
|
||
|
||
```bash
|
||
git fetch upstream
|
||
git checkout main
|
||
git merge upstream/main
|
||
```
|
||
|
||
Then rebase your feature branch if needed:
|
||
|
||
```bash
|
||
git checkout fix/your-feature
|
||
git rebase main
|
||
```
|
||
|
||
## Make Atomic Commits
|
||
|
||
Each commit should represent a single logical change. Follow this format:
|
||
|
||
```text
|
||
type(scope): concise description
|
||
|
||
body explaining what and why, if necessary
|
||
```
|
||
|
||
Example:
|
||
|
||
```text
|
||
fix(api): handle 500 error on invalid payload
|
||
```
|
||
|
||
Types include: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`.
|
||
|
||
## Test Everything
|
||
|
||
If the project has tests, run them. If it doesn’t, write some. Do **not** submit code that hasn't been tested.
|
||
|
||
```bash
|
||
# Example for Node.js
|
||
npm test
|
||
```
|
||
|
||
No exceptions. If you don't validate your changes, your PR will be closed.
|
||
|
||
## Lint & Format
|
||
|
||
Ensure code matches the project style. If the repo uses a linter or formatter, run them:
|
||
|
||
```bash
|
||
npm run lint
|
||
npm run format
|
||
```
|
||
|
||
Or whatever command is defined in the repo.
|
||
|
||
## Write a Good Pull Request
|
||
|
||
When opening a pull request:
|
||
|
||
* **Title**: Describe what the PR does, clearly and specifically.
|
||
* **Description**: Explain the context. Link related issues (use `Fixes #123` if applicable).
|
||
* **Checklist**:
|
||
|
||
* [ ] My code is clean and follows the style guide
|
||
* [ ] I’ve added or updated tests
|
||
* [ ] I’ve run all tests and they pass
|
||
* [ ] I’ve documented my changes (if necessary)
|
||
|
||
## Code Review Process
|
||
|
||
* PRs are reviewed by maintainers or core contributors.
|
||
* If feedback is given, respond and push updates. Do **not** open new PRs for changes to an existing one.
|
||
* PRs that are incomplete, sloppy, or violate the above will be closed.
|
||
|
||
## Don't Do This
|
||
|
||
* Don’t commit directly to `main`
|
||
* Don’t submit multiple unrelated changes in a single PR
|
||
* Don’t ignore CI/test failures
|
||
* Don’t expect hand-holding—read the docs and the source first
|
||
|
||
## Security Issues
|
||
|
||
Do **not** open public issues for security vulnerabilities. Email the development team instead.
|
||
|
||
## License
|
||
|
||
By contributing, you agree that your code will be licensed under the same license as the rest of the project.
|
||
|