Public API
## relative_file
relative_file(to_file, frm_file)
Resolves a relative path between two files, "to_file" and "frm_file", they must share the same root
**PARAMETERS**
| Name | Description | Default Value |
| :------------- | :------------- | :------------- |
| to_file | the path with file name to resolve to, from frm | none |
| frm_file | the path with file name to resolve from | none |
**RETURNS**
The relative path from frm_file to to_file, including the file name
## to_manifest_path
to_manifest_path(ctx, file)
The runfiles manifest entry path for a file
This is the full runfiles path of a file including its workspace name as
the first segment. We refert to it as the manifest path as it is the path
flavor that is used for in the runfiles MANIFEST file.
We must avoid using non-normalized paths (workspace/../other_workspace/path)
in order to locate entries by their key.
**PARAMETERS**
| Name | Description | Default Value |
| :------------- | :------------- | :------------- |
| ctx | starlark rule execution context | none |
| file | a File object | none |
**RETURNS**
The runfiles manifest entry path for a file
## to_workspace_path
to_workspace_path(file)
The workspace relative path for a file
This is the full runfiles path of a file excluding its workspace name.
This differs from root path and manifest path as it does not include the
repository name if the file is from an external repository.
**PARAMETERS**
| Name | Description | Default Value |
| :------------- | :------------- | :------------- |
| file | a File object | none |
**RETURNS**
The workspace relative path for a file