Hi Collin,
> I never really looked at the joinpath() function so I just realized it
> essentially does os.path.normpath(os.path.join(...)) unlike what it's
> doc string says.
"unlike what the doc string says"? What do you mean by that? The doc string
said "This function also replaces SUBDIR/../ with empty", which is something
that os.path.normpath does but os.path.join doesn't.
> The os.path.normpath() isn't really necessary.
Here I disagree. There are comparisons such as
lookedup == joinpath(localdir, original)
which may have evaluated to True, whereas
lookedup == os.path.join(localdir, original)
might evaluate to False, due to incomplete normalization.
> For example, A/./B not being simplified to A/B
> which shouldn't cause any issues building.
Here I disagree as well. Previously the code could assume everywhere
— including in comparisons and in stdout output — that file names are
normalized. Now this is no longer the case, with consequences:
- Maybe the patch introduced bugs (not caught by the test suite).
- Surely it will make maintenance harder, because everywhere we deal
with a file name, we will have to ask ourselves "is it normalized
or not?"
IMO this patch is a regression, not an improvement of any kind.
Bruno