-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not chdir() to phakefile directory #31
base: master
Are you sure you want to change the base?
Conversation
This is done in order to preserve relative path passed as arguments, as they're relative to the current working directory.
Build systems in general must If implemented, this feature should either be a) behind a command-line flag or b) set within the Phakefile itself (e.g. a leading comment like |
Alright, admittedly I have little experience with relative paths in either make or rake, and a quick search didn't turn up many results either. So you can confirm this is actually the case? My assumption was that all paths are relative to the current working directory (as with normal (php) scripts), whereas you're suggesting that they should be relative to the file they're defined in, right? This shouldn't show any obvious effects if you're running phake from the folder where your Phakefile is located, but it differs if you're running if from a sub-folder (say "demo/" in the above example). Personally, I'm okay with it either way, it's just that latter case was unexpected. So if we keep it that way, we should probably address a few things instead:
|
I've tested the behaviour across
|
Thanks for taking the time to confirm this!
So in other words, using relative paths is unpredictable as it depends on several factors not in control of the Phakefile author? If that is actually the case, I'm even more tempted to say that using In PHP, one usually works around this issue by using paths like If so, it's probably easier (and safer) to refrain from trying to work around relative paths as per the original patch. Also, this would open up a few possibilities like
|
This is done in order to preserve relative path passed as arguments, as
they're relative to the current working directory.
Consider the directory structure:
Consider I have a task named
test
which accepts a single argumentfile
:project/
, I expect to be able to runphake test file=demo/example.txt
project/demo
, I expect to be able to runphake test file=example.txt
Open for discussion: