Skip to content

Latest commit

 

History

History
117 lines (92 loc) · 3.47 KB

checklist-development.md

File metadata and controls

117 lines (92 loc) · 3.47 KB

Drupal 9.x Project Development Checklist

A checklist of common tools, settings, modules etc to check for a Drupal 9.x web project

Want to use a Docker image for development? Head to https://github.com/theodorosploumis/gitpod-drupal-workspace!

How to use this? I usually copy this checklist to a Github issue so I won't forget anything. Most of the times I delete items from the list so this is the full list.

Server type

  • Ubuntu LTS, stable (eg 22.04)

Server setup

Prefer to install all software globally.

  • php8+ (see required php extensions for drupal 9.x)
  • mysql
  • apache2
  • git
  • patch
  • drush-launcher
  • composer
  • openssh-server(ssh/sftp)
  • nodejs/npm (if needed)
  • Caching (eg memcache, redis etc)
  • Backups (files, db, all)
  • DNS (2 domains, STAGE and PRODUCTION)

Dev Packages (if needed)

SaaS

  • Create Github/Bitbucket/GitLab repository
  • Create Project Management project (eg Jira, Redmine etc)
  • Create a Trello board (if using Trello)
  • Setup Slack
  • Setup CI (eg Travis)
  • Setup CD (eg GitHub Actions)

Drupal Settings

ToDo: See template for settings.php.

  • Enable dev mode
  • Enable php error_log
  • Enable apache2 error_log
  • Copy ssh keys
  • Setup private and public files folders and permissions
  • Logging system and alerts (eg on Slack)

Modules/Themes

See Drupal favorite modules.

Site Architecture

  • Content types
  • Vocabularies
  • Entity Fields
  • Blocks
  • Menus and menu links
  • View modes
  • User Roles
  • Views
  • Text editor filters
  • Text editor widgets/plugins
  • Image styles
  • REST pages
  • Site functionality (eg search, mailchimp etc)
  • New things to try (eg a new tool)

Testing

Development tasks

  • Create Project folder
  • Create drush aliases
  • git-flow init
  • Setup cron jobs
  • Set xdebug
  • IDE setup (eg Phpstorm)
  • Create teamocil file
  • Create bash aliases
  • Create basic docker images needed (eg for testing or local development)
  • Create ddev/lando setup
  • Create gitpod setup

After development tasks

  • Disable modules: *_ui, dblog, devel, admin_menu, simplytest, kint.
  • Enable Caches
  • Enable syslog module
  • Provide customer credentials
  • Maintenance agreement
  • Submit to SE (eg Google), use xmlsitemap
  • Submit to Google Analytics
  • Submit to Google Webmaster tools
  • Submit to Showcase sites
  • Publish on my personal site (work)
  • Publish any Open source project that can be useful