Ga naar hoofdinhoud

Pipelinq — Developer Guide

Branching Strategy

This project follows a strict promotion-based branching model. Code flows upward through environments, and each branch has rules about which source branches it accepts.

feature/* → development → beta → main
hotfix/* → (any branch)

Branch Roles

BranchPurposeAccepts PRs from
mainProduction-ready releasesbeta, hotfix/*
betaPre-release testing and stabilisationdevelopment, hotfix/*
developmentIntegration of completed featuresfeature/*, hotfix/*
feature/*Individual feature workCreated from development
hotfix/*Urgent production fixesCreated from main, merged into any branch

Flow Diagram

Branch Policy Enforcement

A Branch Policy Check runs on every PR to main, beta, and development. It automatically blocks PRs from unauthorised source branches:

  • PR to main from feature/xblocked
  • PR to main from betaallowed
  • PR to beta from feature/xblocked
  • PR to beta from developmentallowed
  • PR to development from some-random-branchblocked
  • PR to development from feature/xallowed
  • PR to any branch from hotfix/xalways allowed

Working with Hotfixes

Hotfixes bypass the normal promotion flow for urgent production issues:

  1. Create hotfix/description from main
  2. Implement and test the fix
  3. Open PRs to main, beta, and development (to keep all branches in sync)

Quality Checks

All PRs to main, beta, and development must pass these blocking checks before merge:

CheckToolCommand
PHP Lintphp -lcomposer lint
PHP Coding StandardsPHPCS (Conduction standard)composer phpcs
PHP Mess DetectionPHPMDcomposer phpmd
PHP Code Metricsphpmetrics (informational)composer phpmetrics
ESLint + StylelintESLint + Stylelintnpm run lint && npm run stylelint
Branch PolicyGitHub ActionsAutomatic

Running Quality Checks Locally

Before pushing, run all checks locally to catch issues early:

# PHP checks
composer phpcs # Coding standards (auto-fix: composer cs:fix)
composer phpmd # Mess detection
composer phpmetrics # Code metrics report

# Frontend checks
npm run lint && npm run stylelint

Auto-fixing

PHPCS can automatically fix many coding standard violations:

composer cs:fix         # Auto-fix what PHPCBF can handle (~60% of issues)

Getting Started

Prerequisites

  • PHP 8.1+
  • Composer 2.x
  • Node.js 20+
  • npm

Setup

# Install PHP dependencies
composer install

# Install frontend dependencies
npm ci

# Run the app in development mode
npm run dev

Creating a New Feature

# Start from development
git checkout development
git pull origin development

# Create your feature branch
git checkout -b feature/my-feature

# ... implement, commit, push ...
git push -u origin feature/my-feature

# Open a PR to development