Diff of /CONTRIBUTING.md [000000] .. [acd362]

Switch to unified view

a b/CONTRIBUTING.md
1
# Peter Moss Acute Myeloid & Lymphoblastic Leukemia AI Research Project
2
## Contributing to ALL Classifiers 2019
3
4
We encourage bug fixes and enhancements submitted by the community and there are a number of ways you can contribute towards this repository.
5
6
# Repository Issues
7
![Repository Issues](Media/Images/repo-issues.png)
8
9
The first step is to head to our repository issues tab and decide how you would like to contribute.
10
11
## Bug reports
12
![Bug reports](Media/Images/bug-report.png)
13
14
If you would like to contribute bug fixes or make the team aware of bugs you have identified in the project, please raise a **Bug report** issue in the [issues section](issues/new/choose) section. A template is provided that will allow you to provide your suggestions for your bug report / bug fix(es) which will be reviewed by the team who will communicate with you through your issue.
15
16
Bug fix issues are the first step to creating a pull request for bug fixes, once you have created your issue and it has been approved you can proceed with your bug fixes.
17
18
 
19
20
## Feature requests
21
![Feature requests](Media/Images/feature-request.png)
22
23
If you would like to suggest a new feature/ new features for this project, please raise a **Feature request** issue in the [issues section](issues/new/choose) section. A template is provided that will allow you to provide your suggestions for your feature request which will be reviewed by the team who will communicate through your issue.
24
25
 
26
27
## Feature proposals
28
![Feature proposals](Media/Images/feature-proposal.png)
29
30
If you would like to contribute new features to the project, please raise a **Feature proposal** issue in the [issues section](issues/new/choose) section. A template is provided that will allow you to provide your suggestions for your feature proposal which will be reviewed by the team who will communicate through your issue.
31
32
Feature proposals are the first step to creating a pull request for new features, once you have created your issue and it has been approved you can proceed with your feature proposal.
33
34
 
35
36
# Creating a fork of the repository
37
![Creating a fork of the repository](Media/Images/fork.png)
38
39
If you are going to be contributing code or documentation to the repository you will need to make a fork of the current development branch. The current development branch will always be the highest branch or master. Once you have created a fork of the repository, you will be able to clone the repository to a location on your development machine using terminal and Git or Github Desktop if using Windows.
40
41
 
42
43
# Repository Structures
44
45
We have two main types of repository layouts: single projects and multiple project repositories.
46
47
In a multiple project repository the file structure for AI projects is as follows:
48
49
```
50
- Project Root (Directory)
51
    - Project README (File)
52
    - Projects (Directory)
53
        - Project 1 (Directory)
54
            - Classes (Directory)
55
                - Helpers (File)
56
                - Data (File)
57
                - Model (File)
58
            - Documentation (Directory)
59
                - Installation
60
            - Logs (Directory)
61
                - Logfiles
62
            - Media
63
                - Images (Directory)
64
                - Videos (Directory)
65
            - Model
66
                - Model (File)
67
                - Weights (File)
68
            - Scripts
69
                - Installation (File)
70
            - Project README (File)
71
        - Project 2 (Directory)
72
            - Classes (Directory)
73
                - Helpers (File)
74
                - Data (File)
75
                - Model (File)
76
            - Documentation (Directory)
77
                - Installation
78
            - Logs (Directory)
79
                - Logfiles
80
            - Media
81
                - Images (Directory)
82
                - Videos (Directory)
83
            - Model
84
                - Model (File)
85
                - Weights (File)
86
            - Scripts
87
                - Installation (File)
88
            - Project README (File)
89
```
90
91
In a single project repository the file structure for AI projects is as follows:
92
93
```
94
- Project Root (Directory)
95
    - Classes (Directory)
96
        - Helpers (File)
97
        - Data (File)
98
        - Model (File)
99
    - Documentation (Directory)
100
        - Installation
101
    - Logs (Directory)
102
        - Logfiles
103
    - Media
104
        - Images (Directory)
105
        - Videos (Directory)
106
    - Model
107
        - Model (File)
108
        - Weights (File)
109
    - Scripts
110
        - Installation (File)
111
    - Project README (File)
112
```
113
114
# Documentation
115
116
All projects should have documentation, changes you make to the code in the repository or new projects that you make should also have documentation. In the structures above you can see the **Documentation** directories, and the **Installation** file. This installation file should contain a step by step guide to how to install your project, while directions of use will be a high level tutorial in your project README. If you are contributing an existing repository you will ensure that these documents are updated to reflect your changes.
117
118
# Installation Scripts
119
120
You will notice the **Scripts** directory above, this is home to any scripts that make it easier for the end use to set up and / or use your project. By default every project must have an installation script when installations are required. If you are contributing an existing repository you will ensure that these scripts are updated to reflect your changes.
121
122
# Naming
123
124
We use CamelCase for our directory and file names (except images), we would like this to stay uniform across all of our projects. Please use descriptive but short names where possible, and make sure you do not use spaces in directory and file names.
125
126
# Attribution
127
128
Whenever relevant you should add yourself to the contributors section of the READMEs. If you have a public profile on the Peter Moss Leukemia AI Research website, you should use this in your link. Please see the contributing section of any of our READMEs for examples.
129
130
# .md Files
131
132
Each .md file in the repository should use the same header. An example of this is as follows:
133
134
```
135
# Peter Moss Acute Myeloid & Lymphoblastic Leukemia AI Research Project
136
## Acute Lymphoblastic Leukemia Detection System 2019
137
138
![Peter Moss Acute Myeloid & Lymphoblastic Leukemia AI Research Project](Media/Images/Peter-Moss-Acute-Myeloid-Lymphoblastic-Leukemia-Research-Project.png)
139
```
140
141
Each .md file in the repository should also use the same footer, with the excpetions of the contributors. If you contribute directly to the code or documentation you should update this area with your details.
142
143
```
144
 
145
146
# Contributing
147
148
The Peter Moss Acute Myeloid & Lymphoblastic Leukemia AI Research project encourages and welcomes code contributions, bug fixes and enhancements from the Github.
149
150
Please read the [CONTRIBUTING](CONTRIBUTING.md "CONTRIBUTING") document for a full guide to forking our repositories and submitting your pull requests. You will also find information about our code of conduct on this page.
151
152
## Contributors
153
154
- [Adam Milton-Barker](https://www.leukemiaresearchassociation.ai/team/adam-milton-barker "Adam Milton-Barker") - [Asociacion De Investigation En Inteligencia Artificial Para La Leucemia Peter Moss](https://www.leukemiaresearchassociation.ai "Asociacion De Investigation En Inteligencia Artificial Para La Leucemia Peter Moss") President & Lead Developer, Sabadell, Spain
155
156
 
157
158
# Versioning
159
160
We use SemVer for versioning. For the versions available, see [Releases](releases "Releases").
161
162
 
163
164
# License
165
166
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE "LICENSE") file for details.
167
168
 
169
170
# Bugs/Issues
171
172
We use the [repo issues](issues "repo issues") to track bugs and general requests related to using this project.
173
```
174
175
The project README contributors should contain a list of all contributors in the entire repository.
176
177
# Push changes to forked repository
178
179
![Push changes to forked repository](https://www.leukemiaresearchfoundation.ai/github/media/images/Contributing-Commit-Push.jpg)
180
181
When you have made your changes, you need to push them to your forked repository. This process requires a commit with a message about what your commit is, and then finally a push to the repository which will place your changes or created files to your forked repository.
182
183
Show the status of all changed/added files.
184
185
```
186
git status
187
```
188
189
You may want to do check the differences between changed files, you can do this using the following command.
190
191
```
192
git diff
193
```
194
195
Add all changes ready to commit. (You may not want to add all changed files, in this case please follow instructions to add single files to commit that you were shown using git status). To repeat, the following will add all changes shown by using git status to your commit.
196
197
```
198
git add .
199
```
200
201
Commit your changes.
202
203
```
204
git commit -m "Your descriptive commit message"
205
```
206
207
Push changes to your fork.
208
209
```
210
git push
211
```
212
213
You can also Github Desktop if on Windows as shown in the image above.
214
215
 
216
217
# Pull requests
218
219
![Pull requests](https://www.leukemiaresearchfoundation.ai/github/media/images/Contributing-Pull-Requests.jpg)
220
When you are satisfied with your changes you can submit a pull request that will request that your changes be pulled into the latest development branch.
221
222
## Pull Request Process
223
224
1. Ensure all documentation has been updated and matches the style of our repository layouts, including repository directory structures etc.
225
2. Add new README.md files for new directories / ** init **.py files for empty directories.
226
3. Ensure that your READMEs, documentation and code match the format/design of the rest of the repoistory.
227
4. Include the project header banner on all documentation pages / READMEs.
228
5. Incude the Contributing, Versioning, Licensing, Bugs/Issues information in all READMEs and documentation.
229
6. Do not ever upload licensed software or images that you do not own the rights to.
230
7. Submit your Pull Request with an accurate description of the changes you have made.
231
8. Your Pull Request will be reviewed by the team.
232
233
 
234
235
# Code of conduct
236
237
Please note we have a code of conduct, please follow it in all your interactions with the project.
238
239
## Our Pledge
240
241
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
242
243
## Our Standards
244
245
Examples of behavior that contributes to creating a positive environment include:
246
247
- Using welcoming and inclusive language
248
- Being respectful of differing viewpoints and experiences
249
- Gracefully accepting constructive criticism
250
- Focusing on what is best for the community
251
- Showing empathy towards other community members
252
253
Examples of unacceptable behavior by participants include:
254
255
- The use of sexualized language or imagery and unwelcome sexual attention or advances
256
- Trolling, insulting/derogatory comments, and personal or political attacks
257
- Public or private harassment
258
- Publishing others' private information, such as a physical or electronic address, without explicit permission
259
- Other conduct which could reasonably be considered inappropriate in a professional setting
260
261
## Our Responsibilities
262
263
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
264
265
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or
266
permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
267
268
## Scope
269
270
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
271
272
## Enforcement
273
274
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at github@leukemiaresearchassociation.ai All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
275
276
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
277
278
 
279
280
# Attribution
281
282
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/version/1/4), version 1.4.