Troubleshooting

Solutions to common problems you might encounter at NUbots.

General

If this page does not solve your problem, the following people can help you with specific parts of the system:

  • Hardware: Taylor Young, Alex Biddulph, Timothy Mullen, Shawn Hain
  • NUbots codebase: Alex Biddulph, Trent Houliston, Taylor Young
  • Toolchain and build: Alex Biddulph, Josephus Paye II
  • NUClear: Trent Houliston
  • NUsight: Brendan Annable, Josephus Paye II, Trent Houliston
  • Mathematics: Ysobel Sims, Timothy Mullen

NUbots

Why am I having no such file errors?

If your compiler can't find FileWatcher.h as in the following error:

nuclear/roles/firmwareinstaller.cpp:3:10: fatal error: extension/FileWatcher/src/FileWatcher.h: No such file or directory
3 | #include "extension/FileWatcher/src/FileWatcher.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Run ./b configure --clean. This refreshes the docker volumes, removing the offending file.

Why isn't my new file being compiled?

If you have just added a new file to the codebase, make sure that it's part of a role. After you have added it to a role, run ./b configure, and the build system should detect the new file and compile it the next time you run ./b build.

Why am I having CMakeCache errors when I run ./b <command>?

If you're having errors which say that there was no such value in b.cmake_cache such as in this snippet:

Traceback (most recent call last):
File "/home/nubots/NUbots/nuclear/b.py", line 113, in <module>
module.run(**vars(command.parse_args()))
File "/home/nubots/NUbots/tools/utility/dockerise/run.py", line 79, in _run
func(**kwargs)
File "/home/nubots/NUbots/tools/run.py", line 34, in run
use_asan = b.cmake_cache["USE_ASAN"] == "ON"
KeyError: 'USE_ASAN'

you might have a CMakeCache.txt file in your NUbots directory messing up the build's cache. You can find and delete the file in your text editor, or by running the find command inside the NUbots directory:

# Make sure that you're in the NUbots project directory before executing this...
find . -type f -name CMakeCache.txt -delete && find . -type d -name CMakeFiles -delete

If the problem persists, try purging the build volume by running ./b configure --clean. Note that purging the build volume means you'll have to rerun ./b build to use built code.

NUsight

TODO

Hardware

TODO

NUbook

The commands shown below should be run from the NUbook root folder, unless otherwise stated.

Why is my newly added page not showing up?

When you add a new page, you should remove the Gatsby .cache and public folders, by running:

rm -rf .cache public

And then try building again:

yarn dev

Why am I getting weird errors when I run yarn dev?

Usually this happens when there is a problem with one or more packages in the node_modules folder. Try deleting node_modules and running yarn to reinstall dependencies:

rm -rf node_modules && yarn

Then try building again:

yarn dev

Why am I getting errors from Prettier when running yarn dev? / Why can't I push to GitHub?

If a page you have added or changed is not formatted correctly, your changes may not show up in the NUbook preview, and you will not be able to push to GitHub.

To fix this, run:

yarn format --fix

Why are my changes not showing up in NUbook?

First, make sure you have saved the file, then refresh NUbook in the browser to see if your changes show up.

If you have created a new page or added a new image, you may need to remove the .cache and public folders. To do so, run:

rm -rf .cache public

And then try building again:

yarn dev
Copyright © 2021 NUbots - CC-BY-4.0
Deploys by Netlify