Skip to content

Development Workflow Documentation

Leirbag edited this page Apr 12, 2024 · 1 revision

Development Workflow Documentation

Overview

This document outlines the development workflow and deployment system used for our project, which integrates GitHub for version control and automated processes. The main branches involved in this workflow are develop for ongoing development and main for stable releases.

Branch Strategy

Workflow

Develop Branch

  • The develop branch serves as the primary branch for all development activities.
  • All feature branches are created from and merged back into develop after code review and testing.

Main Branch

  • The main branch contains the production-ready code.
  • Code is merged from develop to main during scheduled releases or after significant features or fixes.

Automated Deployment System

Overview

A new automated deployment system has been implemented to streamline the process of deploying changes, managing versioning, and generating changelogs.

Key Components

  1. Version Management: Automatic versioning is handled through the deployment system, which updates the version numbers based on the type of changes made (major, minor, or patch).

  2. Changelog Generation: Changelogs are automatically generated from commit messages and are formatted into a markdown file. This file is updated every time changes are merged from develop to main.

Workflow Steps

  1. Commit Changes: Developers commit changes to their feature branches with clear, structured commit messages that follow a predefined format to facilitate automated changelog generation.

  2. Open Pull Requests: Once a feature or fix is completed, a pull request is opened from the feature branch to develop. The PR must pass all automated tests and require at least one peer review.

  3. Merge to Develop: After approval, changes are merged into develop, where any additional integration tests are run.

  4. Release Preparation: When ready for a release, a pull request from develop to main is created. This includes final testing and any last-minute documentation updates.

  5. Changelog and Versioning: Upon merging to main, the automated system updates the changelog and increments the version number based on the changes. The changelog and the incremented version are then committed back to the main branch.

  6. Deployment: Finally, the changes in the main branch are deployed to production.

Example of a Good Commit Message

[+] Add search functionality to the user interface

- Implements a new search bar in the UI
- Allows users to search their data by keywords
- Updates unit tests to cover new search functionality

Interaction with Front End

For those looking to interact with or test the front end, the latest stable version is always deployed from the main branch. Continuous integration tools ensure that only tested and approved changes are deployed to production.