Overview of Development Process and Access Control

This page is intended to document the development process, related workflow and access control to the Karnataka Learning Partnership infrastructure.

Work Offline

If you are contributing to the code base, we expect you to setup a development instance locally on your computer. Every new project will have associated setup instructions. The environment may be distributed as Vagrant images if required. If the database of the application that you are working is considerably large, you can dump a light version to setup the local environment. Before you push the code to Github, you can test the changes by connecting to the original database on dev.

Branch, Commit, Review, Merge

If you are working on a feature, you are expected to create a new branch and work off the 'master' and 'develop' branches. After development the code will be reviewed through a pull request to the 'develop' branch. If everything is in good shape, we will merge the code to 'master' at the next release.

Access Control

Access control to the server infrastructure will be completely task based. You should request for access and reason it, which will be evaluated. If the task can be performed locally, it should be done so. Access will be revoked right after the task is completed. You are not expected to be performing super user operations unless it is a system level critical task.


As a good practice, we should create a super-user and a user with read-only privileges. All data extraction will be done by the read-only user. If you are in-charge of updating and staging changes to databases, we expect you to make the change on the staging database, write migration scripts, review and then apply them on the production database during maintenance.

Whenever there's a change in the database schema, you are required to publish migration scripts and ensure everyone working on the project has applied the changes.

Last modified 4 years ago Last modified on 12/06/13 20:02:09