Merge changes I21f258f1,I1240d25c,I34285466,I3ab30565 * changes: Bazel: Split deps and provided_deps in gerrit_plugin rule Bazel: Expose neverlink artifact in maven_jar rule Bazel: Expose PLUGIN_DEPS and PLUGIN_TEST_DEPS variables Format .bzl files with Bazel Buildifier
diff --git a/Documentation/dev-contributing.txt b/Documentation/dev-contributing.txt index a5a4f90..206b765 100644 --- a/Documentation/dev-contributing.txt +++ b/Documentation/dev-contributing.txt
@@ -342,32 +342,12 @@ * Update to the same GWT version in the `gwtjsonrpc` project, and release a new version. -=== Updating to new version of CodeMirror +=== Finding starter projects to work on -* Clone the git from https://github.com/codemirror/CodeMirror -* Checkout the version needed -* If the needed version is not a tagged version, use `git describe` to determine -the version number: -+ ----- - git describe --tags ----- - -* Create the release zip file: -+ ----- - git archive --format=zip --prefix=codemirror-4.10.0-6-gd0a2dda/ d0a2dda > codemirror-4.10.0-6-gd0a2dda.zip ----- - -* Determine the sha1 hash of the zip file: -+ ----- - openssl sha1 codemirror-4.10.0-6-gd0a2dda.zip ----- - -* Upload the zip file to the -link:https://console.developers.google.com/project/164060093628/storage/gerrit-maven/[ -gerrit-maven] storage bucket +We have created a +link:https://bugs.chromium.org/p/gerrit/issues/list?can=2&q=label%3AStarterProject[StarterProject] +category in the issue tracker and try to assign easy hack projects to it. If in +doubt, do not hesitate to ask on the developer mailing list. GERRIT ------
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.java index 6b4cf36..bebbaaa 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.java
@@ -255,7 +255,9 @@ Map<Integer, VotableInfo> d = new HashMap<>(); for (String name : change.labels()) { LabelInfo label = change.label(name); - short labelMaxValue = LabelInfo.parseValue(label.maxValue()); + Short labelMaxValue = label.valueSet().isEmpty() + ? null + : LabelInfo.parseValue(label.maxValue()); if (label.all() != null) { for (ApprovalInfo ai : Natives.asList(label.all())) { int id = ai._accountId(); @@ -264,7 +266,8 @@ ad = new VotableInfo(); d.put(id, ad); } - if (ai.permittedVotingRange() != null + if (labelMaxValue != null + && ai.permittedVotingRange() != null && ai.permittedVotingRange().max() == labelMaxValue) { ad.votable(name + " (" + label.maxValue() + ") "); } else if (ai.hasValue()) {
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RemoteUserUtil.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RemoteUserUtil.java index 479a5e5..e99838a 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RemoteUserUtil.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RemoteUserUtil.java
@@ -16,6 +16,7 @@ import static com.google.common.base.Strings.emptyToNull; import static com.google.common.net.HttpHeaders.AUTHORIZATION; +import static java.nio.charset.StandardCharsets.UTF_8; import org.eclipse.jgit.util.Base64; @@ -72,7 +73,7 @@ } else if (auth.startsWith("Basic ")) { auth = auth.substring("Basic ".length()); - auth = new String(Base64.decode(auth)); + auth = new String(Base64.decode(auth), UTF_8); final int c = auth.indexOf(':'); return c > 0 ? auth.substring(0, c) : null;
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java index 77c8bb4..3812fa11 100644 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java +++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/plugins/HttpPluginServlet.java
@@ -433,7 +433,8 @@ appendPluginInfoTable(md, scanner.getManifest().getMainAttributes()); if (about != null) { - InputStreamReader isr = new InputStreamReader(scanner.getInputStream(about)); + InputStreamReader isr = new InputStreamReader( + scanner.getInputStream(about), UTF_8); StringBuilder aboutContent = new StringBuilder(); try (BufferedReader reader = new BufferedReader(isr)) { String line;
diff --git a/gerrit-main/BUCK b/gerrit-main/BUCK index 388126e..da39eec 100644 --- a/gerrit-main/BUCK +++ b/gerrit-main/BUCK
@@ -9,7 +9,5 @@ name = 'main_lib', srcs = ['src/main/java/Main.java'], deps = ['//gerrit-launcher:launcher'], - source = '1.2', - target = '1.2', visibility = ['//tools/eclipse:classpath'], )
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/WebLinks.java b/gerrit-server/src/main/java/com/google/gerrit/server/WebLinks.java index f24d0f0..789d9a7 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/WebLinks.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/WebLinks.java
@@ -26,8 +26,8 @@ import com.google.gerrit.extensions.webui.DiffWebLink; import com.google.gerrit.extensions.webui.FileHistoryWebLink; import com.google.gerrit.extensions.webui.FileWebLink; -import com.google.gerrit.extensions.webui.PatchSetWebLink; import com.google.gerrit.extensions.webui.ParentWebLink; +import com.google.gerrit.extensions.webui.PatchSetWebLink; import com.google.gerrit.extensions.webui.ProjectWebLink; import com.google.gerrit.extensions.webui.WebLink; import com.google.gerrit.reviewdb.client.Project;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/GitwebConfig.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/GitwebConfig.java index 851d331..7d86aa2 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/config/GitwebConfig.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/GitwebConfig.java
@@ -27,8 +27,8 @@ import com.google.gerrit.extensions.webui.BranchWebLink; import com.google.gerrit.extensions.webui.FileHistoryWebLink; import com.google.gerrit.extensions.webui.FileWebLink; -import com.google.gerrit.extensions.webui.PatchSetWebLink; import com.google.gerrit.extensions.webui.ParentWebLink; +import com.google.gerrit.extensions.webui.PatchSetWebLink; import com.google.gerrit.extensions.webui.ProjectWebLink; import com.google.inject.AbstractModule; import com.google.inject.Inject;
diff --git a/plugins/cookbook-plugin b/plugins/cookbook-plugin index d3c74f3..e1855f1 160000 --- a/plugins/cookbook-plugin +++ b/plugins/cookbook-plugin
@@ -1 +1 @@ -Subproject commit d3c74f3692b0b10926cab300baaef905fcdf4136 +Subproject commit e1855f1f4689bf00b2264668ef707c6aee4c216e
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html index 7931d94..a233892 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html +++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html
@@ -208,7 +208,7 @@ items="[[_shownFiles]]" as="file" initial-count="[[_fileListIncrement]]"> - <div class="file-row row" selected$="[[_computeFileSelected(index, selectedIndex)]]"> + <div class="file-row row"> <div class="reviewed" hidden$="[[!_loggedIn]]" hidden> <input type="checkbox" checked$="[[_computeReviewed(file, _reviewed)]]" data-path$="[[file.__path]]" on-change="_handleReviewedChange"
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js index cb4cde6..7b0eb45 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js +++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.js
@@ -35,6 +35,10 @@ drafts: Object, revisions: Object, projectConfig: Object, + selectedIndex: { + type: Number, + notify: true, + }, keyEventTarget: { type: Object, value: function() { return document.body; }, @@ -367,6 +371,7 @@ this.$.diffCursor.moveDown(); } else { this.$.fileCursor.next(); + this.selectedIndex = this.$.fileCursor.index; } }, @@ -378,6 +383,7 @@ this.$.diffCursor.moveUp(); } else { this.$.fileCursor.previous(); + this.selectedIndex = this.$.fileCursor.index; } }, @@ -496,10 +502,6 @@ _patchChange.size_delta_deleted === 0; }, - _computeFileSelected: function(index, selectedIndex) { - return index === selectedIndex; - }, - _computeFileStatus: function(status) { return status || 'M'; }, @@ -570,7 +572,7 @@ var files = Polymer.dom(this.root).querySelectorAll('.file-row'); this.$.fileCursor.stops = files; - if (this.$.fileCursor.index === -1) { this.$.fileCursor.moveToStart(); } + this.$.fileCursor.setCursorAtIndex(this.selectedIndex); }.bind(this), 1); },
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html index 5da2995..bc46590 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html +++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
@@ -308,16 +308,19 @@ assert.isFalse(items[2].classList.contains('selected')); MockInteractions.pressAndReleaseKeyOn(element, 74, null, 'j'); assert.equal(element.$.fileCursor.index, 1); + assert.equal(element.selectedIndex, 1); MockInteractions.pressAndReleaseKeyOn(element, 74, null, 'j'); var showStub = sandbox.stub(page, 'show'); assert.equal(element.$.fileCursor.index, 2); + assert.equal(element.selectedIndex, 2); MockInteractions.pressAndReleaseKeyOn(element, 13, null, 'enter'); assert(showStub.lastCall.calledWith('/c/42/2/myfile.txt'), 'Should navigate to /c/42/2/myfile.txt'); MockInteractions.pressAndReleaseKeyOn(element, 75, null, 'k'); assert.equal(element.$.fileCursor.index, 1); + assert.equal(element.selectedIndex, 1); MockInteractions.pressAndReleaseKeyOn(element, 79, null, 'o'); assert(showStub.lastCall.calledWith('/c/42/2/file_added_in_rev2.txt'), 'Should navigate to /c/42/2/file_added_in_rev2.txt'); @@ -326,6 +329,7 @@ MockInteractions.pressAndReleaseKeyOn(element, 75, null, 'k'); MockInteractions.pressAndReleaseKeyOn(element, 75, null, 'k'); assert.equal(element.$.fileCursor.index, 0); + assert.equal(element.selectedIndex, 0); }); test('i key shows/hides selected inline diff', function() {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html index 313fa2a..21f8f32 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html +++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html
@@ -138,6 +138,10 @@ .content.remove.lightHighlight { background-color: var(--light-remove-highlight-color); } + .content .contentText:after { + /* Newline, to ensure all lines are one line-height tall. */ + content: '\A'; + } .contextControl { background-color: #fef; color: #849;