Intro & Before you start: Setting up a Drupal 8 module dev environment
Should you start upgrading now? Yes! Helpful overall information and environment setup instructions
Step 1: Convert mymodule.info to mymodule.info.yml
Before we begin replacing any code, we need to convert the module's .info file to a YAML file so Drupal 8 will recognize it.
Step 2: Convert automated tests to Drupal 8
Note: If the module does not have an automated test suite, skip to step 3.
Step 3: Convert hook_menu() and forms
This page is still under development.
Step 4: Convert Drupal 7 Variables to Drupal 8 Configuration
In Drupal 7 and before one of the common ways of storing settings was using variable_get() and variable_set(). In Drupal 8 these have been
Step 5: How to upgrade D7 variables to D8's state system
Old-style Drupal Variables (formerly controlled with variable_set and variable_get) need to be converted to Drupal 8's new configuration
Debugging Drupal 8 module upgrades
This page is still under development.
Resources and tutorials
This section of the Drupal 8 module upgrade guide provides examples, tutorials, and other resources for upgrading from Drupal 7 to Drupal 8.
D7 to D8 Upgrade: Generated HTML
Core CSS classes
D7 to D8 tutorial: pathinfo module
This is a live step-by-step tutorial of my process of porting pathinfo module form Drupal 7.x to Drupal 8.x as part of the global sprint
D7 to D8 upgrade tutorial: Pants module
This is the hands-on companion to the Pants module upgrading tutorial. This page contains two presentations, one from Sydney and another
D7 to D8 upgrade: fields, widgets and formatters
Why not try the example module explained on this page yourself? Download
D7 to D8 upgrade tutorial: Convert hook_menu() and hook_menu_alter() to Drupal 8 APIs
The new systems replacing hook_menu()
WSCCI Conversion Guide
This guide is a basic tutorial for the process of converting legacy page callbacks to new-style controllers. It is not a guide for porting
WSCCI Conversion Guide - Pass 1
1. Leverage the new routing system
WSCCI Conversion Guide - Pass 2
Dig deeper into our new controller class
WSCCI Conversion Guide - Pass 3
Named parameters in the router
WSCCI Conversion Guide - Best practices
Separate controller objects for different return types