Diff of /docs/contributing.md [000000] .. [548210]

Switch to unified view

a b/docs/contributing.md
1
# Contributing
2
3
Contributions are welcome, and they are greatly appreciated! Every little bit
4
helps, and credit will always be given.
5
6
You can contribute in many ways:
7
8
## Types of Contributions
9
- Web development with the Dash for the OpenOmics dashboard webserver.
10
- Documentation standards for the OpenOmics Python API.
11
- Organize the library of genomics, functional ontologies, interactions, and sequence databases for variety of
12
  biological studies.
13
- Implement general purpose utilities for importing various fasta, gtf and sequencing files.
14
15
## Report Bugs
16
17
Report bugs at [openomics/issues](https://github.com/JonnyTran/openomics/issues).
18
19
If you are reporting a bug, please include:
20
21
- Your operating system name and version.
22
- Any details about your local setup that might be helpful in troubleshooting.
23
- Detailed steps to reproduce the bug.
24
25
## Fix Bugs
26
27
Look through the GitHub issues for bugs. Anything tagged with "bug" and "help
28
wanted" is open to whoever wants to implement it.
29
30
## Implement Features
31
32
Look through the GitHub issues for features. Anything tagged with "enhancement"
33
and "help wanted" is open to whoever wants to implement it.
34
35
## Write Documentation
36
37
OpenOmics could always use more documentation, whether as part of the
38
[official OpenOmics docs](https://openomics.readthedocs.io/), in docstrings within the API, or even on the web in blog posts,
39
articles, and such.
40
41
If you'd like to help write RTD documentations, note:
42
- Documentation pages are written in markdown using [myst-parser](https://myst-parser.readthedocs.io/en/latest/index.html)
43
- The Sphinx theme used is [furo](https://pradyunsg.me/furo/)
44
- The autodoc package used is [sphinx-automodapi](https://sphinx-automodapi.readthedocs.io/en/latest/)
45
46
## Submit Feedback
47
48
The best way to send feedback is to file an issue at [openomics/issues](https://github.com/JonnyTran/openomics/issues).
49
50
If you are proposing a feature:
51
52
- Explain in detail how it would work.
53
- Keep the scope as narrow as possible, to make it easier to implement.
54
- Remember that this is a volunteer-driven project, and that contributions
55
  are welcome :)
56
57
## Get Started!
58
59
Ready to contribute? Here's how to set up `openomics` for local development.
60
61
1. Fork the `openomics` repo on GitHub.
62
2. Clone your fork locally and work on the develop branch:
63
```
64
$ git clone git@github.com:your_name_here/openomics.git
65
$ git checkout develop
66
```
67
68
3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:
69
```
70
$ mkvirtualenv openomics
71
$ cd openomics/
72
$ python setup.py develop
73
```
74
75
4. Create a branch for local development:
76
```
77
$ git checkout -b name-of-your-bugfix-or-feature
78
```
79
   Now you can make your changes locally.
80
81
5. When you're done making changes, check that your changes pass flake8 and the
82
   tests, including testing other Python versions with tox:
83
```
84
$ flake8 openomics tests
85
$ python setup.py test or py.test $ tox
86
```
87
88
   To get flake8 and tox, just pip install them into your virtualenv.
89
90
6. Commit your changes and push your branch to GitHub:
91
```
92
$ git add .
93
$ git commit -m "Your detailed description of your changes."
94
$ git push develop name-of-your-bugfix-or-feature
95
```
96
7. Submit a pull request through the GitHub website to the develop branch. Once major features are tested, we can create
97
   another pull-request to the **master** branch.
98
99
## Pull Request Guidelines
100
101
Before you submit a pull request, check that it meets these guidelines:
102
103
1. The pull request should include tests. Run tests by with `pytest ./` and make sure tests are 100% passing.
104
2. If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a
105
   docstring, and add the feature to the list
106
   in [docs/history.md](https://github.com/JonnyTran/OpenOmics/blob/master/docs/history.md).
107
3. The pull request should work for Python 3.6 or higher, and for PyPi. Check
108
   [Github Actions Tests](https://github.com/JonnyTran/OpenOmics/actions/workflows/python-package.yml)
109
   and make sure that the tests pass for all supported Python versions and operating systems.
110
111
## Tips
112
113
To run the automated tests locally, run this at the root directory:
114
115
    pytest ./
116
117
```{hint}
118
To run a subset of tests:
119
120
    $ py.test tests.test_openomics
121
122
```
123
124
To run tests targeting various operating systems and Python versions, make a pull-request to the **master** branch which
125
will run as [Github Actions Tests](https://github.com/JonnyTran/OpenOmics/actions/workflows/python-package.yml).
126
127
## Deploying
128
129
A reminder for the maintainers on how to deploy. Make sure all your changes are committed (including an entry in
130
HISTORY.rst). Then run:
131
132
    $ bumpversion patch # possible: major / minor / patch
133
    $ git push --tags
134
135
Github Actions will then deploy to PyPI if tests pass.
136
137
## Code of Conduct
138
Please note that the OpenOmics project is released with a Contributor Code of Conduct. By contributing to this project you agree to abide by its terms.
139
140
[openomics/issues]: https://github.com/JonnyTran/openomics/issues