BobBuildTool/bob

Assertion error when changing checkout method for submodules

Closed this issue · 1 comments

Originally I had a recipe, where I would initialize and checkout submodules in the checkoutScript:

checkoutSCM:
   scm: git
   url: git://repo/git/foo/bar.git

checkoutScript: |
   git submodule init && git submodule update

I replaced the checkoutScript part by setting submodules: True under checkoutSCM. When rebuilding the package I obtain the error:

.....
[   2] SWITCH    foo::bar - dev/src/foo/bar/1/workspace/bar
....

An internal Exception has occured. This should not have happenend.
Please open an issue at https://github.com/BobBuildTool/bob with the following backtrace:
Bob version 0.19.2
Traceback (most recent call last):
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/scripts.py", line 147, in catchErrors
    ret = fun(*args, **kwargs)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/scripts.py", line 248, in cmd
    ret = cmd(args.args, bobRoot)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/scripts.py", line 29, in __develop
    doDevelop(*args, **kwargs)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/build.py", line 313, in doDevelop
    commonBuildDevelop(parser, argv, bobRoot, True)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/build.py", line 263, in commonBuildDevelop
    builder.cook(backlog, True if args.build_mode == 'checkout-only' else False)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/builder.py", line 828, in cook
    raise self.__buildErrors[0]
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/builder.py", line 722, in __taskWrapper
    ret = await coro()
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/builder.py", line 882, in _cookStep
    await self._cookCheckoutStep(step, depth)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/builder.py", line 1012, in _cookCheckoutStep
    scmPath, scmMap[scmDir], scmSpec)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/cmds/build/builder.py", line 1791, in __runScmSwitch
    ret = await invoker.executeScmSwitch(scm, oldSpec)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/invoker.py", line 515, in executeScmSwitch
    await scm.switch(self, oldSpec)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/scm/git.py", line 376, in switch
    await self.invoke(invoker, True)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/scm/git.py", line 177, in invoke
    await self.__checkoutBranch(invoker, fetchCmd, switch)
  File "/usr/local/lib/bob/lib/python3.7/site-packages/bob/scm/git.py", line 201, in __checkoutBranch
    assert not self.__submodules
AssertionError

Oh, this case was intended to work but the logic was not implemented this way. I'll look into it...