Merge changes from topic 'update-release-documentation'

* changes:
  dev-release: Update steps to upload documentation
  dev-release: Include WAR file hash values in announcement mail
  dev-release: Remove 'Update NEWS section' step
  dev-release: Add step to verify plugin versions in release build
diff --git a/Documentation/dev-contributing.txt b/Documentation/dev-contributing.txt
index 6efabff..dd230d3 100644
--- a/Documentation/dev-contributing.txt
+++ b/Documentation/dev-contributing.txt
@@ -164,7 +164,8 @@
     contributors may also like to open several editors side by
     side while editing new changes.
   * Use 2 spaces for indent (no tabs)
-  * Use brackets in all ifs, spaces before/after if parens.
+  * Use braces in all if/else/for/do/while/catch blocks, spaces before/after
+    if/for/while/catch parens.
   * Use /** */ style Javadocs for variables.
 
 Additionally, you will notice that most of the newline spacing
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/SubmitInput.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/SubmitInput.java
index 4d368f6..053248f 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/SubmitInput.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/changes/SubmitInput.java
@@ -15,5 +15,9 @@
 package com.google.gerrit.extensions.api.changes;
 
 public class SubmitInput {
+  /** Not used anymore, kept for backward compatibility */
+  @Deprecated
+  public boolean waitForMerge;
+
   public String onBehalfOf;
 }
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyPreferencesScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyPreferencesScreen.java
index f605abf..2b01b59 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyPreferencesScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyPreferencesScreen.java
@@ -159,15 +159,6 @@
     final Grid formGrid = new Grid(12 + (flashClippy ? 1 : 0), 2);
 
     int row = 0;
-    formGrid.setText(row, labelIdx, "");
-    formGrid.setWidget(row, fieldIdx, showSiteHeader);
-    row++;
-
-    if (flashClippy) {
-      formGrid.setText(row, labelIdx, "");
-      formGrid.setWidget(row, fieldIdx, useFlashClipboard);
-      row++;
-    }
 
     formGrid.setText(row, labelIdx, Util.C.reviewCategoryLabel());
     formGrid.setWidget(row, fieldIdx, reviewCategoryStrategy);
@@ -181,6 +172,18 @@
     formGrid.setWidget(row, fieldIdx, dateTimePanel);
     row++;
 
+    formGrid.setText(row, labelIdx, Util.C.emailFieldLabel());
+    formGrid.setWidget(row, fieldIdx, emailStrategy);
+    row++;
+
+    formGrid.setText(row, labelIdx, Util.C.diffViewLabel());
+    formGrid.setWidget(row, fieldIdx, diffView);
+    row++;
+
+    formGrid.setText(row, labelIdx, "");
+    formGrid.setWidget(row, fieldIdx, showSiteHeader);
+    row++;
+
     formGrid.setText(row, labelIdx, "");
     formGrid.setWidget(row, fieldIdx, relativeDateInChangeTable);
     row++;
@@ -197,15 +200,14 @@
     formGrid.setWidget(row, fieldIdx, muteCommonPathPrefixes);
     row++;
 
-    formGrid.setText(row, labelIdx, Util.C.emailFieldLabel());
-    formGrid.setWidget(row, fieldIdx, emailStrategy);
-
     formGrid.setText(row, labelIdx, "");
     formGrid.setWidget(row, fieldIdx, signedOffBy);
     row++;
 
-    formGrid.setText(row, labelIdx, Util.C.diffViewLabel());
-    formGrid.setWidget(row, fieldIdx, diffView);
+    if (flashClippy) {
+      formGrid.setText(row, labelIdx, "");
+      formGrid.setWidget(row, fieldIdx, useFlashClipboard);
+    }
 
     add(formGrid);
 
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.java
index 2996c07..33a2fb8 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.java
@@ -637,17 +637,18 @@
       String contents,
       Element parent) {
     return CodeMirror.create(parent, Configuration.create()
-      .set("readOnly", true)
       .set("cursorBlinkRate", prefs.cursorBlinkRate())
       .set("cursorHeight", 0.85)
-      .set("lineNumbers", prefs.showLineNumbers())
-      .set("tabSize", prefs.tabSize())
-      .set("mode", fileSize == FileSize.SMALL ? getContentType(meta) : null)
-      .set("lineWrapping", false)
-      .set("scrollbarStyle", "overlay")
-      .set("styleSelectedText", true)
-      .set("showTrailingSpace", prefs.showWhitespaceErrors())
       .set("keyMap", "vim_ro")
+      .set("lineNumbers", prefs.showLineNumbers())
+      .set("lineWrapping", false)
+      .set("matchBrackets", prefs.matchBrackets())
+      .set("mode", fileSize == FileSize.SMALL ? getContentType(meta) : null)
+      .set("readOnly", true)
+      .set("scrollbarStyle", "overlay")
+      .set("showTrailingSpace", prefs.showWhitespaceErrors())
+      .set("styleSelectedText", true)
+      .set("tabSize", prefs.tabSize())
       .set("theme", prefs.theme().name().toLowerCase())
       .set("value", meta != null ? contents : "")
       .set("viewportMargin", renderEntireFile() ? POSITIVE_INFINITY : 10));
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/RebuildNotedb.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/RebuildNotedb.java
index 5bbb798..b586bc5 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/RebuildNotedb.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/RebuildNotedb.java
@@ -37,6 +37,7 @@
 import com.google.gerrit.reviewdb.client.RefNames;
 import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.config.AllUsersName;
+import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.gerrit.server.git.MultiProgressMonitor;
 import com.google.gerrit.server.git.MultiProgressMonitor.Task;
@@ -51,11 +52,11 @@
 import com.google.gwtorm.server.OrmException;
 import com.google.gwtorm.server.SchemaFactory;
 import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
 import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
 
 import org.eclipse.jgit.lib.BatchRefUpdate;
+import org.eclipse.jgit.lib.Config;
 import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Ref;
@@ -85,6 +86,28 @@
   private Injector dbInjector;
   private Injector sysInjector;
 
+  @Inject
+  private AllUsersName allUsersName;
+
+  @Inject
+  private ChangeRebuilder rebuilder;
+
+  @Inject
+  @GerritServerConfig
+  private Config cfg;
+
+  @Inject
+  private GitRepositoryManager repoManager;
+
+  @Inject
+  private NotesMigration notesMigration;
+
+  @Inject
+  private SchemaFactory<ReviewDb> schemaFactory;
+
+  @Inject
+  private WorkQueue workQueue;
+
   @Override
   public int run() throws Exception {
     mustHaveValidSite();
@@ -96,8 +119,7 @@
     dbManager.start();
 
     sysInjector = createSysInjector();
-    NotesMigration notesMigration = sysInjector.getInstance(
-        NotesMigration.class);
+    sysInjector.injectMembers(this);
     if (!notesMigration.enabled()) {
       die("Notedb is not enabled.");
     }
@@ -107,16 +129,11 @@
 
     ListeningExecutorService executor = newExecutor();
     System.out.println("Rebuilding the notedb");
-    ChangeRebuilder rebuilder = sysInjector.getInstance(ChangeRebuilder.class);
 
     Multimap<Project.NameKey, Change.Id> changesByProject =
         getChangesByProject();
     AtomicBoolean ok = new AtomicBoolean(true);
     Stopwatch sw = Stopwatch.createStarted();
-    GitRepositoryManager repoManager =
-        sysInjector.getInstance(GitRepositoryManager.class);
-    Project.NameKey allUsersName =
-        sysInjector.getInstance(AllUsersName.class);
     try (Repository allUsersRepo =
         repoManager.openMetadataRepository(allUsersName)) {
       deleteRefs(RefNames.REFS_DRAFT_COMMENTS, allUsersRepo);
@@ -206,8 +223,7 @@
   private ListeningExecutorService newExecutor() {
     if (threads > 0) {
       return MoreExecutors.listeningDecorator(
-          dbInjector.getInstance(WorkQueue.class)
-            .createQueue(threads, "RebuildChange"));
+          workQueue.createQueue(threads, "RebuildChange"));
     } else {
       return MoreExecutors.newDirectExecutorService();
     }
@@ -217,8 +233,6 @@
       throws OrmException {
     // Memorize all changes so we can close the db connection and allow
     // rebuilder threads to use the full connection pool.
-    SchemaFactory<ReviewDb> schemaFactory = sysInjector.getInstance(Key.get(
-        new TypeLiteral<SchemaFactory<ReviewDb>>() {}));
     Multimap<Project.NameKey, Change.Id> changesByProject =
         ArrayListMultimap.create();
     try (ReviewDb db = schemaFactory.open()) {
diff --git a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html
index 4538cec..814e206 100644
--- a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html
+++ b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown.html
@@ -38,8 +38,8 @@
       padding: .3em 0;
     }
     gr-avatar {
-      height: 1.3em;
-      width: 1.3em;
+      height: 2em;
+      width: 2em;
       vertical-align: -.25em;
     }
     ul {
@@ -68,7 +68,7 @@
         on-tap="_showDropdownTapHandler">
       <span hidden$="[[_hasAvatars]]" hidden>[[account.name]]</span>
       <gr-avatar account="[[account]]" hidden$="[[!_hasAvatars]]" hidden
-          image-size="32"></gr-avatar>
+          image-size="56"></gr-avatar>
     </gr-button>
     <iron-dropdown id="dropdown"
         vertical-align="top"