Repository work flow structure
From OpenEMR Project Wiki
Overview
Our main official repository is kept on github. We migrated from cvs to git on 10/30/2010, which is described on the git migration wiki page. We then migrated the repository from sourceforge to GitHub on 8/31/2016. Our GitHub repository also has seven official mirrors, which are described below. The proper way for individual developers to set up their personal git repository is described on the git for OpenEMR tutorial wiki page. To avoid breaking the main GitHub git repository, we are using the following git repository structure, work flow and development structure:
Official git Main Repository
GitHub
- repository link: git://github.com/openemr/openemr.git
- web page link: http://github.com/openemr/openemr
Official git Repository Mirrors
Sourceforge
- repository link: git://git.code.sf.net/p/openemr/code
- web page link: http://sourceforge.net/projects/openemr/
- mirrors from GitHub repository every 30 minutes via an external script
bitbucket
- repository link: https://bitbucket.org/openemr/openemr.git
- web page link: http://bitbucket.org/openemr/openemr/
- mirrors from GitHub repository every 30 minutes via an external script
assembla
- repository link: git://git.assembla.com/openemr.git
- web page link: http://www.assembla.com/spaces/openemr/
- mirrors from GitHub repository every 30 minutes via an external script
codeplex
- repository link: https://git01.codeplex.com/openemr
- web page link: http://openemr.codeplex.com/
- mirrors from GitHub repository every 30 minutes via an external script
repo.or.cz
- repository link: git://repo.or.cz/openemr.git
- web page link: http://repo.or.cz/w/openemr.git
- Supposed to mirror from the GitHub repository every 60 minutes automatically by the repo.or.cz site.
Experimental Repository Mirrors
launchpad
- This is actually a Bazaar repository, which the Launchpad site automatically converts from git. Due to technical limitations (they plan to fix this), it is only able to mirror the master branch.
- repository link: http://code.launchpad.net/openemr
- web page link: http://code.launchpad.net/openemr
- Supposed to mirror from the GitHub repository every 4-6 hours automatically by the launchpad.net site.
- Note is has been broken since 2013.
Developer roles and work flow
Administrators
- These folks have access to all the project tools and codebase repositories.
Integration Developers
- These are the only developers with commit access to the GitHub repository.
- They have demonstrated common sense and proficiency in git and OpenEMR development.
- They are responsible for committing their own code.
- They are willing to commit the code of the "Privileged Developers" (when requested).
- Standardized methods to commit to the GitHub repository have been documented in the 'Advanced Usage' section of the git for OpenEMR tutorial wiki page . Rather than pull in the entire remote branch of somebody else's code, recommend pulling in each commit via the 'cherry-pick' command (this is specifically documented on the git for OpenEMR tutorial wiki page).
Privileged Developers
- These are developers that have demonstrated common sense and proficiency in OpenEMR development.
- They do not have commit access to the GitHub repository.
- Their code will be directly committed to the GitHub repository upon request to an "Integration Developer" in the Developer forum. (will be committed within 48 hours). To clarify, this is for code that is ready to be committed; ie. do not request commits of code that might need further review.
- To take advantage of this "fast-track" commit, you need to submit code via a public git branch. (instructions on how to do this can be found on this wiki page). If this is done correctly, then it only takes an "Integration Developer" several minutes to commit your code to the GitHub repository.
Standard Developers
- Standard developers whom have or are in process of submitting code.
- They do not have commit access to the GitHub repository.
- Their code needs to be reviewed before committing to the GitHub repository.
- Best way to do this is to submit code via a public git branch. (instructions on how to do this can be found on this wiki page). If this is done correctly, then it only takes an "Integration Developers" several minutes to commit your code to the GitHub repository if deemed acceptable by the community review.
Developers
- (Only sourceforge account name, company association, and link to their public repository are shown.)
- (Ideally, each developer should have their own sourceforge account along with a public repository.)
- (Names are alphabetically ordered)
Administrators
- Rod Roark (2006 - current)
- Brady Miller (2009 - current)
- Robert Down (2017 - current)
Integration Developers
- Brady Miller (repository)
- Robert Down (repository)
- Rod Roark (Rod at Sunset Systems) (repository)
- Scott Wakefield (repository)
Privileged Developers
- acmoore (repository)
- andres_paglayan
- anilnakkani (repository) (Anil at Ensoftek)
- apmuthu (repository)
- Arnab Naha (repository)
- CapMinds (repository1)(repository2) (Naina and Dinesh at CapMinds Technologies)
- cfapress
- coleedo (repository)
- Craig Bezuidenhout (Craig at TajEmo Enterprises) (current repository) (prior repository) (prior user)
- drbowen (repository)
- epsdky (repository)
- Jan Jajalla (repository)
- Juggernaut Systems Express (repository) (Sherwin at Juggernaut Systems Express)
- julialongtin (Julia at ZoneOne) (repository)
- jwallace00 (Jeremy at Medical Information Integration) (repository)
- kchapple (Ken at Medical Information Integration) (repository)
- Kevin Yeh (Kevin at IntegralEMR) (repository)
- kevmccor (repository)
- larrylart
- lcmaas3 (repository) (Luis at EMR Direct)
- markleeds
- Matrix (Oleg Sverdlov, Sharon Cohen, and Amiel Elboim at Matrix) (repository)
- Matthew Vita (repository)
- mcaloon (repository)
- mdsupport (repository)
- medmasterpro (repository)
- michaelf5 (Michael at Garden State Health Systems) (repository)
- mmfsystems (repository)
- Practice Provider (Umer and Dev-PracticeProvider at Practice Provider) (repository)
- rachoac (Aron at Medical Information Integration) (repository)
- Ray Magauran (repository)
- rishabhemr (repository)
- Roberto Vasquez (repository)
- rreddy70 (Ram at Ensoftek) (repository)
- Sam Likins (repository)
- semteacher (repository)
- stephen-smith (repository)
- Stephen Waite (repository)
- tekknogenius
- Terry Hill (repository)
- Tony McCormick (Tony at Medical Information Integration) (repository)
- visolveemr (Ranjith at Visolve) (repository)
- visolve-selvi (Selvi at Visolve) (repository1) (repository2)
- whimmel (repository)
- zhhealthcare (Paul, Jacob, Sam, Ajil, Vinish, Eldho and Teny at Z&H Healthcare Solutions) (repository)
Standard Developers
- Aaric Pittman (repository)
- AppChecker (repository)
- aaversa (Aric at Health Care Technologies)
- ajperezcrespo (repository) (Alfonso at MD-Technologies)
- Art Eaton (repository)
- blankev (repository)
- bo2999
- clucena (repository)
- corburn (repository)
- cornfeed (repository)
- Daniel Pflieger (Daniel at Medical Information Integration) (repository)
- derekbrownjr (repository)
- dlee5400
- dwr1975 (repository)
- FikriFadzil (repository)
- fndtn357 (repository)
- fsgl
- garcianc (repository)
- geovasilakos
- hielkema (repository)
- hrivera787
- iankarlwallace (repository)
- ideaman911
- James Newlin (repository)
- jason0 (Jason at Medical Information Integration) (repository)
- Jerry Padgett (repository)
- jjwjj
- Jyotsna (repository)
- kjs3250
- Kyle Nave (repository)
- lucian0308 (repository)
- meditcare
- Paul Williams (repository)
- penguin8r
- pithonsoft (repository)
- produnis (repository)
- quartarian (repository)
- richsiy (repository)
- RitwikG (repository)
- rmoshiri (repository)
- rnagul
- Rosion (repository)
- rpl121 (repository)
- sahilsinha (repository)
- skaryshev (repository)
- sprdad (repository)
- sukhjeet81 (repository)
- teddziuba (repository)
- Tudor Popa (repository)
- tvgm2 (repository)
- vikrasharma (repository)
- weesnerkim (repository)
- Yisrael (repository)
- ytiddo
- zaalt (repository)
- (All other developers not mentioned also fall into this category)