Contribution workflow
1. Fork
Wherever you want to implement a new feature or to fix a bug the only way to contribute is to fork the project in your userspace (in GitHub is called https://github.com/<username>) and to Pull-Request from an ad-hoc branch different from the 'develop'.
In order to fork, go to the component’s page of your interest and click on "Fork" on the right-top.
Open Hospital components are:
GitHub - informatici/openhospital-core: Open Hospital Core library
GitHub - informatici/openhospital-gui: Open Hospital GUI (Java Swing) component
GitHub - informatici/openhospital-doc: Open Hospital documentation
Issues generally contain indications about exactly “which” components will be affected
2. Clone
Once forked, you need to clone your fork on your local repository (your computer) using Git command line or any IDE with Git support (Eclipse, NetBeans, Intelli-J, etc...) using the provided info from the component’s page:
git clone <copied_URL_from_GitHub>
cd <cloned_component_name>
3. Branch
Once cloned, create and switch to an ad-hoc branch related to your issue and start coding!
git checkout -b <my_feature_branch_name>
Branch naming convention is <issue code>-<issue_or_solution_title>
, you can ask Jira to produce one for you (e.g. OP-962-session-table-for-log
):
In this way, your developments will be automatically linked to Jira, and also issues’codes typed in GitHub will be converted into links to Jira’s pages.
NOTE: use the same branch name for all repositories involved in the issue
4. Code
On your "forked-and-cloned-then-branched" you can commit as many times you want, please follow the 'gold rules' below.
Check our Coding Chips!
Double analyze the existing code, don't write what is already written, be DRY (Don't Repeat Yourself)
Dumb code is better than clever one when is time to share
Write comments when only "YOU" know what you are doing
Optimize only after achieved
Less is more!
5. Push
Once finished, tested and ready to share, it's time to push!
By pushing you will reflect your commits on your online fork. After that you can ask a pull-request toward the ad-hoc branch on the original repository.
For better understanding the above and others Git terms you may be helped by this graphical view:
6. Open a Pull Request
Once pushed back to your online fork, it’s time to open a Pull Request in order to get your code reviewed and applied to the official repository
Insert a thorough description in the Pull Request, indicating again the issue code (to easy link to Jira issue’s page), some useful info and whereas the PR is linked to another PR on another component.
7. Communicate
Comment and ask on the Jira issue’s page about suggestions, reasonings, findings and to update the community about your job. Be respectful and foster others in sharing their thoughts.
You can reach out to the community of contributors by joining our Slack workspace or by subscribing to our mailing list.
8. Stay tuned!
Very important, keep an eye on reviews and comments on your Pull Requests pages.
A Pull Request will NOT be merged (welcomed) until there will be unresolved conversations.
Keep also an eye on new developments landing on the component’s develop (default) branch and periodically resync your fork!
For more info see Git fork syncing (polish your work)
Thanks and happy coding!
Open Hospital powered by ISF
ISF © Informatici Senza Frontiere - ONLUS