Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel

On this page:

Table of Contents

Background

Our developers are located all around the world. To enable them to work together on our software, we keep the source code in Internet-accessible revision control systems.  Active projects are hosted at GitHub, a popular host for Git-based projects. Some older projects are still available in our Subversion repository, using Subversion (SVN).  All code is world-readable, meaning that anyone in the world can view & download the source code.  In GitHub, anyone can freely make an account, fork a repository, and make any changes they wish to the code.  OpenMRS Full Committers have lots of experience within the OpenMRS project and have write access to all OpenMRS repositories, enabling them to make changes to the source code and accept pull requests from other developers.  OpenMRS Partial Committers have read/write access to nearly all repositories as well, but are expected to work on their specific project(s).  If you are looking for a stable release of the code, you should download it from the Downloads page on our wiki. The source code repositories on GitHub (and those remaining in Subversion) contain the latest versions with the latest development efforts and are generally not ready for production use.

Note

Subversion use is deprecated in favor of Git, with nearly all active projects hosted on GitHub.

Web Access

...

Where is the source code?

Most OpenMRS-related source code can be found on GitHub:

If you are looking for an OpenMRS application or module, you will want to visit the download page or the OpenMRS module repository.

Panel

On this page:

Table of Contents

Anonymous Read-Only Access

Anyone can browse the source code online with a browser. For example, you can browser code at https://github.com/openmrs

...

Anonymous Read-Only Access

...

.

To check out a local copy of the code using git:

Code Block
git clone https://github.com/openmrs/openmrs-core

...

See Using Git for more information

...

Subversion (deprecated)

(Only used for legacy projects that have not yet been migrated to GitHub)

A Subversion client is required if you want anonymous read-only access to the repository. You can also browse for projects via http://source.openmrs.org/browse.

...

.

...

For more help on using Subversion, read the Subversion website or Subversion book. The Subversion web site provides a list of clients and useful links (including a link to very useful Eclipse plug-in).

...

svn checkout http://svn.openmrs.org/openmrs-modules/logic/trunk logic

Read/Write Git Access

To submit changes to

...

a repository, we recommend following GitHub conventions of forking the

...

Read/Write Subversion Access

We encourage all new projects to start their own repos on GitHub. All active projects should consider migrating to GitHub.  We are no longer accepting new project development within our Subversion repository.

Requesting a branch

When we used Subversion, long-lived branches were often used for isolating feature development.  Such branches are discouraged on GitHub. Instead, fork the openmrs-core project or module repository into your own personal repository and get to work immediately!  Using git, most developers are creating & destroying local branches as needed to help organize their work.

Requesting a module or project

...

repository and submitting a pull request.  Push access to a repository is managed by the owner of the repository. For repositories under individual user accounts within GitHub, you can request access rights from that user. For repositories within the OpenMRS organization on GitHub, developers who are /dev/3 or above already have push privileges but are expected only to push to repositories when appropriate per our GitHub Conventions.

Creating a new module or project

Developers are encouraged to publish their OpenMRS-related work with an OSI-approved license under their account on GitHub.  Community-developed modules and projects may

...

request a project within the JIRA Issue Tracking System.

...

Using your personal repository on GitHub

  1. Create a new repo: https://github.com/new
  2. Name the project

...

  1. using our naming conventions for easier searching/finding of projects across GitHub

...

  1. repositories.
    1. Modules: "openmrs-module-yournewmoduleid" 
    2. Contributions: "openmrs-contrib-uniquename"
  2. Start using it immediately!

Requesting to store it in the OpenMRS organization on GitHub:

...

When multiple developers across multiple organizations are sharing a repository, it may be easier to host it under the OpenMRS organization on GitHub. If a repository needs to move under the OpenMRS organization in GitHub, please post this request to the Repository Management category on OpenMRS Talk.

See GitHub Code of Conduct > Hosting a module under the OpenMRS organization.

See Also