CONTRIBUTING.md 4.8 KB
Newer Older
zhangqha's avatar
zhangqha committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# DeePMD-kit Contributing Guide

Welcome to [DeePMD-kit](https://github.com/deepmodeling/deepmd-kit)!

## What you can contribute

You can either make a code contribution, help improve our document or offer help to other users. Your help is always appreciated. Come and have fun!

### Code contribution
You can start from any one of the following items to help improve deepmd-kit

- Smash a bug
- Implement a feature or add a patch, whatever you think deepmd-kit is missing
- Browse [issues](https://github.com/deepmodeling/deepmd-kit/issues), find an issue labeled enhancement or bug, and help to solve it.

See [here](#before-you-contribute) for some before-hand heads-up. 

See [here](#how-to-contribute) to learn how to contribute.

### Document improvement
You can start from any one of the following items to help improve [DeePMD-kit Docs](https://deepmd.readthedocs.io/en/latest/?badge=latest):

- Fix typos or format (punctuation, space, indentation, code block, etc.)
- Fix or update inappropriate or outdated descriptions
- Add missing content (sentence, paragraph, or a new document)
- Translate docs changes from English to Chinese

### Offer help
You can help other users of deepmd-kit in the following way

- Submit, reply to, and resolve [issues](https://github.com/deepmodeling/deepmd-kit/issues)
- (Advanced) Review Pull Requests created by others

## Before you contribute
### Overview of DeePMD-kit
Currently, we maintain two main branch:
- master: stable branch with version tag
- devel :  branch for developers

### Developer guide
See [here](doc/development/index.md) for coding conventions, API and other needs-to-know of the code.

## How to contribute
Please perform the following steps to create your Pull Request to this repository. If don't like to use commands, you can also use [GitHub Desktop](https://desktop.github.com/), which is easier to get started. Go to [git documentation](https://git-scm.com/doc) if you want to really master git.

### Step 1: Fork the repository

1. Visit the project: <https://github.com/deepmodeling/deepmd-kit>
2. Click the **Fork** button on the top right and wait it to finish.

### Step 2: Clone the forked repository to local storage and set configurations

1. Clone your own repo, not the public repo (from deepmodeling) ! And change the branch to devel.
    ```bash
    git clone https://github.com/$username/deepmd-kit.git
    # Replace `$username` with your GitHub ID
    
    git checkout devel
    ```

2. Add deepmodeling's repo as your remote repo, we can name it "upstream". And fetch upstream's latest codes to your workstation.
    ```bash
    git remote add upstream https://github.com/deepmodeling/deepmd-kit.git
    # After you add a remote repo, your local repo will be automatically named "origin".
    
    git fetch upstream
    
    # If your current codes are behind the latest codes, you should merge latest codes first.
    # Notice you should merge from "devel"!
    git merge upstream/devel
    ```

3. Modify your codes and design unit tests.

4. Commit your changes
    ```bash
    git status # Checks the local status
    git add <file> ... # Adds the file(s) you want to commit. If you want to commit all changes, you can directly use `git add.`
    git commit -m "commit-message: update the xx"
    ```
    
5. Push the changed codes to your original repo on github. 
    ```bash
    git push origin devel 
    ```

### Alternatively: Create a new branch

1. Get your local master up-to-date with upstream/master.

    ```bash
    cd $working_dir/deepmd-kit
    git fetch upstream
    git checkout master
    git rebase upstream/master
    ```

2. Create a new branch based on the master branch.

    ```bash
    git checkout -b new-branch-name
    ```

3. Modify your codes and design unit tests.

4. Commit your changes

    ```bash
    git status # Checks the local status
    git add <file> ... # Adds the file(s) you want to commit. If you want to commit all changes, you can directly use `git add.`
    git commit -m "commit-message: update the xx"
    ```

5. Keep your branch in sync with upstream/master

    ```bash
    # While on your new branch
    git fetch upstream
    git rebase upstream/master
    ```

6. Push your changes to the remote

    ```bash
    git push -u origin new-branch-name # "-u" is used to track the remote branch from origin
    ```

### Step 3: Create a pull request

1. Visit your fork at <https://github.com/$username/deepmd-kit> (replace `$username` with your GitHub ID)
2. Click `pull requests`, followed by `New pull request` and `Compare & pull request` to create your PR.

Now, your PR is successfully submitted! After this PR is merged, you will automatically become a contributor to DeePMD-kit.

## Contact us
E-mail: contact@deepmodeling.org