Use kala-drupal-project as default installation when starting all new Drupal projects
Introduction
It is important that all new Drupal projects that Kalamuna undertakes start from our current best practices. This ensures that as we improve our practice, we can capture these improvements in one place, and all new projects will adopt them. It also ensures that any deviations from our normal practice have been made intentionally for a reason. These practices are maintained in our kala-drupal-project repository. It has all the modules and configurations we frequently use in Drupal projects.
- A standardized directory structure.
- The kala-project recipe to create the initial configuration for the project.
- Essential contrib modules.
- The base GitHub actions with the build and deploy processes.
Decision
All new Drupal projects will use the kala-drupal-project as the starting point to create new projects.
Context
We must establish a standardized approach to starting new Drupal projects within the organization. Currently, there are multiple ways of initiating new Drupal projects, leading to inconsistency in the setup, dependencies, and configurations across projects. To streamline the process, we aim to standardize the way new Drupal projects are initiated by using a predefined starter template.
The kala-drupal-project is a repository that contains a set of pre-configured, best-practice components that our team has developed and tested for creating Drupal projects. It includes configurations, modules, libraries, and best practices that our team frequently uses across various projects. It will continue to be maintained and updated as new best practices come into play.
Consequences
- Consistency: Every new project will have a consistent baseline, reducing discrepancies and improving maintainability.
- Speed: Developers can get up and running quickly with a project template that already includes most of the necessary configurations, modules, and tools.
- Best Practices: Projects will automatically incorporate the best practices and configurations that the team has established and tested.
- Easier Maintenance: With all projects starting from the same template, maintaining updates, security patches, and configuration changes becomes easier and less error-prone.
Exceptions
- Existing Projects: This ADR does not apply to any projects that already exist or are in progress. Current and ongoing projects can continue to use their existing setup and configurations. There is no requirement to migrate or reconfigure these projects to adopt the "kala-drupal-project" template.
- Special Circumstances: Projects with unique requirements that cannot be met by the "kala-drupal-project" template may also be exempt. In such cases, a separate decision can be made to define the setup for those projects.
Additional Resources
None