-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Make file operations return the path they created #27071
Conversation
CI errors are because I changed |
AppVeyor failure is just it being a bit flacky AFAICT |
+1. Always good to return a value if there's any possible useful value to return. |
@@ -673,5 +680,4 @@ is `-1` the corresponding ID will not change. Only integer `owner`s and `group`s | |||
function chown(path::AbstractString, owner::Integer, group::Integer=-1) | |||
err = ccall(:jl_fs_chown, Int32, (Cstring, Cint, Cint), path, owner, group) | |||
uv_error("chown",err) | |||
nothing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe chmod
and chown
should return the path too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
base/file.jl
Outdated
@@ -658,6 +658,7 @@ end | |||
Change the permissions mode of `path` to `mode`. Only integer `mode`s (e.g. `0o777`) are | |||
currently supported. If `recursive=true` and the path is a directory all permissions in | |||
that directory will be recursively changed. | |||
Returns `path`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Returns -> Return I think.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think Returns, as in "This function returns path
"
Overly complicated explanation for why:
It is a sentence incorporating ellipsis. which is short for "This function returns path
"
Returns is the verb in 3rd person present tense (I had to look that up).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We usually use imperative form though, from point 2 in the manual (https://docs.julialang.org/en/latest/manual/documentation/):
The one-line sentence should use the imperative form ("Do this", "Return that") instead of the third person (do not write "Returns the length...") when documenting functions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough, amazing and excellent that the manual is that specific
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
However, from searching a bit in the doc strings, we are very inconsistent regarding this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The imperative mode guideline was introduced in #15136, among several other guidelines, by @nalimilan. However, I can't seem to find discussion of that particular aspect in the PR. Was it discussed elsewhere, e.g. on discourse or slack?
(FWIW, I do agree with @KristofferC that indicative mode sounds more natural, as neither the author nor the reader of the documentation will be the actor performing the returning action... but I may be missing something.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't remember where that rule comes from, but I don't think I invented it. It's a know problem that our docs are inconsistent, and I don't really care about which convention is chosen as long as one exists.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do know of that convention/recommendation for git commits, but not for function documentation. I do think it makes more sense in the former context than the latter, but don't meant to discuss this here. Should I open an issue for that, or is everyone else ok with the current convention?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that the cited rule applies to the one-line sentence in the following sense:
Include a single one-line sentence describing what the function does or what the object represents after the simplified signature block. If needed, provide more details in a second paragraph, after a blank line
So no need to discuss the rule here, because it doesn't apply.
Should More useful behavours for |
AppVeyor is, afaict failing to get correct status. The restarted results are: https://ci.appveyor.com/project/JuliaLang/julia/build/1.0.26765 It finished all tests and they passed, but then it timed out before it could finish the job |
…path This was missed in JuliaLang#27071
This makes:
mv
touch
cp
mkdir
mkpath
chown
chmod
return the path they created/modified, rather than
nothing
.It isn't a big change,
but it means you can do things like:
rather than