> In my testing `~` always expands to an absolute path, at least when using `File::expand_path`.

Every path (relative or not) when expanded (at least with `File::expand_path`) will be converted to an absolute path.

> Based on my no doubt incomplete understanding of Unix paths, I believe paths beginning with ~ should be treated as absolute.

For our usage case it definitely makes sense to consider it as an absolute (basically we only want the relative logic for paths specified starting from the root of Podfile).

> I guess what I'm saying is that if I expand the declared path in PathSource::fetch it will always be absolute. I don't know how to determine that the declared path wasn't relative without explicitly checking for a ~.

I would just check wether the path begins with the `~`.