Skip to content

Commit 51b65f8

Browse files
authored
docs: add contributing guide (#210)
* docs: add CONTRIBUTING.md * docs: add issue templates * fix: removing missed conflict * docs: fix typo * docs: add PR template * docs: added checklist to issue templates * docs: additions to contributing guide from cabate * docs: updating PR link ---------
1 parent 52c8117 commit 51b65f8

File tree

4 files changed

+233
-0
lines changed

4 files changed

+233
-0
lines changed

.github/CONTRIBUTING.md

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
Contributing to SCEPTRE Phenix
2+
3+
Thank you for your interest in contributing to SCEPTRE Phenix! We welcome contributions from everyone and appreciate your efforts to improve our project. This guide will help you understand how to contribute effectively.
4+
5+
> Note: A failure to follow this guide will result in delay of PRs until there is compliance.
6+
7+
## Table of Contents
8+
9+
- [Getting Started](#getting-started)
10+
- [How to Contribute](#how-to-contribute)
11+
- [Reporting Issues](#reporting-issues)
12+
- [Suggesting Enhancements](#suggesting-enhancements)
13+
- [Submitting Code](#submitting-code)
14+
- [License](#license)
15+
16+
## Getting Started
17+
18+
1. **Fork the Repository**: Click the "Fork" button at the top right of the repository page to create your own copy of the project.
19+
20+
2. **Clone Your Fork**: Clone your forked repository to your local machine using:
21+
```bash
22+
git clone https://github.com/<your-username>/sceptre-phenix.git
23+
```
24+
25+
3. **Set Upstream Remote**: Add the original repository as an upstream remote to keep your fork up to date:
26+
```bash
27+
git remote add upstream https://github.com/sandialabs/sceptre-phenix.git
28+
```
29+
30+
4. **(Optional) Update Your Fork with Upstream**: To keep your fork up to date with the original repository, follow these steps:
31+
* Fetch the latest changes from the upstream repository
32+
```bash
33+
git fetch upstream
34+
```
35+
* Merge the changes from the upstream main branch into your local main branch
36+
```bash
37+
git checkout main
38+
git merge upstream/main
39+
```
40+
* Push the updated main branch to your forked repository
41+
```bash
42+
git push origin main
43+
```
44+
45+
## How to Contribute
46+
47+
### Reporting Issues
48+
49+
If you encounter a bug or have a feature request, please open an issue in the [Issues](https://github.com/sandialabs/sceptre-phenix/issues) section. Be sure to include:
50+
51+
- A clear description of the issue.
52+
- Steps to reproduce the issue.
53+
- Any relevant screenshots or logs.
54+
55+
### Suggesting Enhancements
56+
57+
We welcome suggestions for improvements! Please open an issue to discuss your ideas before implementing them.
58+
59+
### Submitting Code
60+
61+
1. **Create a Branch**: Create a new branch (on your fork of the repository) for your feature or bug fix using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) notation. The branch name should follow this format:
62+
```bash
63+
type/description
64+
```
65+
Where `type` can be one of the following:
66+
- `feat`: A new feature
67+
- `fix`: A bug fix
68+
- `docs`: Documentation only changes
69+
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, etc.)
70+
- `refactor`: A code change that neither fixes a bug nor adds a feature
71+
- `test`: Adding missing tests or correcting existing tests
72+
- `chore`: Changes to the build process or auxiliary tools and libraries
73+
74+
Example:
75+
```bash
76+
git checkout -b feat/add-user-authentication
77+
```
78+
79+
2. **Make Your Changes**: Implement your changes.
80+
81+
3. **Stage Your Changes**: Use the `git add` command to stage the changes you want to commit. You can stage specific files or all changes:
82+
To stage specific files:
83+
```bash
84+
git add path/to/your/file1 path/to/your/file2
85+
```
86+
87+
To stage all changes:
88+
```bash
89+
git add .
90+
```
91+
92+
3. **Commit Your Changes**: Commit your changes using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) notation. Your commit message should follow this format:
93+
```bash
94+
type(scope): subject
95+
```
96+
* **Scope** is optional and can be used to indicate the area of the codebase affected by the change.
97+
* **Subject** should be a short description of the change.
98+
99+
Example:
100+
```bash
101+
git commit -m "feat(auth): add user authentication feature"
102+
```
103+
If you need to write a longer commit message, you can do so by running `git commit`. This will open your default text editor where you can write a detailed commit message. The first line should be a brief summary conforming to the format above, followed by a blank line, and then a more detailed explanation.
104+
105+
Example:
106+
```bash
107+
feat(auth): add user authentication feature
108+
109+
This commit introduces a new authentication system that allows users to log in using their email and password. It also includes validation for user input and error handling.
110+
```
111+
112+
113+
4. **Rebase Your Branch**: Before opening a pull request, ensure your branch is up to date with the main branch.
114+
* Fetch the latest changes from the upstream repository.
115+
```bash
116+
git fetch upstream
117+
```
118+
* Rebase your branch into the main branch to preserve a linear history. Resolve any conflicts that may arise during the rebase process.
119+
```bash
120+
git rebase upstream/main
121+
```
122+
* (Optional) If you have multiple commits that you want to combine into a single commit, you can use interactive rebase.
123+
```bash
124+
git rebase -i upstream/main
125+
```
126+
In the interactive rebase interface, change the word `pick` to `squash` (or `s`) for all commits you want to combine into the first commit. After saving and closing the editor, you will be prompted to create a new commit message. Write a single, comprehensive commit message that summarizes all the changes.
127+
128+
5. **Push to Your Fork**: If you had to rebase, you may need to force push your changes to your forked repository.
129+
130+
Example:
131+
```bash
132+
git push origin feat/add-user-authentication --force
133+
```
134+
135+
6. **Open a Pull Request**: Go to the original repository and open a [pull request](https://github.com/sandialabs/sceptre-phenix/pulls). Provide a clear description of your changes and reference any related issues.
136+
137+
## License
138+
By contributing to this project, you agree that your contributions will be licensed under the [GNU](https://github.com/sandialabs/sceptre-phenix/blob/main/LICENSE) License.
139+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug Report
3+
description: Report a bug or issue
4+
title: "[BUG]"
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Bug Report
10+
11+
### Description
12+
A clear and concise description of what the bug is.
13+
14+
### Steps to Reproduce
15+
1. Step one
16+
2. Step two
17+
3. Step three
18+
4. See the error
19+
20+
### Expected Behavior
21+
A clear description of what you expected to happen.
22+
23+
### Actual Behavior
24+
A clear description of what actually happened.
25+
26+
### Screenshots
27+
If applicable, add screenshots to help explain your problem.
28+
29+
### Environment
30+
- **Operating System**: (e.g., Windows, macOS, Linux)
31+
- **Browser**: (e.g., Chrome, Firefox, Safari)
32+
- **Version**: (e.g., 1.0.0)
33+
34+
### Additional Context
35+
Add any other context about the problem here, such as logs or error messages.
36+
37+
### Checklist
38+
- [ ] I have included no proprietary/sensitive information in my issue.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
name: Feature Request
3+
description: Suggest a new idea or feature for this project
4+
title: "[FEATURE]"
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Feature Request
10+
11+
### Summary
12+
A brief description of the feature you would like to see implemented.
13+
14+
### Motivation
15+
Why is this feature important? How will it benefit the users or the project?
16+
17+
### Proposed Solution
18+
Describe how you envision the feature being implemented. Include any relevant details, such as:
19+
- User interface changes
20+
- API changes
21+
- Any other relevant information
22+
23+
### Alternatives Considered
24+
Have you considered any alternative solutions or approaches? If so, please describe them.
25+
26+
### Additional Context
27+
Add any other context or screenshots about the feature request here.
28+
29+
### Checklist
30+
- [ ] I have included no proprietary/sensitive information in my issue.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Pull Request Title
2+
3+
## Description
4+
Please include a summary of the changes and the related issue.
5+
6+
## Related Issue
7+
If applicable, please link to the issue here (e.g., #123).
8+
9+
## Type of Change
10+
Please select the type of change your pull request introduces:
11+
- [ ] Bugfix
12+
- [ ] New feature
13+
- [ ] Documentation update
14+
- [ ] Other (please describe):
15+
16+
## Checklist
17+
- [ ] This PR conforms to the process detailed in the [Contributing Guide](https://github.com/sandialabs/sceptre-phenix/tree/main/.github/CONTRIBUTING.md).
18+
- [ ] I have included no proprietary/sensitive information in my code.
19+
- [ ] I have performed a self-review of my code.
20+
- [ ] I have commented my code, particularly in hard-to-understand areas.
21+
- [ ] I have made corresponding changes to the documentation.
22+
- [ ] My changes generate no new warnings.
23+
- [ ] I have tested my code.
24+
25+
## Additional Notes
26+
Please provide any additional information or context for your pull request here.

0 commit comments

Comments
 (0)