Back to home page

EIC code displayed by LXR

 
 

    


Warning, /tutorial-jana2/_episodes/05-contributing.md is written in an unsupported language. File is not indexed.

0001 ---
0002 title: "Contibuting code changes to the EICrecon repository"
0003 teaching: 10
0004 exercises: 10
0005 questions:
0006 - "How do I submit code to the EICrecon repository?"
0007 objectives:
0008 - "Understand naming conventions for EICrecon"
0009 - "Submitting a Pull Request for a contribution to EICrecon"
0010 keypoints:
0011 - "Write code in a style consistent with the rest of the repository."
0012 - "Contributions should be made through the GitHub Pull Request mechansim."
0013 ---
0014 
0015 
0016 ## Repository
0017 
0018 We use GitHub as the main code repository tool. The repositories are located:
0019 
0020 - [EICrecon][eicrecon] - EIC reconstruction algorithms and EIC-related code for JANA framework
0021 - [JANA2][jana2] - The core framework 
0022 
0023 If you hesitate where to file an issue or a question, then the most probably it should be done in EICrecon project. There are [EICrecon issues][eicrecon-issues] and [discussions](https://github.com/eic/EICrecon/discussions)
0024 
0025 There is also [EICrecon project board][eicrecon-project] where one can see what issues are in work and what could be picked up. 
0026 
0027 #### Exercise:
0028 
0029 - Go to [EICrecon project board][eicrecon-project] and see what tickets are marked as "TODO" 
0030 
0031 
0032 
0033 ## Contributing workflow
0034 
0035 - A workflow starts from creating an issue with a bug report or a feature request. It is important to create an issue even if the subject was discussed on a meeting, personally, etc. 
0036 
0037 - Then create a branch out of the issue. 
0038 
0039    ![Create branch from issue](./../assets/img/contributing/create_branch_1.png)
0040 
0041    ![Create branch from issue](./../assets/img/contributing/create_branch_2.png) 
0042 
0043 - After you commit and push changes to the branch, create a pull request (PR). As soon as PR is created a continious integration (CI) system will run to test the project compiles and runs on EIC environment. Any further push to this branch will trigger CI rerun the tests and check if merge is ready to be done. PRs are also a good place do discuss changes and code with collaborators. So it might be reasonable to create a PR even if not all work on issue is done. In this case create a Draft PR. 
0044 
0045    ![Create branch from issue](./../assets/img/contributing/create_branch_3.png)
0046 
0047    ![Create branch from issue](./../assets/img/contributing/create_branch_4.png)
0048 
0049    To summarize:
0050 
0051    - Create PR
0052    - Fill the information
0053    - Use "Draft PR" if the work is not done
0054    - Assign a reviewer
0055 
0056 - Before accepting the Pull Requiest code goes through a code review by one of the core developers. If you need someone particular to review your changes - select the reviewer from the menu. Otherwise one of the developers will review the code and accept the PR.
0057 
0058 More on the EIC contribution guide is in [this tutorial][eic-environment-tutorial], [video][eic-environment-youtube]
0059 
0060 ## Coding style
0061 
0062 One can find coding style and other contributins policies at [CONTRIBUTING.md](https://github.com/eic/EICrecon/blob/main/CONTRIBUTING.md). It is yet to be finished but one can find current decisions on coding style there
0063 
0064 
0065 ## References
0066 
0067 - [EICrecon][eicrecon]
0068 - [EICrecon-project][eicrecon-project]
0069 - [EICrecon-issues][eicrecon-issues]
0070 - [EICrecon-discussions][eicrecon-discussions]
0071 - [jana2][jana2]
0072 - [EIC environment - youtube][eic-environment-youtube]
0073 - [EIC environment - tutorial][eic-environment-tutorial]
0074 
0075 [eicrecon]: https://github.com/eic/EICrecon
0076 [eicrecon-project]: https://github.com/orgs/eic/projects/6/views/1
0077 [eicrecon-issues]: https://github.com/eic/EICrecon/issues
0078 [eicrecon-discussions]: https://github.com/eic/EICrecon/discussions
0079 [jana2]: https://github.com/JeffersonLab/JANA2
0080 [eic-environment-youtube]: https://youtu.be/Y0Mg24XLomY?list=PLui8F4uNCFWm3M3g3LG2cOledhI7IvTAJ
0081 [eic-environment-tutorial]: https://eic.github.io/tutorial-setting-up-environment/
0082 
0083 [EICrecon project on GitHub]()
0084 
0085 {% include links.md %}
0086