Moving from Zephyr 3.2.99 to 3.5.99: `west` cannot find its configuration file
RobMeades opened this issue · 3 comments
We are trying to move from nrfConnect 2.3.0/Zephyr 3.2.99 to nrfConnect 2.5.0/Zephyr 3.5.99.
The new version requires west
0.13 instead of the west
0.12 that we had previously, which is fine, we have updated west
to 0.13.
However, after doing that, the installation process fails with west
saying "RuntimeError: local configuration file not found" (full dump below). There is no west
, .west
or .westconfig
directory anywhere that I can find on my disk; this is on Windows (10) and I have specifically checked my user directory, the ProgramData
directory and the directory where I happen to be running the installation from. I have tried uninstalling and reinstalling west
but that doesn't seem to have helped.
How can I make west
happy?
File "c:\program files\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\program files\python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python39\Scripts\west.exe\__main__.py", line 7, in <module>
File "c:\program files\python39\lib\site-packages\west\app\main.py", line 786, in main
app.run(argv or sys.argv[1:])
File "c:\program files\python39\lib\site-packages\west\app\main.py", line 101, in run
self.load_manifest()
File "c:\program files\python39\lib\site-packages\west\app\main.py", line 119, in load_manifest
self.manifest = Manifest.from_topdir(topdir=self.topdir,
File "c:\program files\python39\lib\site-packages\west\manifest.py", line 1105, in from_topdir
return Manifest(topdir=topdir, config=config,
File "c:\program files\python39\lib\site-packages\west\manifest.py", line 1370, in __init__
self._ctx = self._top_level_init(source_data,
File "c:\program files\python39\lib\site-packages\west\manifest.py", line 1712, in _top_level_init
manifest_path_option = get_option('manifest.path')
File "c:\program files\python39\lib\site-packages\west\manifest.py", line 1709, in get_option
return config.get(option, default=default,
File "c:\program files\python39\lib\site-packages\west\configuration.py", line 169, in get
return self._get(lambda cf: cf.get(option), default, configfile)
File "c:\program files\python39\lib\site-packages\west\configuration.py", line 208, in _get
for cf in self._whence(configfile):
File "c:\program files\python39\lib\site-packages\west\configuration.py", line 229, in _whence
raise RuntimeError('local configuration file not found')
RuntimeError: local configuration file not found
Hmmm, seems that, if this happens, you have to delete the previously-cloned nrfconnectsdk-v2.5.0
directory before trying to install again: looks like an nrfconnectsdk-v2.5.0\.west\manifest-tmp
is created inside it as part of the [failed] installation process which somehow doesn't play will with version 0.12
of west
?
Anyway, deleting and re-cloning fixed it for me.
I don't know anything about nrfConnect and its installation process but for future reference I can summarize the failure shown in this stack trace.
What happened there is that west
looked for a manifest as part of an initialization process. It didn't find any. It looked for:
[manifest]
path = ...
inside the file: workspace/.west/config
but there was no such file.
This type of error usually looks better ("FATAL ERROR: no west workspace found") but initialization/bootstrap creates some interesting chicken-and-egg challenges.
looks like an nrfconnectsdk-v2.5.0.west\manifest-tmp is created inside it as part of the [failed] installation process
This looks like:
somehow doesn't play will with version 0.12 of west?
I could be wrong but I doubt the west version matters that much.