Change record status: 
Introduced in branch: 

Certain entity types, like user roles, filter formats, taxonomy vocabularies, and languages, all have a need for a specific ordering.
To make that easier, a specific subclass of EntityListController was added, \Drupal\Core\Config\Entity\DraggableListController.

In order for the controller to work properly, the entity type must have an weight entity key set in their entity type annotation.

To use the draggable list controller, a subclass needs to be created and specified in the entity type annotation. That subclass needs to implement getFormId() and very likely override buildHeader() and buildRow().

 * Provides a listing of user roles.
class RoleListController extends DraggableListController {

  public function getFormID() {
    return 'user_admin_roles_form';

  public function buildHeader() {
    $header['label'] = t('Name');
    return $header + parent::buildHeader();

  public function buildRow(EntityInterface $entity) {
    $row['label'] = $this->getLabel($entity);
    return $row + parent::buildRow($entity);

Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other updates done