Environment

VSCode

VSCode generally works well for developing nrk. The rust-analyzer plugin is preferred over rls which often has build issues due to the project not having a std runtime (no-std).

Git

For first time git users or new accounts, you'll have to configure your username and email:

git config --global user.name "Gerd Zellweger"
git config --global user.email "mail@gerdzellweger.com"

To have better usability when working with submodules, you can configure git to update submodules automatically when doing a git pull etc.

git config --global submodule.recurse true

Fetch multiple submodules in parallel:

git config --global submodule.fetchJobs 20

We don't allow merge requests on master, to always keep a linear history. The following alias can be helpful:

[alias]
    purr = pull --rebase

Adding a new submodule to the repository

  1. cd lib
  2. git submodule add <path-to-repo> <foldername>

Removing a submodule in the repository

  1. Delete the relevant section from the .gitmodules file.
  2. Stage the .gitmodules changes: git add .gitmodules.
  3. Delete the relevant section from .git/config.
  4. Run git rm --cached path_to_submodule (no trailing slash).
  5. Run rm -rf .git/modules/path_to_submodule (no trailing slash).
  6. Commit changes