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