tonyhffong/Lint.jl

linter-julia breaks because of #184 changes

TeroFrondelius opened this issue · 10 comments

Something changes the function of lintserver() in #184, I cannot even revert back to the old functionality. I only get it working if I will checkout version before #184 is merged. I'm afraid that same thing happened to other lintserver() users namely vscode.

When I pull upstream to get latest changes, I noticed that in my julia v"0.5.0" environment the tests won't pass:

Test Summary:                                          | Pass  Fail  Total
  Server                                               |   38     5     43
  lintserver() tests                                   |          3      3
  Testing the lintserver addition                      |          2      2
  Testing lintserver() with named pipe and JSON format |   38           38
ERROR: LoadError: Some tests did not pass: 38 passed, 5 failed, 0 errored, 0 broken.

Here is the above ERROR in details:

Evaluated: "none:1 E422 : string uses * to concatenate" in String["none\n",":1 E422 : string uses * to concatenate\n","none\n",":1 E539 Union{}: assigning an error to a variable\n","\n",""]

I didn't expect #184 to change the function of lintserver(). I will investigate.

What is especially strange is that #184, as far as I can tell, does not change the lintserver code at all.

I am unable to reproduce the test failure locally. Can you post your Pkg.status()?

Hi @TotalVerb I will also continue to find the error when back at home. I will also check the Pkg.status(). I will try to make some tests as well.

For the reference here is the linter-julia issue: AtomLinter/linter-julia#38

requirement version status
julia 0.5 OK
JSON 0.6.0 OK
Compat 0.20.0 I have 0.19.0
julia> Pkg.status()
10 required packages:
 - Atom                          0.5.8
 - Blosc                         0.1.7
 - Cxx                           0.0.2
 - Documenter                    0.8.10
 - JSON                          0.8.1
 - JuliaFEM                      0.2.1+             linting (dirty)
 - Lint                          0.2.5+             master
 - NLsolve                       0.9.1
 - ProgressMeter                 0.3.3
 - Tokenize                      0.1.2
61 additional packages:
 - ASTInterpreter                0.0.4
 - AbstractTrees                 0.0.4
 - ArgParse                      0.4.0
 - BinDeps                       0.4.5
 - Blink                         0.5.0
 - COFF                          0.0.2
 - CRC                           1.2.0
 - Calculus                      0.1.15
 - CodeTools                     0.4.3
 - Codecs                        0.2.0
 - ColorTypes                    0.2.12
 - Colors                        0.6.9
 - Compat                        0.19.0
 - DWARF                         0.1.0
 - DataArrays                    0.3.11
 - DataFrames                    0.8.5
 - DataStructures                0.5.2
 - DiffBase                      0.0.3
 - Distances                     0.3.2
 - DocStringExtensions           0.3.1
 - ELF                           0.1.0
 - FileIO                        0.2.2
 - FixedPointNumbers             0.2.1
 - Formatting                    0.2.0
 - ForwardDiff                   0.3.3
 - GZip                          0.2.20
 - Gallium                       0.0.4
 - HDF5                          0.7.2
 - Hiccup                        0.1.1
 - HttpCommon                    0.2.6
 - HttpParser                    0.2.0
 - HttpServer                    0.1.7
 - JuliaParser                   0.7.4
 - Juno                          0.2.5
 - LNR                           0.0.2
 - Lazy                          0.11.5
 - LightXML                      0.4.0
 - LineSearches                  0.1.5
 - Logging                       0.3.1
 - MachO                         0.0.4
 - MacroTools                    0.3.4
 - MbedTLS                       0.4.3
 - Media                         0.2.4
 - Mustache                      0.1.3
 - Mux                           0.2.2
 - NaNMath                       0.2.2
 - ObjFileBase                   0.0.4
 - Optim                         0.7.4
 - PositiveFactorizations        0.0.3
 - Reactive                      0.3.6
 - Reexport                      0.0.3
 - SHA                           0.3.0
 - SortingAlgorithms             0.1.0
 - StatsBase                     0.13.0
 - StructIO                      0.0.2
 - TerminalUI                    0.0.2
 - TextWrap                      0.1.6
 - URIParser                     0.1.7
 - VT100                         0.0.2
 - WebSockets                    0.2.1
 - oldLint                       0.0.0-             c7c23b47 (unregistered, dirty)

julia> 

After updating compat, I will get all tests to pass:

Test Summary: | Pass  Total
  Server      |   43     43

It is strange that Pkg did not update Compat to the required version. Perhaps Pkg.checkout does not ensure dependencies. Hopefully this problem goes away with a tagged release.

We should recommend using Pkg.add instead of Pkg.checkout, and just make sure to tag new versions frequently. Checking out the master branch does not seem very robust.

Yes, I just pulled on the command line and didn't run the Pkg.update() at all. Maybe it could have worked properly, if I have just used it.

So does linter-julia work with the updated version of Compat?

Yes, now it works, at least for me. I will need to do more testing. Clearly this pull request #184 hasn't broke it.