-
Notifications
You must be signed in to change notification settings - Fork 75
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
Package linting #53
Comments
Ooh yeah I've been thinking about how to accomplish exactly this, but am not too familiar with how this/CSTParser/Tokenize/Lint all work. As a (separate?) check, maybe doing the same thing for methods extended from other packages too. |
Well what I'm going to do today is do a pass over all package/workspace code so that at any step you'll apply some arbitrary So the above would be something along the lines of pseudocode :
|
don't we want does this work strictly on the text content of a file? does it walk imports or recognize when code is dead (never included or behind some conditional?) or would you run it in catch-all mode on all .jl files and hope no one is including julia files under different extensions that would be missed? another one for package linting is checking that all directly imported/used packages are listed in REQUIRE, or test/REQUIRE for test-only deps. I get the impression there's already infrastructure here for detecting imports? |
Yeah that's just my sloppiness on the first point, there's a The LS first builds an tree structure following If you include something that doesn't exist you're warned. |
Very cool. Does it attempt to resolve programmatic includes with some heuristic? |
Not yet, I'm going to add an implementation for |
Hm okay, is there a warning at the moment about possibly-missed includes? Or fall back to "all .jl files" as a next-best guess? |
No, at the moment it just ignores |
I don't think the code in this package helps me with this one, but while we're writing down things I'd like to lint for - checking that supported Julia versions are all running on Travis. |
Yeah I don't think that'll fit into general linting but I think it may be worth adding a special |
Also maybe check |
Makes sense |
@tkelman, available versions for Travis are listed at https://s3.amazonaws.com/julialang right? Which parts am I checking against is it checksums or exe/dmg/tar.gz ? |
we added a new caching layer, I think julialang-s3.julialang.org or something like that. probably unlikely that different platforms' available versions would get out of sync unless I screw something up in uploading |
Cheers |
@tkelman, re this I was going to add some new linting checks. Do you want any more rules added?
New Linting rules
REQUIRE
.REQUIRE
version against Travis.REQUIRE
versions againstPkg.available(pkg)
REQIURE
version of Compat.The text was updated successfully, but these errors were encountered: