observations:
- path mapping does not really[^1] "mask" out the repo name from non-main repo paths: source files OR generated artifacts
- this means that whether you build a particular target (or really produce a particular action for the target) when that target is in the main (root) repo vs. when its in an "external" repo effects the paths used in the action
- i.e. you will not get cache hits if you build
//:your_targetand then pull your repo into another bazel workspace as@fooand build@foo//:your_target - TODO: would be nice to repo names as well...
- path mapping silently falls back to using unmapped paths if the set of mapped paths has any conflicts (see
:example_both)
- note that
ctx.actions.run(_shell)'sinputsdoes influence path mapping and does appear to factor into how conflicts are detected but... if you try to add a path to the command line (i.e. viaarguments) that you haven't listed ininputsit isn't an error — some path mapping heuristi