Closed Bug 1446453 (hg46) Opened 4 years ago Closed 4 years ago

[meta] Mercurial 4.6 upgrade and compatibility

Categories

(Developer Services :: General, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: gps, Assigned: sheehan)

References

Details

(Keywords: meta)

Attachments

(23 files, 1 obsolete file)

46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
sheehan
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
46 bytes, text/x-phabricator-request
gps
: review+
Details | Review
Mercurial 4.6's release is still a way's off. But already a number of extensions have broken due to upstream changes. Time to get a tracking bug up.
Alias: hg46
Depends on: 1446455
Depends on: 1446457
Depends on: 1456213
There are 18 patches in the stack at https://phabricator.services.mozilla.com/D1099 to add 4.6 compatibility to various extensions. Far from a complete effort. But a reasonable start.
some more 4.6 issues:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line 215, in _runextsetup
    extsetup(ui)
  File "/Users/byron/.mozbuild/version-control-tools/hgext/qimportbz/__init__.py", line 212, in extsetup
    'bz': bzhandler.Handler,
  File "/usr/local/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 145, in __getattr__
    self._load()
  File "/usr/local/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 90, in _load
    mod = _hgextimport(_origimport, head, globals, locals, None, level)
  File "/usr/local/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 41, in _hgextimport
    return importfunc(name, globals, *args, **kwargs)
  File "/Users/byron/.mozbuild/version-control-tools/hgext/qimportbz/bzhandler.py", line 10, in <module>
    from mercurial.util import Abort
ImportError: cannot import name Abort

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/mercurial/extensions.py", line 215, in _runextsetup
    extsetup(ui)
  File "/Users/byron/.mozbuild/version-control-tools/hgext/mozext/__init__.py", line 1393, in extsetup
    templater.funcs['dates'] = template_dates
  File "/usr/local/lib/python2.7/site-packages/hgdemandimport/demandimportpy2.py", line 146, in __getattr__
    return getattr(self._module, attr)
AttributeError: 'module' object has no attribute 'funcs'
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 41, in <module>
    dispatch.run()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 90, in run
    status = (dispatch(req) or 0)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 210, in dispatch
    ret = _runcatch(req)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 351, in _runcatch
    return _callcatch(ui, _runcatchfunc)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 359, in _callcatch
    return scmutil.callcatch(ui, func)
  File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 160, in callcatch
    return func()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 341, in _runcatchfunc
    return _dispatch(req)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 971, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 727, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 979, in _runcommand
    return cmdfunc()
  File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 968, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/Users/byron/.mozbuild/version-control-tools/hgext/firefoxtree/__init__.py", line 516, in pullcommand
    return orig(ui, repo, source=source, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext/mq.py", line 3599, in mqcommand
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext3rd/evolve/__init__.py", line 793, in warnobserrors
    return orig(ui, repo, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext3rd/evolve/__init__.py", line 769, in wrapmayobsoletewc
    res = origfn(ui, repo, *args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hgext/rebase.py", line 1766, in pullrebase
    ret = orig(ui, repo, *args, **opts)
  File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1553, in check
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/commands.py", line 4060, in pull
    opargs=pullopargs).cgresult
  File "/Users/byron/.mozbuild/version-control-tools/hgext/mozext/__init__.py", line 824, in pull
    res = orig(repo, remote, *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hggit/util.py", line 56, in inner
    return f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/hggit/__init__.py", line 368, in exchangepull
    return orig(repo, remote, heads, force, bookmarks=bookmarks, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line 1493, in pull
    _pullobsolete(pullop)
  File "/Users/byron/.mozbuild/version-control-tools/hgext/mozext/__init__.py", line 434, in exchangepullpushlog
    if isinstance(pullop.remote, sshpeer.sshpeer):
AttributeError: 'module' object has no attribute 'sshpeer'
Depends on: 1461160
Depends on: 1463195
Depends on: 1464838
Depends on: 1469647
Blocks: 1464838
No longer depends on: 1464838
Depends on: 1469673
Tests are passing with no other changes, so mark as compatible.
It appears this extension was written with 4.6 compatibility
in mind (there were already a few "TRACKING hg46" comments inline).
Depends on: 1470489
Comment on attachment 8987114 [details]
replicateowner: mark as compatible with Mercurial 4.6 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D1770
Attachment #8987114 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/9133118bda57
replicateowner: mark as compatible with Mercurial 4.6 r=gps
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Keywords: leave-open
Resolution: FIXED → ---
The only breaking change here is the wireproto module renaming.
So we add an `import_module` call and mark as testedwith 4.6
everywhere.
Comment on attachment 8992350 [details]
vcsreplicator: make extensions compatible with Mercurial 4.6 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2155
Attachment #8992350 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/afa157e32d6d
vcsreplicator: make extensions compatible with Mercurial 4.6 r=gps
The wire protocol code changed substantially in 4.6. This required
a number of conditional checks throughout the extension.

It's worth noting that we now record the response size for all HTTP
requests. This is because prior to 4.6, some HTTP handlers were using
the legacy request.write() API to send response bytes. This extension
isn't monitoring this API. Post 4.6, all I/O is performed via a
generator, which is monitored.
Comment on attachment 8993085 [details]
serverlog: port to Mercurial 4.6; r?sheehan

Connor Sheehan [:sheehan] has approved the revision.

https://phabricator.services.mozilla.com/D2207
Attachment #8993085 - Flags: review+
Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/e9484bed264f
serverlog: port to Mercurial 4.6; r=sheehan
I overlooked running these new tests against 4.6.2 in bug 1470476.
The only breaking change here was moving `parsemeta` from
the `filelog` module to the `revlog` module.
No changes needed here, but I ran the tests against all the modern
Mercurial versions and they pass every time. Updating the
`testedwith` string accordingly.
Comment on attachment 8993466 [details]
overlay: enable compatibility with Mercurial 4.6 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2248
Attachment #8993466 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/675fda2d88bf
overlay: enable compatibility with Mercurial 4.6 r=gps
Comment on attachment 8993469 [details]
manualoverlay: mark as tested with modern Mercurials (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2249
Attachment #8993469 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/3f15bc650cd1
manualoverlay: mark as tested with modern Mercurials r=gps
Attachment #8993443 - Attachment is obsolete: true
Depends on: 1477519
No changes needed to get tests passing. Mark as tested under 4.5 and
4.6.
No changes needed for the test to pass. Marking as testedwith all
new Mercurial versions.
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/95f5da465794
qbackout: mark as compatible with Mercurials 4.3-4.6 r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/81af8dbbbe84
push-to-try: mark as compatible with Mercurial 4.5/4.6 r=gps
Comment on attachment 8994273 [details]
qbackout: mark as compatible with Mercurials 4.3-4.6 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2301
Attachment #8994273 - Flags: review+
Comment on attachment 8994272 [details]
push-to-try: mark as compatible with Mercurial 4.5/4.6 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2300
Attachment #8994272 - Flags: review+
Since we are moving off of a patched Mercurial 4.5.3 and onto the
4.6.2 release, there is no reason to keep this virtualenv around.
Comment on attachment 8996119 [details]
vcsreplicator: update test-served-heads.t to with Mercurial 4.6 test output (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2530
Attachment #8996119 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/935ff848afce
vcsreplicator: update test-served-heads.t to with Mercurial 4.6 test output r=gps
Comment on attachment 8996120 [details]
testing: upgrade Mercurial to 4.6.2 in hgdev test environment (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2531
Attachment #8996120 - Flags: review+
Comment on attachment 8996121 [details]
testing: upgrade Mercurial to 4.6.2 in hgweb chroot builder virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2532
Attachment #8996121 - Flags: review+
Comment on attachment 8996122 [details]
testing: upgrade Mercurial to 4.6.2 in docker-hgweb mozbuild virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2533
Attachment #8996122 - Flags: review+
Comment on attachment 8996123 [details]
ansible: upgrade Mercurial to 4.6.2 in deployment virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2534
Attachment #8996123 - Flags: review+
Comment on attachment 8996124 [details]
ansible: update Mercurial to 4.6.2 in replication virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2535
Attachment #8996124 - Flags: review+
Comment on attachment 8996125 [details]
ansible: upgrade Mercurial to 4.6.2 in hgweb tools virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2536
Attachment #8996125 - Flags: review+
Comment on attachment 8996126 [details]
ansible: upgrade Mercurial to 4.6.2 on hgweb (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2537
Attachment #8996126 - Flags: review+
Comment on attachment 8996127 [details]
ansible: upgrade Mercurial to 4.6.2. in pash virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2538
Attachment #8996127 - Flags: review+
Comment on attachment 8996129 [details]
ansible: remove pre-release Mercurial requirements file and Ansible task (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2540
Attachment #8996129 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/bac9170e5c7e
ansible: remove pre-release Mercurial requirements file and Ansible task r=gps
Comment on attachment 8996128 [details]
ansible: upgrade Mercurial to 4.6.2 in hgssh tools virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2539
Attachment #8996128 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/39d61310353d
vcssync: upgrade Mercurial to 4.6.2 in vcssync virtualenv r?gps
Comment on attachment 8996130 [details]
vcssync: upgrade Mercurial to 4.6.2 in vcssync virtualenv (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2541
Attachment #8996130 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/abb138458501
testing: upgrade Mercurial to 4.6.2 in hgdev test environment r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/661a49bd5af5
testing: upgrade Mercurial to 4.6.2 in hgweb chroot builder virtualenv r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/c22ad816c093
testing: upgrade Mercurial to 4.6.2 in docker-hgweb mozbuild virtualenv r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/241404052377
ansible: upgrade Mercurial to 4.6.2 in deployment virtualenv r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/83c3098574a2
ansible: upgrade Mercurial to 4.6.2. in pash virtualenv r=gps
https://hg.mozilla.org/hgcustom/version-control-tools/rev/92f318ef1e1d
ansible: upgrade Mercurial to 4.6.2 in hgssh tools virtualenv r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/031820683403
ansible: update Mercurial to 4.6.2 in replication virtualenv r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/52972f4f135f
ansible: upgrade Mercurial to 4.6.2 in hgweb tools virtualenv r=gps
This commit contains the patch series generated by
`hgtemplates/.patches/mozify-templates.py` squashed into a
single commit. Also included are updates to the vendored
`gitweb` theme from upstream Mercurial 4.6.2, and a fix
to `test-template-sync.t` to reflect the new output
when applying the patches.
Comment on attachment 8996156 [details]
hgtemplates: upgrade templates for Mercurial 4.6.2 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2545
Attachment #8996156 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/ac47e33ad4c2
ansible: upgrade Mercurial to 4.6.2 on hgweb r=gps
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/958dc5e4168c
hgtemplates: upgrade templates for Mercurial 4.6.2 r=gps
All of the servers behind hg.mozilla.org are now running Mercurial 4.6 (with the exception of reviewboard which was ignored since it is reaching its EOL). It looks like everything with the upgrade went smoothly. Closing this bug as resolved, we can re-open in the case something is broken or something was overlooked.
Assignee: nobody → sheehan
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Resolution: --- → FIXED
Depends on: 1480034
Keywords: leave-open
We still need to update the clients in CI. Re-opening.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
This commit points the `install_mercurial.sh` script at the
newest Mercurial distributions uploaded to tooltool.
Comment on attachment 8996838 [details]
Bug 1446453: install Mercurial 4.7 in Non-Debian Linux Docker images r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2626
Attachment #8996838 - Flags: review+
Attachment #8996830 - Attachment description: Bug 1446453: upgrade Mercurial clients to 4.6.2 in Debian based Docker images r?gps → Bug 1446453: upgrade Mercurial clients to 4.7 in Debian based Docker images r?gps
Comment on attachment 8996830 [details]
Bug 1446453: upgrade Mercurial clients to 4.7 in Debian based Docker images r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2623
Attachment #8996830 - Flags: review+
Blocks: hg47
Since Mercurial 4.7 is out, we're going to upgrade the clients directly to the newer version. Closing this bug.
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Keywords: leave-open
Resolution: --- → FIXED
Comment on attachment 8996830 [details]
Bug 1446453: upgrade Mercurial clients to 4.7 in Debian based Docker images r?gps

Gregory Szorc [:gps] has requested changes to the revision.

https://phabricator.services.mozilla.com/D2623
Attachment #8996830 - Flags: review+
Comment on attachment 8996830 [details]
Bug 1446453: upgrade Mercurial clients to 4.7 in Debian based Docker images r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2623
Attachment #8996830 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cff1fa17db28
upgrade Mercurial clients to 4.7 in Debian based Docker images; r=gps
https://hg.mozilla.org/integration/autoland/rev/3f6acd9e4954
install Mercurial 4.7 in Non-Debian Linux Docker images; r=gps
We forgot to do this during the 4.6 upgrade and some
output about incompatible Mercurial versions is present
in the bootstrap output logs.
Comment on attachment 8998348 [details]
serverlog: mark as compatible with Mercurial 4.6 (Bug 1446453) r?gps

Gregory Szorc [:gps] has approved the revision.

https://phabricator.services.mozilla.com/D2890
Attachment #8998348 - Flags: review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/ea003aefc061
serverlog: mark as compatible with Mercurial 4.6 r=gps
Depends on: 1484181
No longer depends on: 1484181
You need to log in before you can comment on or make changes to this bug.