First of all, thanks for taking time to contribute.
- Ensure all your commits are signed, see.
- Ensure your PR includes tests.
- Ensure all status checks are passing, including tests before following up on reviews. A reviewer is likely not going to review if there are failing status checks.
Fix and create a pr.
First, create an issue, You can now dig into the source code to try to fix the bug. Have a look at the Project Structure below to better understand how the project is designed.
This repository follows a monorepo structure. We use lerna and yarn workspaces. dev dependencies that affect more than one package are added to the global package.json. The repository is further subdivided into 2 workTrees.
RootPath/app
folder - this workspace contains the react application. it imports package views (usually in the second work tree) and hooks them up together via the router. It also makes use a few components from our Js utilities repo to support the authorization workflowRootPath/packages
folder - Holds several packages that are consumed by the react application. One such package will usually export views for performing CRUD operations for a certain opensrp server entity. As an example The team Management package will export views through which users can create, read, update, and delete teams resource on the server.
Here is a more visual representation of how the different components work with each other.
The terms peerDependencies
and dependencies
are to be interpreted as defined here
# make sure there are no stale package builds
yarn lerna:prepublish
yarn test
We use Eslint and prettier to enforce lint rules on the repo. This should run automatically with every commit. However you can still manually run the lint command yarn lint --fix
You can now create a pr, make sure to link to the issue getting resolved, add a relevant description of the issue.
Its very important that you start with an issue, we may need to have discussions on the design, the maintenance burden it would add, etc. Once the way forward is decided the steps to resolving the issue should be similar to those in Fixing a bug
If you need any further information or help, do not hesitate to get in touch by opening an issue.