In #61 a regression was introduced where Nimble fails to build packages.
```
Prompt: No local packages.json found, download it from internet? -> [forced yes]
Downloading Official package list
Tip: 6 messages have been suppressed, use --verbose to show them.
Error: Refresh failed
... Could not download: No SSL/TLS CA certificates found.
Error: Process completed with exit code 1.
```
Ensure that CA cert is being downloaded once more, even when `koch`
supports `skipIntegrityCheck`.
* Fix checking out of recent Nim tags in shallow repo
When calling `git fetch` on a shallow repo, recent
tags or commits are refused. Fetching with `--tags`
ensures that the latest tags and the commits that
they point to are fetched.
More info:
https://git-scm.com/docs/git-fetch#Documentation/git-fetch.txt---update-shallow
Co-authored-by: Tanguy <tanguy@status.im>
The model where nimbus-build-system.paths were generated as a dependency
from `update-common` proved to create various issues in practice:
* It was not working properly during the repository bootstrapping
because the paths file generation script is assuming that all
submodules are already checked out
* It was not always triggered from builds of the top-level targets
due to missing or already satisfied dependencies on `update-common`.
A more proper solution would structure the dependencies like this:
top-level-project -> nimbus-build-system.paths -> vendor-modules
... but this requires a larger refactoring of the Makefiles, so I'm
merging this interim solution as a way to improve the status quo.
Scripts sourcing a project env.sh file (e.g. direnv's .envrc) can specify
the `NBS_ONLY_LOAD_ENV_VARS` env variable to avoid any attempts from NBS
to execute a target script. Previously, the script was trying to detect
only sourcing from an interactive shell.
Here POC on what are the other steps that have to be performed to allow using NBS.
0961d3acc2
Once all projects migrate to this approach, the code related to building
NIMBLE_PATH can be deleted from the repo
cc @zah
Don't re-build the Nim compiler multiple times until we get identical
binaries, like "build_all.sh" does. Don't build any tools either.
Disabled by default, useful in CI.