Development standarts - MathparLearningTeam/Documentation GitHub Wiki

Deveopmnet workflow

Tasks list is defined in Trello. When starting work on a task, it should be moved to "In development" category.

Before starting the implementation, pull all the changes from remote integration branch. After that create the new branch related to the task based on the integration branch. When finished the work for the day, push all finished commits (chunks of task) to your feature branch and create the pull request in integration even if feature is not completed. Be aware that PR MUST NOT break the application (neither tests nor existing features).

When the development is finished move the task card to QA. Due to CI/CD process the feature will be deployed to the testing environment where it is possible to check how the feature behaves, measure its efficiency etc.

When the feature is tested, the card should be moved to Done section.

When required, it is possible to cut the application codebase to deploy all the changes to upper environments. During the cut all the changes from integration are merged to master, new tag is created, images are baked and version of an application is incremented. After the process is completed, master branch is merged into integration to update application version incremented during the cut.

Recommended IDE/tools

Recommended IDE for Java backend and test framework is IntelliJ idea. For client development it's recommended to use either WebStorm from JetBrains or IntelliJ idea.

Keep commits clean

It's mandatory to keep commits clean from unnecessary/temporary/large files as they will make development only harder. Such files could be: DS_Store files from Mac filesystem, development notes/urls in temporary file, compilation results etc.

Also it's strictly forbidden to commit any credentials, passwords or other secret texts to the VCS.