From d217d34b778616b0864b8ca081f21c45ce3a173f Mon Sep 17 00:00:00 2001 From: Twan Koolen Date: Sat, 11 Aug 2018 12:45:28 -0400 Subject: [PATCH] Drop support for 0.6, update for 0.7, update CI scripts (#88) --- .travis.yml | 6 +++--- REQUIRE | 3 +-- appveyor.yml | 47 ++++++++++++++++++++++++----------------------- src/LightXML.jl | 3 --- src/nodes.jl | 34 ++++++++++++++++++++-------------- test/runtests.jl | 3 +-- 6 files changed, 49 insertions(+), 47 deletions(-) diff --git a/.travis.yml b/.travis.yml index 768653f..86f46da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ os: - linux - osx julia: - - 0.6 - 0.7 + - 1.0 - nightly notifications: email: false @@ -17,6 +17,6 @@ matrix: after_success: # push coverage results to Coveralls - - julia -e 'cd(Pkg.dir("LightXML")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' + - julia --project -e 'import Pkg; Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' # push coverage results to Codecov - - julia -e 'cd(Pkg.dir("LightXML")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' + - julia --project -e 'import Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' diff --git a/REQUIRE b/REQUIRE index 4b939d4..9a4b1a1 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,3 +1,2 @@ -julia 0.6 +julia 0.7 BinaryProvider 0.3.0 -Compat 0.59 diff --git a/appveyor.yml b/appveyor.yml index 07d8926..3c86871 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,16 +1,18 @@ environment: matrix: - - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe" - - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe" - - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.7/julia-0.7-latest-win32.exe" - - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.7/julia-0.7-latest-win64.exe" - - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" - - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" - -matrix: - allow_failures: - - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" - - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + - julia_version: 0.7 + - julia_version: 1 + - julia_version: nightly + +platform: + - x86 # 32-bit + - x64 # 64-bit + +# # Uncomment the following lines to allow failures on nightly julia +# # (tests will run but not make your overall status red) +# matrix: +# allow_failures: +# - julia_version: latest branches: only: @@ -24,19 +26,18 @@ notifications: on_build_status_changed: false install: - - ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12" -# Download most recent Julia Windows binary - - ps: (new-object net.webclient).DownloadFile( - $env:JULIA_URL, - "C:\projects\julia-binary.exe") -# Run installer silently, output to C:\projects\julia - - C:\projects\julia-binary.exe /S /D=C:\projects\julia + - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/JuliaCI/Appveyor.jl/version-1/bin/install.ps1")) build_script: -# Need to convert from shallow to complete for Pkg.clone to work - - IF EXIST .git\shallow (git fetch --unshallow) - - C:\projects\julia\bin\julia -e "versioninfo(); - Pkg.clone(pwd(), \"LightXML\"); Pkg.build(\"LightXML\")" + - echo "%JL_BUILD_SCRIPT%" + - C:\julia\bin\julia -e "%JL_BUILD_SCRIPT%" test_script: - - C:\projects\julia\bin\julia --check-bounds=yes -e "Pkg.test(\"LightXML\")" + - echo "%JL_TEST_SCRIPT%" + - C:\julia\bin\julia -e "%JL_TEST_SCRIPT%" + +# # Uncomment to support code coverage upload. Should only be enabled for packages +# # which would have coverage gaps without running on Windows +# on_success: +# - echo "%JL_CODECOV_SCRIPT%" +# - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%" diff --git a/src/LightXML.jl b/src/LightXML.jl index 7511483..fec407c 100644 --- a/src/LightXML.jl +++ b/src/LightXML.jl @@ -1,9 +1,6 @@ -__precompile__() module LightXML -using Compat - let depsfile = joinpath(@__DIR__, "..", "deps", "deps.jl") if !isfile(depsfile) error("LightXML is not properly installed. Run `Pkg.build(\"LightXML\")` and " * diff --git a/src/nodes.jl b/src/nodes.jl index 043d05d..6e7f8e4 100644 --- a/src/nodes.jl +++ b/src/nodes.jl @@ -95,10 +95,13 @@ struct XMLAttrIter p::Xptr end -Base.start(it::XMLAttrIter) = it.p -Base.done(it::XMLAttrIter, p::Xptr) = (p == C_NULL) -Base.next(it::XMLAttrIter, p::Xptr) = (a = XMLAttr(p); (a, a._struct.next)) -Compat.IteratorSize(::Type{XMLAttrIter}) = Base.SizeUnknown() +function Base.iterate(it::XMLAttrIter, p::Xptr=it.p) + p == C_NULL && return nothing + a = XMLAttr(p) + (a, a._struct.next) +end + +Base.IteratorSize(::Type{XMLAttrIter}) = Base.SizeUnknown() ####################################### # @@ -160,10 +163,13 @@ struct XMLNodeIter p::Xptr end -Base.start(it::XMLNodeIter) = it.p -Base.done(it::XMLNodeIter, p::Xptr) = (p == C_NULL) -Base.next(it::XMLNodeIter, p::Xptr) = (nd = XMLNode(p); (nd, nd._struct.next)) -Compat.IteratorSize(::Type{XMLNodeIter}) = Base.SizeUnknown() +function Base.iterate(it::XMLNodeIter, p::Xptr=it.p) + p == C_NULL && return nothing + nd = XMLNode(p) + (nd, nd._struct.next) +end + +Base.IteratorSize(::Type{XMLNodeIter}) = Base.SizeUnknown() child_nodes(nd::XMLNode) = XMLNodeIter(nd._struct.children) @@ -259,12 +265,12 @@ struct XMLElementIter parent_ptr::Xptr end -Base.start(it::XMLElementIter) = - ccall((:xmlFirstElementChild,libxml2), Xptr, (Xptr,), it.parent_ptr) -Base.done(it::XMLElementIter, p::Xptr) = (p == C_NULL) -Base.next(it::XMLElementIter, p::Xptr) = - (XMLElement(p), ccall((:xmlNextElementSibling,libxml2), Xptr, (Xptr,), p)) -Compat.IteratorSize(::Type{XMLElementIter}) = Base.SizeUnknown() +function Base.iterate(it::XMLElementIter, p::Xptr=ccall((:xmlFirstElementChild, libxml2), Xptr, (Xptr,), it.parent_ptr)) + p == C_NULL && return nothing + XMLElement(p), ccall((:xmlNextElementSibling, libxml2), Xptr, (Xptr,), p) +end + +Base.IteratorSize(::Type{XMLElementIter}) = Base.SizeUnknown() child_elements(x::XMLElement) = XMLElementIter(x.node.ptr) diff --git a/test/runtests.jl b/test/runtests.jl index b61eef1..d7f2b6f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,6 +1,5 @@ using LightXML -using Compat -using Compat.Test +using Test tests = ["parse", "create", "cdata", "pi"]