|
a |
|
b/CONTRIBUTING.md |
|
|
1 |
# Contributing |
|
|
2 |
|
|
|
3 |
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given. |
|
|
4 |
|
|
|
5 |
You can contribute in many ways: |
|
|
6 |
|
|
|
7 |
## Types of Contributions |
|
|
8 |
|
|
|
9 |
### Report Bugs |
|
|
10 |
|
|
|
11 |
Report bugs at <https://github.com/kundajelab/bpnet/issues>. |
|
|
12 |
|
|
|
13 |
If you are reporting a bug, please include: |
|
|
14 |
|
|
|
15 |
- Your operating system name and version. |
|
|
16 |
- Any details about your local setup that might be helpful in troubleshooting. |
|
|
17 |
- Detailed steps to reproduce the bug. |
|
|
18 |
|
|
|
19 |
### Fix Bugs |
|
|
20 |
|
|
|
21 |
Look through the GitHub issues for bugs. Anything tagged with “bug” and “help wanted” is open to whoever wants to implement it. |
|
|
22 |
|
|
|
23 |
### Implement Features |
|
|
24 |
|
|
|
25 |
Look through the GitHub issues for features. Anything tagged with “enhancement” and “help wanted” is open to whoever wants to implement it. |
|
|
26 |
|
|
|
27 |
### Write Documentation |
|
|
28 |
|
|
|
29 |
BPNet could always use more documentation, whether as part of the official BPNet docs, in docstrings, or even on the web in blog posts, articles, and such. |
|
|
30 |
|
|
|
31 |
### Submit Feedback |
|
|
32 |
|
|
|
33 |
The best way to send feedback is to file an issue at <https://github.com/kundajelab/bpnet/issues>. |
|
|
34 |
|
|
|
35 |
If you are proposing a feature: |
|
|
36 |
|
|
|
37 |
- Explain in detail how it would work. |
|
|
38 |
- Keep the scope as narrow as possible, to make it easier to implement. |
|
|
39 |
- Remember that this is a volunteer-driven project, and that contributions are welcome :) |
|
|
40 |
|
|
|
41 |
## Workflow |
|
|
42 |
|
|
|
43 |
- make an issue for the thing you want to implement |
|
|
44 |
- create the corresponding branch |
|
|
45 |
- develop |
|
|
46 |
- write units tests in tests/ |
|
|
47 |
- write documentation in markdown (see other functions for example) |
|
|
48 |
- push the changes |
|
|
49 |
- make a pull request |
|
|
50 |
- once the pull request is merged, the issue will be closed |
|
|
51 |
|
|
|
52 |
## Get Started! |
|
|
53 |
|
|
|
54 |
Ready to contribute? Here’s how to set up BPNet for local development. |
|
|
55 |
|
|
|
56 |
1. Fork the BPNet repo on GitHub. |
|
|
57 |
2. Clone your fork locally: |
|
|
58 |
|
|
|
59 |
$ git clone git@github.com:your_name_here/bpnet.git |
|
|
60 |
|
|
|
61 |
3. Install your local copy into a conda environment. Assuming you have conda installed, this is how you set up your fork for local development: |
|
|
62 |
|
|
|
63 |
$ conda create -n bpnet python=3.6 |
|
|
64 |
$ cd bpnet/ |
|
|
65 |
$ source activate bpnet |
|
|
66 |
$ pip install -e '.[develop]' |
|
|
67 |
|
|
|
68 |
4. Create a branch for local development: |
|
|
69 |
|
|
|
70 |
$ git checkout -b name-of-your-bugfix-or-feature |
|
|
71 |
|
|
|
72 |
Now you can make your changes locally. |
|
|
73 |
|
|
|
74 |
5. When you’re done making changes, check that your changes pass the tests: |
|
|
75 |
|
|
|
76 |
$ py.test tests/ -n 4 |
|
|
77 |
|
|
|
78 |
Where `-n 4` will use 4 cores in parallel to run tests. |
|
|
79 |
|
|
|
80 |
6. Commit your changes and push your branch to GitHub: |
|
|
81 |
|
|
|
82 |
$ git add . |
|
|
83 |
$ git commit -m "Your detailed description of your changes." |
|
|
84 |
$ git push origin name-of-your-bugfix-or-feature |
|
|
85 |
|
|
|
86 |
7. Submit a pull request through the GitHub website. |
|
|
87 |
|
|
|
88 |
## Pull Request Guidelines |
|
|
89 |
|
|
|
90 |
Before you submit a pull request, check that it meets these guidelines: |
|
|
91 |
|
|
|
92 |
1. The pull request should include tests. |
|
|
93 |
2. If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring. |
|
|
94 |
3. The pull request should work for Python 3.6. |