# Pull Requests
All code at Marfeel must pass the same pull request process before landing on production. This article focuses on the pull request process for Media Group repositories.
The process can be divided into 2 different categories: human verification and automated actions.
# Human verification
A Marfeel developer must always approve any pull request before it can be merged.
In addition to this general rule, some files are protected via GitHub's codeowners feature (opens new window).
The exact files protected vary per Media Group, refer to the CODEOWNERS
file at the root of the Media Group.
Overall:
- ALOT owns
twister.json
- Design owns
ui.json
Marfeel Customer Success can request additional code owners for specific files, for specific Mediagroups.
# Automated actions
Compilation, as well as code quality and performance checks, run for every new pull request and after every new commit.
The exact actions depend on the type of build: incremental or full.
A full build uses Jinks or Marfeel CLI to compile static assets as well as running tests and linters.
A build is Incremental by default, but a full is required when there are changes to:
package.json
and/orpackage-lock.json
- JavaScript files
- CSS files
- JSP files
- Json Files inside the
themes
folder providers
folderfeatures.json
Other cases are only JSON file changes, which trigger an incremental build.
# Full build process
A full build triggers the following:
Run Build with Jinks (using Maven).
Install and prepare npm dependencies
Build with Library:
- Build JS and CSS
- Run test suite
- Run Linters
End2End testing
# Incremental build process
Incremental builds only trigger a JSON linter on the modified JSON files.
# Common build actions
- If CDN-related files are modified, a CDN deploy is triggered.
- Marfeel sections compilation