Thanks for your interest in contributing to Pathling.
You can find out a bit more about Pathling by reading the README file within this repository.
Issues can be used to:
- Report a defect
- Request a new feature or enhancement
- Ask a question
New issues will be automatically populated with a template that highlights the information that needs to be submitted with an issue that describes a defect. If the issue is not related to a defect, please just delete the template and replace it with a detailed description of the problem you are trying to solve.
Please communicate with us (preferably through creation of an issue) before embarking on any significant work within a pull request. This will prevent situations where people are working at cross-purposes.
Your branch should be named issue/[GitHub issue #]
.
You will need the following software to build the solution:
- Java 17
- Maven 3+
- Node.js 19.x
- Python 3.7+
To build and install locally, run:
mvn clean install
To build the Docker image, activate the docker
profile.
All components of Pathling are versioned together, except for the JavaScript client library and the JavaScript import library, which are each versioned independently. All versioning follows Semantic Versioning 2.0.0.
The "public API" of Pathling is defined as:
- the FHIR API;
- the public API of the library API;
- the public API of the Python library;
- the public API of the R library;
- the Parquet schema, and;
- the configuration schema (see Configuration).
The branching strategy is very simple and is based on
GitHub Flow. There are no
long-lived branches, all changes are made via pull requests and will be the
subject of an issue branch that is created from and targeting main
.
We release frequently, and sometimes we will make use of a short-lived branch to aggregate more than one PR into a new version.
Maven POM versions on main
are always release versions. Builds are always
verified to be green within CI before merging to main. Merging to main
automatically triggers publishing of artifacts and deployment of the software to
production environments such as the Pathling website and sandbox instance.
This repository uses EditorConfig, please use it to reformat your code before pushing.
Before making a contribution, please read the code of conduct.