OSCAR EMR is moving over u it's Git/Gerrit/Sourceforge architecture to a Bitbucket. What does this mean?
1) Easier to contribute code
2) Better integration with JIRA
What is Bitbucket?
Bitbucket is a web based hosting service for projects to maintain their source code. OSCAR EMRs code is managed within a GIT (what is git?) repository. In addition to hosting repositories, Bitbucket also allows for the organization of these repositories within teams and projects.
OSCAR EMR Team: https://bitbucket.org/oscaremr/
Within the team are multiple projects.
OSCAR EMR Projects: https://bitbucket.org/oscaremr/profile/projects
OSCAR EMR maintains a number of repositories. Many are libraries used to support modules within the EMR, but there are also contributing projects which we also host for our community. Make sure to explore.
Bitbucket also allows for members of the code review committee to review and merge changes being contributed back to OSCAR EMR. This process is essential to keep the code more stable, enforce coding standards, and ensure the ISO requirements of the Quality Management System are enforced.
Bitbucket is also an integral part of our Continuous Integration (CI) pipeline which offers seamless integration with Jenkins.
Continuous Integration
"Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly." - Martin Fowler
Our primary tool for automated builds is open source Jenkins.
OSCAR EMR Jenkins http://jenkins.oscar-emr.com
OSCAR EMR's Bitbucket is seamlessly integrated with Jenkins. Whenever one of the following events occur
1) A push to any branch (such as a feature branch)
2) A pull request is approved
3) A pull request is merged
Jenkins will be notified and a build is triggered which will
1) check out the changes from GIT to a workspace
2) execute maven (clean verify pmd:pmd)
3) Archive changes (Dropbox and sometimes maven repository)
4) Notify Bitbucket of build results
What about Gerrit and SourceForge?
SourceForge will no longer be used for
1) Mirroring code from primary GIT
2) Maven repository
Note that these services may continue to operate for some time for archival reasons.
The maven repository is now located here: http://mvn.oscar-emr.com/repository/
Gerrit will be decommissioned. Any git projects not being migrated to Bitbucket (such as myoscar) will be archived into a zip file and made available on SourceForge under file releases.