Change screen: Make change owner votes removable

When change owner votes on change and disappears (yeah, that happens
very often: people suddenly disappear) it isn't possible any more to
remove her vote.

Old change screen had this feature as well.

Bug: issue 2909
Change-Id: I7cdbbc5faa2fa6eb68fd42c91ad2181e98bdc2fd
ChangeScreen2: Make Reply button configurable

There were several complaints on Google Groups and in the issue tracker
about the Reply… button in the New Change Screen. People new to
Gerrit/the New Change Screen didn't know where to click in order to
submit a review.

Add a setting in gerrit.config, where the administrator can customize
the label and tooltip of the Reply… button.

Bug: issue 2541
Bug: issue 2974
Change-Id: Ib9e95aa2f03debc88ea091c4d3fb91c83ad9d1ba
Replace account.AccountInfo with extensions.common.AccountInfo

These have identical public fields; the only difference is that
AccountInfo.Loader was using the transient _id field store the ID
before filling in values. We can instead reuse the Integer _accountId
field for this purpose. This may incur an additional boxing or so per
account per request, but that cost should be negligible given how
many allocations we do per request already.

AccountInfoMapper is no longer required, so remove that entirely.

We are now enforcing that AccountInfos passed to the loader have an
_accountId. Since by default the old account.AccountInfo worked
without an _accountId, add this as a separate FillOption and clear it
if that option is not set. To verify this, check the owner fields in
ChangeIT#get.

Change-Id: Ied01750485cc728e91e585a31f3db8863bae7e40
Improve method and variable names related to group inclusion caches

In [1] group's accounts will be cached, thus in the semantic
environment of group inclusion caches the words 'member' and
'include' will not only be limited to subgroups and parent groups,
but will also include accounts.

This commit does not update cache names and does not affect users.
It only updates related method names to be more meaningful.

[1] https://gerrit-review.googlesource.com/58302

Change-Id: I9a5be1cb08ff53e2cede251a6f63e16ec25cdcfa
Merge "Improve method and variable names related to group inclusion caches"
Merge "ChangeScreen2: Make Reply button configurable"
Merge "Change screen: Make change owner votes removable"
Add option to load project cache at server startup

In installations with large numbers of projects, it may take a long
time to populate the cache. Allow the option of concurrently loading
the project cache during server startup.

Test result:

- 5700 projects
- Using 40 cpus

Without this change, loading the cache takes about 2 minutes.
With this change, loading the cache takes a few seconds.

Change-Id: Ic05cc8b88ee4c4bf6f5028d3f4dec1e32872aef5
Merge "Replace account.AccountInfo with extensions.common.AccountInfo"
Only include account IDs when DETAILED_ACCOUNTS is not set

According to the documentation of AccountInfo, only the _accountId is
supposed to be set in the result unless DETAILED_OPTIONS is passed.
The behavior of AccountLoader was inconsistent, only filling the name
in the default case.

Correct the behavior of AccountLoader. The purpose of having detailed
account info be a separate option is to avoid looking up user info in
the cache (possibly incurring a miss) in the simplest case.

Change-Id: Ibcbe5d9733a1dcd2eeca28763438ce87d5fe976d
Replace ChangeJson.ChangeInfo with extensions.common.ChangeInfo

These have essentially the same public fields, except for a few that
were not previously exposed through ChangeApiImpl for no good reason.

The most invasive change this requires is to hold on to the
SubmitRecord.Label.Status value during label initialization in
ChangeJson, which we now do by holding a pair of (LabelInfo, Status).
This is an implementation detail of ChangeJson, so does not need to
leak into the ChangeInfo class.

Additionally, although we can kill most of ChangeInfoMapper, we still
need the mapping of Change.Status to ChangeStatus, to avoid exposing
an internal implementation detail of the database storage layer to the
extension API.

Change-Id: I20f78ed0bd893560bce1b55d47583d6cba3e3fb2
Recommend bootstrapping a stable version of Buck

The tip of the Buck tree may not compile. It happens, software is
fuzzy and humans make mistakes.

The version of Buck used by .buckversion in Gerrit is more likely to
be known to build.  Recommend checking out that version to start a new
workspace for Gerrit.

Change-Id: Idad3a461e40a0b0e2103231827b3935d37d52566
Merge "Add option to load project cache at server startup"
postgres: fix PK drop, don't assume PK name as TABLE_pkey

When dropping a primary key, postgres requires the primary key name to
be specified.  In the UpdatePrimaryKeys init step it was assumed that
the primary key name for a table X is always X_pkey. However, since the
Schema_82 this pattern doesn't hold for those tables which were renamed
in that migration, as the migration only renamed the tables. For
example, before Schema_82 we had a table name:

  account_group_includes_by_uuid_audit

and its primary key named:

  account_group_includes_by_uuid_audit_pkey

This table was renamed to:

  account_group_by_id_aud

but the primary key name didn't change. Therefore, the UpdatePrimaryKeys
failed to drop the primary key using the TABLE_pkey pattern and couldn't
then create the new primary key.

Instead of assuming the TABLE_pkey pattern get the old primary key
name from the DatabaseMetaData and use this name for dropping the
existing primary key.

Change-Id: I671b9912110fc22c842d2c15930a2c7b9906bd48
Release notes for Gerrit 2.9.2

Change-Id: I021de104c929d4c07188ac332016379cfca9696a
Use US spelling in 2.9.2 release notes

Change-Id: I967477d1b07be1f185c6b14fbd181df02431f084
Merge branch 'stable-2.9' into stable-2.10

* stable-2.9:
  Use US spelling in 2.9.2 release notes
  Release notes for Gerrit 2.9.2
  postgres: fix PK drop, don't assume PK name as TABLE_pkey

Change-Id: I8d07b262cadf7787c6b11b0c70eebc0346f6af14
Update 2.10 release notes with info from 2.9.2

- Add a warning that the init should be run in interactive mode.
- Switch from UK to US spelling.

Change-Id: I13c0ab025287e6eb1e8b42f1ccadf77cdbfddd01
Merge branch 'stable-2.10'

* stable-2.10:
  Update 2.10 release notes with info from 2.9.2
  Use US spelling in 2.9.2 release notes
  Release notes for Gerrit 2.9.2
  postgres: fix PK drop, don't assume PK name as TABLE_pkey

Conflicts:
	gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/UpdatePrimaryKeys.java

Change-Id: Ifd82c53e9a4f1e299b883c6eac051f8efcec44aa