Bug 1513775 Comment 1 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

This appears to be a mismatch between what the parent `mozboot.bootstrap.Bootstrapper` class and the `CentOSFedoraBootstrapper` subclass assume the `upgrade_mercurial()` method's responsibilities are.

Looking at "python/mozboot/mozboot/base.py", line 542, in `ensure_mercurial_modern()`: I'd guess the method assumes that the `upgrade_mercurial()` method not only updates Mercurial but also installs Mercurial if it is missing.  It calls the `upgrade_mercurial()` method regardless of whether Mercurial is already installed and regardless of how it was installed.

The overridden method in `CentOSFedoraBootstrapper` always runs `dnf update mercurial`.  It's assuming that Mercurial is already present and was installed via the package manager.  It fails if neither of those are true, causing the error.
This appears to be a mismatch between what the parent `mozboot.base.BaseBootstrapper` class and the `CentOSFedoraBootstrapper` subclass assume the `upgrade_mercurial()` method's responsibilities are.

Looking at "python/mozboot/mozboot/base.py", line 542, in `ensure_mercurial_modern()`: I'd guess the method assumes that the `upgrade_mercurial()` method not only updates Mercurial but also installs Mercurial if it is missing.  It calls the `upgrade_mercurial()` method regardless of whether Mercurial is already installed and regardless of how it was installed.

The overridden method in `CentOSFedoraBootstrapper` always runs `dnf update mercurial`.  It's assuming that Mercurial is already present and was installed via the package manager.  It fails if neither of those are true, causing the error.

Back to Bug 1513775 Comment 1