Anonymous says “Did you submit this fix to Dancer2 or just wrote a blog
post about it?” in reaction to my analysis of a surprising test failure
with Dancer2 where
the test script correctly composes paths using
only to be undermined by the fact that
does not canonicalize file paths given to it by
always used Unix-style directory separators, and it may be too late or
too dangerous to fix that now. But,
Module::Build is really careful to use
File::Spec->catfile, so I
believe this is a simple oversight.
The fact is, test failures like this for
even without using Microsoft tools are due to
— and not due to a problem with Dancer2's tests.
What Anonymous misses is when you set out to do X, and then you get
side-tracked because a test which seemingly should not fail fails for
the reason that the build tools are not handling paths correctly, or
because the test author decided to do
qr/$0/ instead of
the time wasted tracking the underlying cause, then cloning, checking
out the repo, getting your local set up to a point where you can
actually run tests from your git checkout, test the patch on Windows,
OSX, and Linux, and submit the pull request etc is gone.
If all Perl programmers decide to ignore perldoc perlport and hard-code paths, or interpolate variables containing paths into regex patterns without escaping them, there is not enough time in the world for a few people to keep submitting pull requests for those errors.
In the same time trying to get to the point where I could do
in the git checkout directory for
App::Cmd, I could have actually
learned a little bit more about Perl6 and Unicode, I might have figured
out how to get panda to install in
my development environment. For example, does
panda fail to install
because the tests bundled with the bundled File::Find test found paths
for string equality rather than path
Or, am I misreading that because I am unfamiliar with Perl6?
Does it make sense that these are the kinds of issues we have to deal with in this day and age?
Because time is a scarce resource.
It is easy to say "submit a pull request" or "build a CPANTesters
Smoker", but when those tasks take an unnecessarily long time because
people are unwilling to take advantage of what
File::Spec offers, the
time wasted cannot be replaced.