OSCAR EMR Bitbucket primer





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.


The big picture



Related pages