[1mdiff --git a/core/modules/datetime/datetime.module b/core/modules/datetime/datetime.module[m
[1mindex ccf1a0c..27b52e4 100644[m
[1m--- a/core/modules/datetime/datetime.module[m
[1m+++ b/core/modules/datetime/datetime.module[m
[36m@@ -46,7 +46,8 @@[m [mfunction datetime_element_info() {[m
   $types['datetime'] = array([m
     '#input' => TRUE,[m
     '#element_validate' => array('datetime_datetime_validate'),[m
[31m-    '#process' => array('datetime_datetime_form_process'),[m
[32m+[m[32m    '#process' => array('datetime_datetime_form_process', 'form_process_group'),[m
[32m+[m[32m    '#pre_render' => array('form_pre_render_group'),[m
     '#theme' => 'datetime_form',[m
     '#theme_wrappers' => array('datetime_wrapper'),[m
     '#date_date_format' => $date_format,[m
[36m@@ -991,11 +992,11 @@[m [mfunction datetime_form_node_form_alter(&$form, &$form_state, $form_id) {[m
   $format_type = datetime_default_format_type();[m
 [m
   // Alter the 'Authored on' date to use datetime.[m
[31m-  $form['author']['date']['#type'] = 'datetime';[m
[32m+[m[32m  $form['created']['#type'] = 'datetime';[m
   $date_format = entity_load('date_format', 'html_date')->getPattern($format_type);[m
   $time_format = entity_load('date_format', 'html_time')->getPattern($format_type);[m
[31m-  $form['author']['date']['#description'] = t('Format: %format. Leave blank to use the time of form submission.', array('%format' => datetime_format_example($date_format . ' ' . $time_format)));[m
[31m-  unset($form['author']['date']['#maxlength']);[m
[32m+[m[32m  $form['created']['#description'] = t('Format: %format. Leave blank to use the time of form submission.', array('%format' => datetime_format_example($date_format . ' ' . $time_format)));[m
[32m+[m[32m  unset($form['created']['#maxlength']);[m
 }[m
 [m
 /**[m
[1mdiff --git a/core/modules/node/lib/Drupal/node/NodeFormController.php b/core/modules/node/lib/Drupal/node/NodeFormController.php[m
[1mindex 1cc58a7..8b6f8a0 100644[m
[1m--- a/core/modules/node/lib/Drupal/node/NodeFormController.php[m
[1m+++ b/core/modules/node/lib/Drupal/node/NodeFormController.php[m
[36m@@ -133,14 +133,15 @@[m [mpublic function form(array $form, array &$form_state) {[m
       '#access' => $node->isNewRevision() || user_access('administer nodes'),[m
     );[m
 [m
[31m-    $form['revision_information']['revision']['revision'] = array([m
[32m+[m[32m    $form['revision'] = array([m
       '#type' => 'checkbox',[m
       '#title' => t('Create new revision'),[m
       '#default_value' => $node->isNewRevision(),[m
       '#access' => user_access('administer nodes'),[m
[32m+[m[32m      '#group' => 'revision_information',[m
     );[m
 [m
[31m-    $form['revision_information']['revision']['log'] = array([m
[32m+[m[32m    $form['log'] = array([m
       '#type' => 'textarea',[m
       '#title' => t('Revision log message'),[m
       '#rows' => 4,[m
[36m@@ -151,6 +152,7 @@[m [mpublic function form(array $form, array &$form_state) {[m
           ':input[name="revision"]' => array('checked' => TRUE),[m
         ),[m
       ),[m
[32m+[m[32m      '#group' => 'revision_information',[m
     );[m
 [m
     // Node author information for administrators.[m
[36m@@ -175,7 +177,7 @@[m [mpublic function form(array $form, array &$form_state) {[m
       '#weight' => 90,[m
     );[m
 [m
[31m-    $form['author']['name'] = array([m
[32m+[m[32m    $form['uid'] = array([m
       '#type' => 'textfield',[m
       '#title' => t('Authored by'),[m
       '#maxlength' => 60,[m
[36m@@ -183,13 +185,15 @@[m [mpublic function form(array $form, array &$form_state) {[m
       '#default_value' => $node->getAuthorId()? $node->getAuthor()->getUsername() : '',[m
       '#weight' => -1,[m
       '#description' => t('Leave blank for %anonymous.', array('%anonymous' => $user_config->get('anonymous'))),[m
[32m+[m[32m      '#group' => 'author',[m
     );[m
[31m-    $form['author']['date'] = array([m
[32m+[m[32m    $form['created'] = array([m
       '#type' => 'textfield',[m
       '#title' => t('Authored on'),[m
       '#maxlength' => 25,[m
       '#description' => t('Format: %time. The date format is YYYY-MM-DD and %timezone is the time zone offset from UTC. Leave blank to use the time of form submission.', array('%time' => !empty($node->date) ? date_format(date_create($node->date), 'Y-m-d H:i:s O') : format_date($node->getCreatedTime(), 'custom', 'Y-m-d H:i:s O'), '%timezone' => !empty($node->date) ? date_format(date_create($node->date), 'O') : format_date($node->getCreatedTime(), 'custom', 'O'))),[m
       '#default_value' => !empty($node->date) ? $node->date : '',[m
[32m+[m[32m      '#group' => 'author',[m
     );[m
 [m
     // Node options for administrators.[m
[36m@@ -208,16 +212,19 @@[m [mpublic function form(array $form, array &$form_state) {[m
       '#weight' => 95,[m
     );[m
 [m
[31m-    $form['options']['promote'] = array([m
[32m+[m[32m    $form['promote'] = array([m
       '#type' => 'checkbox',[m
       '#title' => t('Promoted to front page'),[m
       '#default_value' => $node->isPromoted(),[m
[32m+[m[32m      '#group' => 'options',[m
[32m+[m
     );[m
 [m
[31m-    $form['options']['sticky'] = array([m
[32m+[m[32m    $form['sticky'] = array([m
       '#type' => 'checkbox',[m
       '#title' => t('Sticky at top of lists'),[m
       '#default_value' => $node->isSticky(),[m
[32m+[m[32m      '#group' => 'options',[m
     );[m
 [m
     return parent::form($form, $form_state, $node);[m
[36m@@ -314,11 +321,11 @@[m [mpublic function validate(array $form, array &$form_state) {[m
     }[m
 [m
     // Validate the "authored by" field.[m
[31m-    if (!empty($form_state['values']['name']) && !($account = user_load_by_name($form_state['values']['name']))) {[m
[32m+[m[32m    if (!empty($form_state['values']['uid']) && !($account = user_load_by_name($form_state['values']['uid']))) {[m
       // The use of empty() is mandatory in the context of usernames[m
       // as the empty string denotes the anonymous user. In case we[m
       // are dealing with an anonymous user we set the user ID to 0.[m
[31m-      $this->setFormError('name', $form_state, $this->t('The username %name does not exist.', array('%name' => $form_state['values']['name'])));[m
[32m+[m[32m      $this->setFormError('uid', $form_state, $this->t('The username %name does not exist.', array('%name' => $form_state['values']['uid'])));[m
     }[m
 [m
     // Validate the "authored on" field.[m
[36m@@ -420,15 +427,15 @@[m [mpublic function buildEntity(array $form, array &$form_state) {[m
     $entity = parent::buildEntity($form, $form_state);[m
     // A user might assign the node author by entering a user name in the node[m
     // form, which we then need to translate to a user ID.[m
[31m-    if (!empty($form_state['values']['name']) && $account = user_load_by_name($form_state['values']['name'])) {[m
[32m+[m[32m    if (!empty($form_state['values']['uid']) && $account = user_load_by_name($form_state['values']['uid'])) {[m
       $entity->setAuthorId($account->id());[m
     }[m
     else {[m
       $entity->setAuthorId(0);[m
     }[m
 [m
[31m-    if (!empty($form_state['values']['date']) && $form_state['values']['date'] instanceOf DrupalDateTime) {[m
[31m-      $entity->setCreatedTime($form_state['values']['date']->getTimestamp());[m
[32m+[m[32m    if (!empty($form_state['values']['created']) && $form_state['values']['created'] instanceOf DrupalDateTime) {[m
[32m+[m[32m      $entity->setCreatedTime($form_state['values']['created']->getTimestamp());[m
     }[m
     else {[m
       $entity->setCreatedTime(REQUEST_TIME);[m
[1mdiff --git a/core/modules/node/lib/Drupal/node/NodeTranslationController.php b/core/modules/node/lib/Drupal/node/NodeTranslationController.php[m
[1mindex 9568aeb..ee4e3cd 100644[m
[1m--- a/core/modules/node/lib/Drupal/node/NodeTranslationController.php[m
[1m+++ b/core/modules/node/lib/Drupal/node/NodeTranslationController.php[m
[36m@@ -56,8 +56,8 @@[m [mpublic function entityFormEntityBuild($entity_type, EntityInterface $entity, arr[m
       $form_controller = content_translation_form_controller($form_state);[m
       $translation = &$form_state['values']['content_translation'];[m
       $translation['status'] = $form_controller->getEntity()->isPublished();[m
[31m-      $translation['name'] = $form_state['values']['name'];[m
[31m-      $translation['created'] = $form_state['values']['date'];[m
[32m+[m[32m      $translation['uid'] = $form_state['values']['uid'];[m
[32m+[m[32m      $translation['created'] = $form_state['values']['created'];[m
     }[m
     parent::entityFormEntityBuild($entity_type, $entity, $form, $form_state);[m
   }[m
[1mdiff --git a/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php[m
[1mindex 52dd047..c5b4514 100644[m
[1m--- a/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php[m
[1m+++ b/core/modules/node/lib/Drupal/node/Tests/NodeCreationTest.php[m
[36m@@ -149,7 +149,7 @@[m [mpublic function testAuthorAutocomplete() {[m
 [m
     $this->drupalGet('node/add/page');[m
 [m
[31m-    $result = $this->xpath('//input[@id="edit-name" and contains(@data-autocomplete-path, "user/autocomplete")]');[m
[32m+[m[32m    $result = $this->xpath('//input[@id="edit-uid" and contains(@data-autocomplete-path, "user/autocomplete")]');[m
     $this->assertEqual(count($result), 0, 'No autocompletion without access user profiles.');[m
 [m
     $admin_user = $this->drupalCreateUser(array('administer nodes', 'create page content', 'access user profiles'));[m
[36m@@ -157,7 +157,7 @@[m [mpublic function testAuthorAutocomplete() {[m
 [m
     $this->drupalGet('node/add/page');[m
 [m
[31m-    $result = $this->xpath('//input[@id="edit-name" and contains(@data-autocomplete-path, "user/autocomplete")]');[m
[32m+[m[32m    $result = $this->xpath('//input[@id="edit-uid" and contains(@data-autocomplete-path, "user/autocomplete")]');[m
     $this->assertEqual(count($result), 1, 'Ensure that the user does have access to the autocompletion');[m
   }[m
 [m
[1mdiff --git a/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php b/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php[m
[1mindex c8d554c..a56c48c 100644[m
[1m--- a/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php[m
[1m+++ b/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php[m
[36m@@ -155,9 +155,9 @@[m [mprotected function doTestAuthoringInfo() {[m
         'created' => REQUEST_TIME - mt_rand(0, 1000),[m
       );[m
       $edit = array([m
[31m-        'name' => $user->getUsername(),[m
[31m-        'date[date]' => format_date($values[$langcode]['created'], 'custom', 'Y-m-d'),[m
[31m-        'date[time]' => format_date($values[$langcode]['created'], 'custom', 'H:i:s'),[m
[32m+[m[32m        'uid' => $user->getUsername(),[m
[32m+[m[32m        'created[date]' => format_date($values[$langcode]['created'], 'custom', 'Y-m-d'),[m
[32m+[m[32m        'created[time]' => format_date($values[$langcode]['created'], 'custom', 'H:i:s'),[m
       );[m
       $this->drupalPostForm($uri['path'], $edit, $this->getFormSubmitAction($entity), array('language' => $languages[$langcode]));[m
     }[m
[1mdiff --git a/core/modules/node/lib/Drupal/node/Tests/PageEditTest.php b/core/modules/node/lib/Drupal/node/Tests/PageEditTest.php[m
[1mindex 3e52eb0..10252a8 100644[m
[1m--- a/core/modules/node/lib/Drupal/node/Tests/PageEditTest.php[m
[1m+++ b/core/modules/node/lib/Drupal/node/Tests/PageEditTest.php[m
[36m@@ -114,21 +114,21 @@[m [mfunction testPageAuthoredBy() {[m
 [m
     // Try to change the 'authored by' field to an invalid user name.[m
     $edit = array([m
[31m-      'name' => 'invalid-name',[m
[32m+[m[32m      'uid' => 'invalid-name',[m
     );[m
     $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));[m
     $this->assertText('The username invalid-name does not exist.');[m
 [m
     // Change the authored by field to an empty string, which should assign[m
     // authorship to the anonymous user (uid 0).[m
[31m-    $edit['name'] = '';[m
[32m+[m[32m    $edit['uid'] = '';[m
     $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));[m
     $node = node_load($node->id(), TRUE);[m
     $this->assertIdentical($node->getAuthorId(), '0', 'Node authored by anonymous user.');[m
 [m
     // Change the authored by field to another user's name (that is not[m
     // logged in).[m
[31m-    $edit['name'] = $this->web_user->getUsername();[m
[32m+[m[32m    $edit['uid'] = $this->web_user->getUsername();[m
     $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));[m
     $node = node_load($node->id(), TRUE);[m
     $this->assertIdentical($node->getAuthorId(), $this->web_user->id(), 'Node authored by normal user.');[m
[1mdiff --git a/core/modules/system/system.module b/core/modules/system/system.module[m
[1mindex c2cf620..b0b1541 100644[m
[1m--- a/core/modules/system/system.module[m
[1m+++ b/core/modules/system/system.module[m
[36m@@ -331,8 +331,8 @@[m [mfunction system_element_info() {[m
     '#size' => 60,[m
     '#maxlength' => 128,[m
     '#autocomplete_route_name' => FALSE,[m
[31m-    '#process' => array('form_process_autocomplete', 'ajax_process_form', 'form_process_pattern'),[m
[31m-    '#pre_render' => array('form_pre_render_textfield'),[m
[32m+[m[32m    '#process' => array('form_process_autocomplete', 'ajax_process_form', 'form_process_pattern', 'form_process_group'),[m
[32m+[m[32m    '#pre_render' => array('form_pre_render_textfield', 'form_pre_render_group'),[m
     '#theme' => 'input__textfield',[m
     '#theme_wrappers' => array('form_element'),[m
   );[m
[36m@@ -438,7 +438,8 @@[m [mfunction system_element_info() {[m
     '#cols' => 60,[m
     '#rows' => 5,[m
     '#resizable' => 'vertical',[m
[31m-    '#process' => array('ajax_process_form'),[m
[32m+[m[32m    '#process' => array('ajax_process_form', 'form_process_group'),[m
[32m+[m[32m    '#pre_render' => array('form_pre_render_group'),[m
     '#theme' => 'textarea',[m
     '#theme_wrappers' => array('form_element'),[m
   );[m
[36m@@ -466,8 +467,8 @@[m [mfunction system_element_info() {[m
   $types['checkbox'] = array([m
     '#input' => TRUE,[m
     '#return_value' => 1,[m
[31m-    '#process' => array('form_process_checkbox', 'ajax_process_form'),[m
[31m-    '#pre_render' => array('form_pre_render_checkbox'),[m
[32m+[m[32m    '#process' => array('form_process_checkbox', 'ajax_process_form', 'form_process_group'),[m
[32m+[m[32m    '#pre_render' => array('form_pre_render_checkbox', 'form_pre_render_group'),[m
     '#theme' => 'input__checkbox',[m
     '#theme_wrappers' => array('form_element'),[m
     '#title_display' => 'after',[m
