Closed Bug 1689647 Opened 5 years ago Closed 5 years ago

bootstrap installs a very new evolve extension, which throws exceptions to the console

Categories

(Firefox Build System :: Bootstrap Configuration, defect)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: emilio, Assigned: Kwan)

References

Details

Attachments

(1 file, 1 obsolete file)

$ hg status
Traceback (most recent call last):
  File "c:\mozilla-build\python\lib\site-packages\mercurial\extensions.py", line 213, in _runuisetup
    uisetup(ui)
  File "c:/Users/emilio/.mozbuild/evolve/hgext3rd\evolve\exthelper.py", line 142, in finaluisetup
    entry = extensions.wrapcommand(commands.table, command, wrapper)
  File "c:\mozilla-build\python\lib\site-packages\mercurial\extensions.py", line 478, in wrapcommand
    aliases, entry = cmdutil.findcmd(command, table)
  File "c:\mozilla-build\python\lib\site-packages\mercurial\cmdutil.py", line 688, in findcmd
    raise error.UnknownCommand(cmd, allcmds)
UnknownCommand: ('debugstrip', ['debugsuccessorssets', 'forget', 'tip', 'config', 'showconfig', 'debugconfig', 'debugdate', 'debuglocks', 'debugdata', 'help', 'debugwhyunstable', 'annotate', 'blame', 'addremove', 'add', 'debugrename', 'debugapplystreamclonebundle', 'debugwireproto', 'rollback', 'debugmergestate', 'pull', 'debugformat', 'debugrevspec', 'debugwalk', 'status', 'st', 'resolve', 'incoming', 'in', 'debugdag', 'bisect', 'revert', 'manifest', 'merge', 'debugpushkey', 'continue', 'debuguiprompt', 'update', 'up', 'checkout', 'co', 'locate', 'log', 'history', 'debugnamecomplete', 'debugindexstats', 'export', 'debugfileset', 'debuggetbundle', 'debugpeer', 'identify', 'id', 'outgoing', 'out', 'debugupgraderepo', 'version', 'debugpathcopies', 'debugrebuilddirstate', 'debugrebuildstate', 'debugancestor', 'commit', 'ci', 'tags', 'debugcolor', 'debugpathcomplete', 'debugcheckstate', 'debugpvec', 'summary', 'sum', 'debugdeltachain', 'backout', 'rename', 'move', 'mv', 'debugcapabilities', 'unshelve', 'debugssl', 'diff', 'heads', 'debugsetparents', 'init', 'debugignore', 'debugobsolete', 'debugupdatecaches', 'parents', 'files', 'import', 'patch', 'debugrebuildfncache', 'serve', 'debugdiscovery', 'debugwireargs', 'push', 'debugpickmergetool', 'branch', 'unbundle', 'debugcomplete', 'grep', 'debugserve', 'cat', 'debugp1copies', 'tag', 'debugrevlog', 'shelve', 'debugcommands', 'root', 'debugsub', 'debuglabelcomplete', 'debugmanifestfulltextcache', 'abort', 'debugtemplate', 'recover', 'archive', 'graft', 'paths', 'debuguigetpass', 'verify', 'debugextensions', 'debugfsinfo', 'debuginstall', 'copy', 'cp', 'debugp2copies', 'clone', 'bundle', 'debugknown', 'bookmarks', 'bookmark', 'debugbuilddag', 'debugindex', 'phase', 'remove', 'rm', 'branches', 'debugdownload', 'debugindexdot', 'debugdirstate', 'debugstate', 'debugcreatestreamclonebundle', 'debugrevlogindex', 'debugbundle'])
*** failed to set up extension evolve: ('debugstrip', ['debugsuccessorssets', 'forget', 'tip', 'config', 'showconfig', 'debugconfig', 'debugdate', 'debuglocks', 'debugdata', 'help', 'debugwhyunstable', 'annotate', 'blame', 'addremove', 'add', 'debugrename', 'debugapplystreamclonebundle', 'debugwireproto', 'rollback', 'debugmergestate', 'pull', 'debugformat', 'debugrevspec', 'debugwalk', 'status', 'st', 'resolve', 'incoming', 'in', 'debugdag', 'bisect', 'revert', 'manifest', 'merge', 'debugpushkey', 'continue', 'debuguiprompt', 'update', 'up', 'checkout', 'co', 'locate', 'log', 'history', 'debugnamecomplete', 'debugindexstats', 'export', 'debugfileset', 'debuggetbundle', 'debugpeer', 'identify', 'id', 'outgoing', 'out', 'debugupgraderepo', 'version', 'debugpathcopies', 'debugrebuilddirstate', 'debugrebuildstate', 'debugancestor', 'commit', 'ci', 'tags', 'debugcolor', 'debugpathcomplete', 'debugcheckstate', 'debugpvec', 'summary', 'sum', 'debugdeltachain', 'backout', 'rename', 'move', 'mv', 'debugcapabilities', 'unshelve', 'debugssl', 'diff', 'heads', 'debugsetparents', 'init', 'debugignore', 'debugobsolete', 'debugupdatecaches', 'parents', 'files', 'import', 'patch', 'debugrebuildfncache', 'serve', 'debugdiscovery', 'debugwireargs', 'push', 'debugpickmergetool', 'branch', 'unbundle', 'debugcomplete', 'grep', 'debugserve', 'cat', 'debugp1copies', 'tag', 'debugrevlog', 'shelve', 'debugcommands', 'root', 'debugsub', 'debuglabelcomplete', 'debugmanifestfulltextcache', 'abort', 'debugtemplate', 'recover', 'archive', 'graft', 'paths', 'debuguigetpass', 'verify', 'debugextensions', 'debugfsinfo', 'debuginstall', 'copy', 'cp', 'debugp2copies', 'clone', 'bundle', 'debugknown', 'bookmarks', 'bookmark', 'debugbuilddag', 'debugindex', 'phase', 'remove', 'rm', 'branches', 'debugdownload', 'debugindexdot', 'debugdirstate', 'debugstate', 'debugcreatestreamclonebundle', 'debugrevlogindex', 'debugbundle'])
obsolete feature not enabled but 19 markers found!

cd ~/.mozbuild/evolve && hg up -c 10.1.0 fixes it.

See Also: → 1688606

Updating to the tip of stable means it's more likely that users will end up
with a broken/incompatible evolve, so we should avoid doing so, and stick to
actual releases.

Assignee: nobody → moz-ian
Status: NEW → ASSIGNED
See Also: → 1689697

So there were two issues here:
There was a bug in newly introduced code in evolve to handle back compat with the move & rename of the strip command from an extension to the core debugstrip command. Under Mercurial's demandimport mode it didn't correctly trigger the import of the module that it was expecting to fail on older versions, so just tried to wrap the non-existent debugstrip command on those versions, hence the stack above. I've sent a patch to evolve for that, so hopefully that'll make it in before they release the next stable version: https://foss.heptapod.net/mercurial/evolve/-/merge_requests/308

Secondly the v-c-t code that clones and sets up evolve during bootstrap was just updating to the tip of the stable branch, making it much more likely for new contributors to hit bugs in unreleased evolve code, like this one. The above patch changes that.

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/a88e3049ab62
Update to evolve's latest tag rather than tip of stable branch. r=sheehan

Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED

changeset a88e3049ab62 (Bug 1689647 - Update to evolve's latest tag
rather than tip of stable branch) added a call to hg update right
after hg clone. Passing --noupdate to clone means we don't
unnecessarily update twice.

This fixes a test failure:

--- /app/vct/hgext/configwizard/tests/test-evolve.t
+++ /app/vct/hgext/configwizard/tests/test-evolve.t.err
@@ -98,6 +98,7 @@
   new changesets *:* (glob) (?)
   updating to branch stable
   \d+ files updated, \d+ files merged, \d+ files removed, \d+ files unresolved (re)
+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   Evolve was downloaded successfully.
   Your config file needs updating.
   Would you like to see a diff of the changes first (Yn)?  y

Comment on attachment 9403491 [details]
configwizard: don't update twice when we clone evolve. r?sheehan

Revision D211356 was moved to bug 1898487. Setting attachment 9403491 [details] to obsolete.

Attachment #9403491 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: