commit | 2b9ee3ab2d6709488a0ba6e9f01943fd367a601c | [log] [tgz] |
---|---|---|
author | Nasser Grainawi <nasser@codeaurora.org> | Sat Oct 31 18:19:35 2020 -0600 |
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | Sun Nov 01 00:19:35 2020 +0000 |
tree | de4b33b3f6ef85712d3db4888f5bef1212b4d795 | |
parent | 181f8ac4d8c1fcfd5c2730f1d2d788a4482d22d0 [diff] |
Update git submodules * Update plugins/replication from branch 'master' to e77f34ba242629059720a1b60aeebe663171d9ca - Merge branch 'stable-3.3' into master * stable-3.3: (23 commits) Move shouldCleanupBothTasksAndLocks* ITs to ReplicationStorageIT ReplicationStorageIT: Wait for all pushes without order Replication*IT: Share getRef method ReplicationFanoutIT: Share setReplicationDestination ReplicationFanoutIT: Split shouldReplicateNewBranch tests ReplicationFanoutIT: Remove generic waitUntil helper ReplicationFanoutIT: Inherit from ReplicationDaemon ReplicationFanoutIT: Refactor setRemoteReplicationDestination ReplicationFanoutIT: Rename setReplicationDestination ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair Move shouldCleanupTasksAfterNewProjectReplication test Fix documentation issue Move storage portion of replicateBranchDeletion ITs Refactor Replication*IT tests to share a base class ReplicationIT: Add shouldMatch* e2e tests ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT ReplicationTasksStorage: Add multi-primary unit tests ReplicationTasksStorage: Add multi-primary unit tests ReplicationStorageIT: Add shouldFire*ChangeRefs tests Move storage-based ITs into ReplicationStorageIT ... Change-Id: Ie32364ed45f4d19467fc8fd529290d62275698e2 - Merge branch 'stable-3.3' into master * stable-3.3: Don't output directories during task walk. Change-Id: I022563e4fc002921524a31bdca7793e45c9bbe59 - Merge branch 'stable-3.2' into stable-3.3 * stable-3.2: (23 commits) Move shouldCleanupBothTasksAndLocks* ITs to ReplicationStorageIT ReplicationStorageIT: Wait for all pushes without order Replication*IT: Share getRef method ReplicationFanoutIT: Share setReplicationDestination ReplicationFanoutIT: Split shouldReplicateNewBranch tests ReplicationFanoutIT: Remove generic waitUntil helper ReplicationFanoutIT: Inherit from ReplicationDaemon ReplicationFanoutIT: Refactor setRemoteReplicationDestination ReplicationFanoutIT: Rename setReplicationDestination ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair Move shouldCleanupTasksAfterNewProjectReplication test Fix documentation issue Move storage portion of replicateBranchDeletion ITs Refactor Replication*IT tests to share a base class ReplicationIT: Add shouldMatch* e2e tests ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT ReplicationTasksStorage: Add multi-primary unit tests ReplicationTasksStorage: Add multi-primary unit tests ReplicationStorageIT: Add shouldFire*ChangeRefs tests Move storage-based ITs into ReplicationStorageIT ... Change-Id: I81a167ccb77738984069d9433fde75ee7cf06c8e - Move shouldCleanupBothTasksAndLocks* ITs to ReplicationStorageIT These tests are focused on verifying storage functionality. Improve them slightly to use the best practices from ReplicationStorageIT. Change-Id: I66cf87e63c88f040d328793012a4dbf4de7e031e - Merge branch 'stable-3.1' into stable-3.2 * stable-3.1: ReplicationStorageIT: Wait for all pushes without order Replication*IT: Share getRef method ReplicationFanoutIT: Share setReplicationDestination ReplicationFanoutIT: Split shouldReplicateNewBranch tests ReplicationFanoutIT: Remove generic waitUntil helper ReplicationFanoutIT: Inherit from ReplicationDaemon ReplicationFanoutIT: Refactor setRemoteReplicationDestination ReplicationFanoutIT: Rename setReplicationDestination ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair Move shouldCleanupTasksAfterNewProjectReplication test Move storage portion of replicateBranchDeletion ITs Refactor Replication*IT tests to share a base class ReplicationIT: Add shouldMatch* e2e tests ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT ReplicationTasksStorage: Add multi-primary unit tests ReplicationTasksStorage: Add multi-primary unit tests ReplicationStorageIT: Add shouldFire*ChangeRefs tests Move storage-based ITs into ReplicationStorageIT ReplicationTasksStorage.Task: Add multi-primary unit tests ReplicationQueue: Remove unused method Cleanup specific to stable-3.2 will be done in follow-up changes. Change-Id: Ib938c661158e8f7a3434010187b87c79e81a01b8 - Merge branch 'stable-3.0' into stable-3.1 * stable-3.0: ReplicationStorageIT: Wait for all pushes without order ReplicationTasksStorage: Add multi-primary unit tests Change-Id: I3961368f7bcf7d4aa923d07f7f89beeaaeb307d3 - Merge "ReplicationTasksStorage.Task: Add multi-primary unit tests" into stable-3.1 - Merge branch 'stable-2.16' into stable-3.0 * stable-2.16: ReplicationStorageIT: Wait for all pushes without order ReplicationTasksStorage: Add multi-primary unit tests Change-Id: I1d749621c189ee2e49f092ddc7558f83e508411f - ReplicationStorageIT: Wait for all pushes without order Some tests don't have a predefined order for which events will be replicated first. Using a timeout based on a single replication event is flawed when we don't know the expected order. Instead, use a timeout for the group of events and ignore the order. For two events replicating to a single remote with a single thread, we expect the complete replication to take twice as long. Two events replicating to two remotes will use one thread each and therefore not take any longer than the single remote case. Change-Id: Ieb21b7eee32105eab5b5a15a35159bb4a837e363 - Replication*IT: Share getRef method This helper is common to a couple test classes, so share it. Change-Id: I5839c31ad734c384e812e9e1c7bcba8ba05c23cc - ReplicationFanoutIT: Share setReplicationDestination Refactor setReplicationDestination to share the per-remote-file and single replication config file implementations more. Change-Id: Ic0a98ccf0f7703f14c01856a42b8a70e3d20aa8b - ReplicationFanoutIT: Split shouldReplicateNewBranch tests Split these into storage-based and e2e tests so that the storage tests can be reliably verified through use of replicationDelay large enough that task state on disk doesn't change during the tests. Keep them all in ReplicationFanoutIT for now since the setup for these tests is unique to that class. Also remove the unnecessary cleanup of tasks. Change-Id: I36e0a4affe1f5d1330ea27a496fd8ba295176763 - ReplicationFanoutIT: Remove generic waitUntil helper Using a non-specific timeout is a bad pattern. Tests should pick a timeout appropriate to the action being tested. Change-Id: I69a7e469df1dc532af6a777ac47d89852091797e - ReplicationFanoutIT: Inherit from ReplicationDaemon Reduces duplication across the replication IT classes. More dedup is possible with the helper methods, but leave that for a future change. Change-Id: Iddd6dca9a4fe84b065954cd4dcec7289d7ed68a2 - ReplicationFanoutIT: Refactor setRemoteReplicationDestination Simplify callers by providing a way to set the replicationDelay up front. Change-Id: I28cea83559aa1eb379ec2ff962a0beaf25fe4ca6 - ReplicationFanoutIT: Rename setReplicationDestination Distinguish the methods that set the per-remote config files vs the methods that set the global replication.config. This helps lead up to ReplicationFanoutIT inheriting from ReplicationDaemon. Change-Id: I6139d2dbde15c0b0449d7d7801c169253bc7449d - ReplicationFanoutIT: Cleanup shouldCreateIndividualReplicationTasksForEveryRemoteUrlPair Remove some dead code, use Integer.MAX_VALUE for the replicationDelay so that tasks stay in the waiting/ area of storage for the entire test, and use a dedicated listWaitingTasks() to show it only depends on tasks in that state. Change-Id: I0035a4edc656ed4833249322c45204124a66e20d - Merge changes I0ef708ab,I81d27fd4 into stable-3.1 * changes: Move shouldCleanupTasksAfterNewProjectReplication test Merge branch 'stable-3.0' into stable-3.1 - Merge "ReplicationTasksStorage: Add multi-primary unit tests" into stable-3.1 - Merge "ReplicationTasksStorage: Add multi-primary unit tests" into stable-2.16 - Move shouldCleanupTasksAfterNewProjectReplication test This test is focused on the storage level, so move it to ReplicationStorageIT. Slightly improve it to use the new best practices for specifying test timeouts. Change-Id: I0ef708ab7813ee09d6f115d3151d2d12b9984a80 - Merge branch 'stable-3.0' into stable-3.1 * stable-3.0: Move storage portion of replicateBranchDeletion ITs Refactor Replication*IT tests to share a base class ReplicationIT: Add shouldMatch* e2e tests ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT ReplicationStorageIT: Add shouldFire*ChangeRefs tests Move storage-based ITs into ReplicationStorageIT ReplicationQueue: Remove unused method This change does not try to reimpose the breakdown of tests that was done in 3.0. That will be done in follow up change(s) to improve reviewability of this change. Change-Id: I81d27fd47da8eecad3aca36d8e6400679fb564a3 - Fix documentation issue Task sharding was removed in a revert previuosly but the documentation was still pointing to it. Fixed it to reflect the current logic. Change-Id: If888518a2485a72c6a692aa377bdab1fb1b8cd75 - Move storage portion of replicateBranchDeletion ITs All other ITs split e2e and storage tests on stable-2.16, so this change only updates the new replicateBranchDeletion tests that were added in stable-3.0. The e2e check for if the destination branch is removed or not stays in ReplicationIT and the check that a task is created in storage when the branch delete API is invoked moves to ReplicationStorageIT. This split allows the best practices for verifying e2e and storage to be applied independently. Change-Id: Iec7ee090bd614e3442b1f9cb454437c9e05290be - Merge branch 'stable-2.16' into stable-3.0 * stable-2.16: Refactor Replication*IT tests to share a base class ReplicationIT: Add shouldMatch* e2e tests ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT ReplicationStorageIT: Add shouldFire*ChangeRefs tests Move storage-based ITs into ReplicationStorageIT ReplicationQueue: Remove unused method This change does not try to reimpose the breakdown of tests that was done in 2.16. That will be done in follow up change(s) to improve reviewability of this change. Change-Id: I83202997610c5ad0d8849cb477ca36db8df760f5 - Refactor Replication*IT tests to share a base class These classes have very similar setups and duplicate helper methods. Improve maintainability by reducing the duplication. ReplicationQueueIT is not modified because it is merged into ReplicationIT on stable-3.0. Change-Id: Ibc22ae4d0db2d09009f65c0e745f1095c67827ba - ReplicationIT: Add shouldMatch* e2e tests These new tests utilize creating a branch in a way that does not trigger replication so that scheduleFullSync() is responsible for replicating the update. In this way, the tests verify the destination receives the update because scheduleFullSync() matched the given URI. Change-Id: I4ae15d0301a308a12cbca3684915e89ca421e02f - ReplicationStorageIT: Move shouldMatch* tests from ReplicationIT These tests are focused on verifying storage, so they belong in ReplicationStorageIT. Improve these tests to better verify storage correctness by switching the 'now' parameter to false such that replicationDelay is honored and follow the ReplicationStorageIT pattern using a very long delay. These improvements make these tests much more stable. The tests improve the ref matching slightly by comparing to the PushOne.ALL_REFS constant. Also removes the disableDeleteForTesting flag as there are no users of it now. A later change can add ReplicationIT e2e tests for these use cases. Change-Id: Iaa14a7429a40fb62325259efa1c7d7637deef95a - ReplicationTasksStorage: Add multi-primary unit tests These tests examine the replication scenarios under multi-primary setup making use of the api calls present in ReplicationTasksStorage class similarly as done in single primary setup. These tests ensure that the replication compatability in multi-primary setup is not broken. Change-Id: Ib2d0017c4d2ac3f4cfc7262b68b09a3a357e1337 - ReplicationTasksStorage: Add multi-primary unit tests These tests examine the replication scenarios under multi-primary setup making use of the api calls present in ReplicationTasksStorage class similarly as done in single primary setup. These tests ensure that the replication compatibility in multi-primary setup is not broken. Change-Id: I375b731829f3c0640d3a7a98635e1e5c526908ca - Merge "ReplicationTaskStorage: Improve test coverage for isWaiting()" into stable-3.2 - ReplicationStorageIT: Add shouldFire*ChangeRefs tests Copy the shouldFire*IncompleteUri tests as shouldFire*ChangeRefs to fill a gap in test coverage. Change-Id: Ia8df64a8574b776e6a9f7201c0862f1e6794687e - Move storage-based ITs into ReplicationStorageIT Tests in ReplicationStorageIT utilize very long replication delays such that tasks are never expected to complete during the test. This allows test writers to assume the task files are still there. Refactor tests from ReplicationIT into ReplicationStorageIT and focus them on verifying storage correctness. This is mostly a direct copy except that shouldFirePendingOnlyToStoredUri gets renamed and split into two tests. One that validates tasks are fired and another that validates replication completes to the expected destinations. This split is necessary because of the very long delay methodology mentioned above. Code sharing between ReplicationIT and ReplicationStorageIT will be improved in a later commit. Change-Id: I41179c20a10354953cff3628368dfd5f910cc940 - Don't output directories during task walk. Outputting directories leads to extra exceptions when trying to read tasks, prevent outputting them in the first place. Not only will this prevent bogus log warnings, it should be faster since there is now less work to do. Remove the unreliable warning filter during task deserialization since it should no longer be needed in the normal path now. Change-Id: I6fa2bdc27ce37333299f7ce475bb77d5c1de1d0b Bug: Issue 13480 - ReplicationTasksStorage.Task: Add multi-primary unit tests These tests examine the replication scenarios under multi-primary setup making use of the api calls present in ReplicationTasksStorage.Task class similarly as done in single master setup. These tests ensure that the replication compatability in multi-primary setup is not broken. Change-Id: I980e8286bf11d31c6ab89e49ef065fdde1118181 - ReplicationQueue: Remove unused method And drop the misleading @VisibleForTesting annotation from the method the removed method was wrapping. scheduleFullSync() is public so that PushAll can call it. Change-Id: I0139e653654fcaf20de68dddfb5ea85560a323d0 - ReplicationTaskStorage: Improve test coverage for isWaiting() Add test cases to ReplicationTasksStorage.isWaiting() and ReplicationTasksStorage.Task.isWaiting() methods. Also modify existing testcases to use these new methods. Change-Id: I032fb80a606a71bc3911d9ecb26ed738f074051f
Gerrit is a code review and project management tool for Git based projects.
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
For information about how to install and use Gerrit, refer to the documentation.
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Please report bugs on the issue tracker.
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
The Developer Mailing list is repo-discuss on Google Groups.
Gerrit is provided under the Apache License 2.0.
Install Bazel and run the following:
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit cd gerrit && bazel build release
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
On Fedora run:
dnf clean all && dnf install gerrit-<version>[-<release>]
Docker images of Gerrit are available on DockerHub
To run a CentOS 8 based Gerrit image:
docker run -p 8080:8080 gerritcodereview/gerrit[:version]-centos8
To run a Ubuntu 20.04 based Gerrit image:
docker run -p 8080:8080 gerritcodereview/gerrit[:version]-ubuntu20
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.