rr pkg install has two different jobs depending on the flag. The default
replays the package commits recorded in ip.lock. --force intentionally
re-resolves version constraints against the current registry.
Reproduce a checkout
On a fresh clone:
pip install routertl rr pkg install
With a committed ip.lock, the installer uses the recorded package commits
and reconstructs the installed package tree. This is the command for CI,
another workstation, or a later checkout of the same project.
Update deliberately
When changing a dependency constraint or accepting a newer package version:
rr pkg install --force git diff -- project.yml ip.lock
Review and commit the resulting lock change together with the project change.
Do not use --force as a routine repair for a failed build; first check
whether the existing lock, source tree, or toolchain is the actual problem.
Result
The package source tree and its recorded commit agree. That gives the next
rr sim, rr linting, or rr synth invocation a known dependency input.