Dirigent is an open-source project, contributions of all kinds are welcome, including financial contributions.
This guide contains instructions about the development process of the project that you should follow when contributing code.
For an overview of the architecture of this project, see ARCHITECTURE.md.
To run Dirigent locally, follow the Running from source code guide in the documentation, up to the Configure services section.
Additional requirements:
- Symfony binary
- Docker
# Optionally, copy the example Docker Compose configuration override file
cp compose.override.example.yaml compose.override.yaml
# Install dependencies
composer install
npm install
# Build frontend assets
npm run build # or watch for changes with: npm run watch
# Run services through Docker Compose
docker compose up -d
# Run the Symfony development server
symfony server:start -d
# Create & fill the development database
symfony console doctrine:database:create --if-not-exists
symfony console doctrine:schema:update --force
symfony console doctrine:fixtures:load --no-interaction# Run all linting jobs
symfony composer lint
# Individual linters
symfony composer lint:refactor # Rector (automatically applies changes)
symfony composer lint:coding-style # PHP-CS-Fixer (automatically applies changes)
symfony composer lint:static-analysis # PHPStan level 5
symfony composer lint:container # Symfony container validation
symfony composer lint:templates # Twig template validation# Prepare the Symfony test environment (if the database schema changed)
symfony composer tests:setup# Run all tests
symfony composer tests
# Run only PHP tests
symfony composer tests:php
symfony composer tests:php:unit
symfony composer tests:php:functional
# Run tests for Docker images
symfony composer tests:docker
symfony composer tests:docker:standalone