-
Notifications
You must be signed in to change notification settings - Fork 18
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
Add docstring for Tar module #173
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #173 +/- ##
=======================================
Coverage 97.53% 97.53%
=======================================
Files 4 4
Lines 810 810
=======================================
Hits 790 790
Misses 20 20 ☔ View full report in Codecov by Sentry. |
@@ -2,6 +2,8 @@ | |||
EditURL = "https://github.com/JuliaIO/Tar.jl/blob/master/docs/src/index.md" | |||
``` | |||
|
|||
The `Tar` module provides a simple interface for handling tar archives. | |||
|
|||
# Tar | |||
|
|||
```@docs |
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 notice that none of these functions are currently exported. In Julia 1.11, they should be declared public, e.g. something like the following to src/Tar.jl
:
if VERSION >= v"1.11" # declare public, non-exported API
eval(Meta.parse("public create, extract, list, rewrite, tree_hash, Header"))
end
since this is apparently the documented API.
I'm not sure if there is a way to avoid eval(Meta.parse(...))
since the public
keyword does not parse in earlier Julia versions?
(Otherwise, these symbols aren't included in names(Tar)
, so their docstrings aren't even being checked by the test below.)
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 this is out of scope of this PR. I'll reference it in JuliaLang/julia#51335 instead to not forget.
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'm not sure if there is a way to avoid
eval(Meta.parse(...))
since the public keyword does not parse in earlier Julia versions?
The only good way to avoid that that I know of is to use Compat.jl's @compat public foo, bar
, though this is a fine use of eval(Meta.parse(....))
imo.
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.
Or make a small macro here macro public(v); @assert isexpr(v, :tuple); VERSION ? esc(Expr(:public, v.args...)); nothing; end
so that it just needs to add an @
to make it syntactically valid here
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.
That macro (with some bug-fixes) is here https://github.com/JuliaLang/Compat.jl/pull/805/files/0c90fae7a869a5f526a4cb13620ea077fc30456e, though it was renamed to @compat public
.
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.
Co-authored-by: Steven G. Johnson <stevenj@mit.edu>
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.
LGTM
@stevengj, is there anything you're waiting for before merge
Handles the
Tar
part of JuliaLang/julia#52725.cc @stevengj