Closed Bug 1610856 (hg53) Opened 4 years ago Closed 2 years ago

[meta] Mercurial 5.3 upgrade and compatibility

Categories

(Developer Services :: General, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: sheehan, Assigned: sheehan)

References

Details

(Keywords: leave-open, meta)

Attachments

(6 files)

Mercurial 5.3rc0 is out - time to get the tracking bug up.

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/01a396eb81a5
testing: install Mercurial 5.3rc0 in test environment

The supported_hg check was added to robustcheckout to ensure any
consumers using the sparse extension features were on a new enough
version of Mercurial. Since then, all known clients in CI are running
versions of Mercurial that include this extension, this it has served
it's purpose.

On top of this, the check causes upgrades of Mercurial to fail quite
frequently as the version of robustcheckout used by the client also
needs to be updated to the latest. This means updating to a newer Mercurial
version will fail when the extension itself might be totally compatible,
but the newly released version is missing from the testedwith string.

Assignee: nobody → sheehan
Status: NEW → ASSIGNED
Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/ce06125e4728
robustcheckout: remove `supported_hg` check and mark as hg 5.3 compatible r=zeid

No API changes required for passing tests on most of our
core extensions.

Depends on D70958

It is possible within the Mercurial internal API to register
a callback to be invoked once a repository lock is released.
Before Mercurial 5.3 this callback is invoked unconditionally.
5.3 added a success positional argument to allow certain
callback to not be called if a repo lock cannot be released,
since a failure to release a repo lock likely means some unknown
repo state which should not be acted upon.

This commit adds a success kwarg to the sendheadsmessage
function, which is passed as a partial function to the repo
callback registrar (_afterlock). This will give us compatibility
with both Mercurial 5.2 and 5.3. After upgrading to Mercurial
5.3 we should change success from a keyword argument to a
positional one, to ensure the callback isn't run on a repo lock
error.

We mark the vcsreplicator Mercurial extensions as 5.3 compatible
after making this API change.

Depends on D70959

Upgrades Mercurial to version 5.3.2 on hgweb, and upgrades other
dependencies to the latest acceptable versions.

Also lock cbor2 at version 4.1.2, since upgrading it causes
failures installing into the virtualenv. This will need to be
investigated further later.

Depends on D70960

Upgrades Mercurial to version 5.3.2 and other dependencies as
needed.

Depends on D70961

These lines are now printed after pretxnchangegroup hooks have
all successfully run, as shown by the removed lines and different
position of the line when a successful push happens. Likely overlooked
in the same manner as the lack of Python 3 compat in this hook.

Depends on D70962

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/a2ec0b2f3fc3
hgext: mark extensions and hooks as 5.3 compatible r=zeid
https://hg.mozilla.org/hgcustom/version-control-tools/rev/164fb44576a9
vcsreplicator: add a `success` kwarg for use with a repo lock release callback r=zeid
https://hg.mozilla.org/hgcustom/version-control-tools/rev/c751649a5e70
ansible/hg-web: upgrade Mercurial to 5.3.2 and other dependencies to latest r=zeid
https://hg.mozilla.org/hgcustom/version-control-tools/rev/310678681dba
ansible/hg-ssh: upgrade Mercurial to 5.3.2 r=zeid
https://hg.mozilla.org/hgcustom/version-control-tools/rev/69c4d0cafe2e
testing: update changed test output in newer Mercurials r=zeid
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: