QuantumSavory / QuantumClifford.jl

Clifford circuits, graph states, and other quantum Stabilizer formalism tools.
MIT License
113 stars 46 forks source link

Bug/Conflict in new version of QuantumClifford preventing install/update #379

Closed Mingyuan1231 closed 2 days ago

Mingyuan1231 commented 1 week ago

Describe the bug 🐞

Cannot install the newest version of QuantumClifford.

Expected behavior

I expected it should be installed.

Minimal Reproducible Example πŸ‘‡

Without MRE, we would only be able to help you to a limited extent, and attention to the issue would be limited. to know more about MRE refer to wikipedia and stackoverflow.

(@v1.10) pkg> activate D:\Test
  Activating new project at `D:\Test`
(Test) pkg> add CairoMakie
(Test) pkg> add AlgebraOfGraphics
(Test) pkg> add DataFrames
(Test) pkg> st
Status `D:\Test\Project.toml`
  [cbdf2221] AlgebraOfGraphics v0.8.11
  [13f3f980] CairoMakie v0.12.12
  [a93c6f00] DataFrames v1.7.0

(Test) pkg> up
    Updating registry at `C:\Users\wmy19\.julia\registries\General.toml`
  No Changes to `D:\Test\Project.toml`
  No Changes to `D:\Test\Manifest.toml`

(Test) pkg> add QuantumClifford
   Resolving package versions...
     Failure artifact: FLINT
ERROR: IOError: rm("C:\\Users\\wmy19\\.julia\\artifacts\\jl_Hz4DjX\\bin"): directory not empty (ENOTEMPTY)
Stacktrace:

(See detailed error report below)

Error & Stacktrace or other complete output produced by the MRE ⚠️

(Test) pkg> add QuantumClifford
   Resolving package versions...
     Failure artifact: FLINT
ERROR: IOError: rm("C:\\Users\\wmy19\\.julia\\artifacts\\jl_Hz4DjX\\bin"): directory not empty (ENOTEMPTY)
Stacktrace:
  [1] uv_error
    @ .\libuv.jl:100 [inlined]
  [2] rm(path::String; force::Bool, recursive::Bool)
    @ Base.Filesystem .\file.jl:307
  [3] rm(path::String; force::Bool, recursive::Bool)
    @ Base.Filesystem .\file.jl:294
  [4] rm
    @ .\file.jl:273 [inlined]
  [5] download_artifact(tree_hash::Base.SHA1, tarball_url::String, tarball_hash::Nothing; verbose::Bool, quiet_download::Bool, io::Base.TTY)
    @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:376
  [6] download_artifact (repeats 2 times)
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:297 [inlined]
  [7] #22
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:423 [inlined]
  [8] with_show_download_info(f::Pkg.Artifacts.var"#22#24"{Bool, Bool, Base.TTY, Base.SHA1, String}, io::Base.TTY, name::String, quiet_download::Bool)
    @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:481
  [9] ensure_artifact_installed(name::String, meta::Dict{String, Any}, artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, verbose::Bool, quiet_download::Bool, io::Base.TTY)
    @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:422
 [10] download_artifacts(env::Pkg.Types.EnvCache; platform::Base.BinaryPlatforms.Platform, julia_version::VersionNumber, verbose::Bool, io::Base.TTY)
    @ Pkg.Operations C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:755
 [11] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
    @ Pkg.Operations C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:1394
 [12] add
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:1376 [inlined]
 [13] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::@Kwargs{io::Base.TTY})
    @ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:278
 [14] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{})
    @ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:159
 [15] add(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:148
 [16] do_cmd!(command::Pkg.REPLMode.Command, repl::REPL.LineEditREPL)
    @ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:412
 [17] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
    @ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:390
 [18] do_cmd
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:380 [inlined]
 [19] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
    @ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:557
 [20] #invokelatest#2
    @ .\essentials.jl:892 [inlined]
 [21] invokelatest
    @ .\essentials.jl:889 [inlined]
 [22] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\LineEdit.jl:2656
 [23] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:1312
 [24] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:386

Environment (please complete the following information):

julia> Pkg.status()
Status `D:\Test\Project.toml`
  [cbdf2221] AlgebraOfGraphics v0.8.11
  [13f3f980] CairoMakie v0.12.12
  [a93c6f00] DataFrames v1.7.0
julia> Pkg.status(;mode = PKGMODE_MANIFEST)
Status `D:\Test\Manifest.toml`
  [621f4979] AbstractFFTs v1.5.0
  [1520ce14] AbstractTrees v0.4.5
  [7d9f7c33] Accessors v0.1.38
  [79e6a3ab] Adapt v4.0.4
  [35492f91] AdaptivePredicates v1.2.0
  [cbdf2221] AlgebraOfGraphics v0.8.11
  [66dad0bd] AliasTables v1.1.3
  [27a7e980] Animations v0.4.1
  [67c07d97] Automa v1.0.4
  [13072b0f] AxisAlgorithms v1.1.0
  [39de3d68] AxisArrays v0.4.7
  [fa961155] CEnum v0.5.0
  [159f3aea] Cairo v1.1.0
  [13f3f980] CairoMakie v0.12.12
  [d360d2e6] ChainRulesCore v1.25.0
  [a2cac450] ColorBrewer v0.4.0
  [35d6a980] ColorSchemes v3.26.0
  [3da002f7] ColorTypes v0.11.5
  [c3611d14] ColorVectorSpace v0.10.0
  [5ae59095] Colors v0.12.11
  [34da2185] Compat v4.16.0
  [a33af91c] CompositionsBase v0.1.2
  [187b0558] ConstructionBase v1.5.8
  [d38c429a] Contour v0.6.3
  [a8cc5b0e] Crayons v4.1.1
  [9a962f9c] DataAPI v1.16.0
  [a93c6f00] DataFrames v1.7.0
  [864edb3b] DataStructures v0.18.20
  [e2d170a0] DataValueInterfaces v1.0.0
  [927a84f5] DelaunayTriangulation v1.6.0
  [85a47980] Dictionaries v0.4.2
  [b4f34e82] Distances v0.10.11
  [31c24e10] Distributions v0.25.112
  [ffbed154] DocStringExtensions v0.9.3
  [4e289a0a] EnumX v1.0.4
  [429591f6] ExactPredicates v2.2.8
  [411431e0] Extents v0.1.4
  [7a1cc6ca] FFTW v1.8.0
  [5789e2e9] FileIO v1.16.3
  [8fc22ac5] FilePaths v0.8.3
  [48062228] FilePathsBase v0.9.22
  [1a297f60] FillArrays v1.13.0
  [53c48c17] FixedPointNumbers v0.8.5
  [1fa38f19] Format v1.3.7
  [b38be410] FreeType v4.1.1
  [663a7486] FreeTypeAbstraction v0.10.3
  [38e38edf] GLM v1.9.0
  [68eda718] GeoFormatTypes v0.4.2
  [cf35fbd7] GeoInterface v1.3.7
  [5c1252a2] GeometryBasics v0.4.11
  [a2bd30eb] Graphics v1.1.2
  [3955a311] GridLayoutBase v0.11.0
  [42e2da0e] Grisu v1.0.2
  [34004b35] HypergeometricFunctions v0.3.24
  [2803e5a7] ImageAxes v0.6.11
  [c817782e] ImageBase v0.1.7
  [a09fc81d] ImageCore v0.10.2
  [82e4d734] ImageIO v0.6.8
  [bc367c6b] ImageMetadata v0.9.9
  [313cdc1a] Indexing v1.1.1
  [9b13fd28] IndirectArrays v1.0.0
  [d25df0c9] Inflate v0.1.5
  [842dd82b] InlineStrings v1.4.2
  [a98d9a8b] Interpolations v0.15.1
  [d1acc4aa] IntervalArithmetic v0.22.17
  [8197267c] IntervalSets v0.7.10
  [3587e190] InverseFunctions v0.1.17
  [41ab1584] InvertedIndices v1.3.0
  [92d709cd] IrrationalConstants v0.2.2
  [f1662d9f] Isoband v0.1.1
  [c8e1da08] IterTools v1.10.0
  [82899510] IteratorInterfaceExtensions v1.0.0
  [692b3bcd] JLLWrappers v1.6.0
  [682c06a0] JSON v0.21.4
  [b835a17e] JpegTurbo v0.1.5
  [5ab0869b] KernelDensity v0.6.9
  [b964fa9f] LaTeXStrings v1.3.1
  [8cdb02fc] LazyModules v0.3.1
  [4345ca2d] Loess v0.6.4
  [2ab3a3ac] LogExpFunctions v0.3.28
  [1914dd2f] MacroTools v0.5.13
  [ee78f7c6] Makie v0.21.12
  [20f20a25] MakieCore v0.8.8
  [dbb5928d] MappedArrays v0.4.2
  [0a4f8689] MathTeXEngine v0.6.1
  [e1d29d7a] Missings v1.2.0
  [e94cdb99] MosaicViews v0.3.4
  [77ba4419] NaNMath v1.0.2
  [c020b1a1] NaturalSort v1.0.0
  [f09324ee] Netpbm v1.1.1
  [510215fc] Observables v0.5.5
  [6fe1bfb0] OffsetArrays v1.14.1
  [52e1d378] OpenEXR v0.3.2
  [bac558e1] OrderedCollections v1.6.3
  [90014a1f] PDMats v0.11.31
  [f57f5aa1] PNGFiles v0.4.3
  [19eb6ba3] Packing v0.5.0
  [5432bcbf] PaddedViews v0.5.12
  [69de0a69] Parsers v2.8.1
  [eebad327] PkgVersion v0.3.3
  [995b91a9] PlotUtils v1.4.1
  [647866c9] PolygonOps v0.1.2
  [2dfb63ee] PooledArrays v1.4.3
  [aea7be01] PrecompileTools v1.2.1
  [21216c6a] Preferences v1.4.3
  [08abe8d2] PrettyTables v2.4.0
  [92933f4c] ProgressMeter v1.10.2
  [43287f4e] PtrArrays v1.2.1
  [4b34888f] QOI v1.0.0
  [1fd47b50] QuadGK v2.11.1
  [b3c3ace0] RangeArrays v0.3.2
  [c84ed2f1] Ratios v0.4.5
  [189a3867] Reexport v1.2.2
  [05181044] RelocatableFolders v1.0.1
  [ae029012] Requires v1.3.0
  [79098fc4] Rmath v0.8.0
  [5eaf0fd0] RoundingEmulator v0.2.1
  [fdea26ae] SIMD v3.6.0
  [6c6a2e73] Scratch v1.2.1
  [91c51154] SentinelArrays v1.4.5
  [65257c39] ShaderAbstractions v0.4.1
  [1277b4bf] ShiftedArrays v2.0.0
  [992d4aef] Showoff v1.0.3
  [73760f76] SignedDistanceFields v0.4.0
  [699a6c99] SimpleTraits v0.9.4
  [45858cf5] Sixel v0.1.3
  [a2af1166] SortingAlgorithms v1.2.1
  [276daf66] SpecialFunctions v2.4.0
  [cae243ae] StackViews v0.1.1
  [90137ffa] StaticArrays v1.9.7
  [1e83bf80] StaticArraysCore v1.4.3
  [82ae8749] StatsAPI v1.7.0
  [2913bbd2] StatsBase v0.34.3
  [4c63d2b9] StatsFuns v1.3.2
  [3eaba693] StatsModels v0.7.4
  [892a3eda] StringManipulation v0.4.0
  [09ab397b] StructArrays v0.6.18
  [3783bdb8] TableTraits v1.0.1
  [bd369af6] Tables v1.12.0
  [62fd8b95] TensorCore v0.1.1
  [731e570b] TiffImages v0.10.0
  [3bb67fe8] TranscodingStreams v0.11.2
  [981d1d27] TriplotBase v0.1.0
  [1cfade01] UnicodeFun v0.4.1
  [1986cc42] Unitful v1.21.0
  [efce3f68] WoodburyMatrices v1.0.0
  [6e34b625] Bzip2_jll v1.0.8+1
  [4e9b3aee] CRlibm_jll v1.0.1+0
  [83423d85] Cairo_jll v1.18.0+2
  [5ae413db] EarCut_jll v2.2.4+0
  [2e619515] Expat_jll v2.6.2+0
  [b22a6f82] FFMPEG_jll v6.1.2+0
  [f5851436] FFTW_jll v3.3.10+1
  [a3f928ae] Fontconfig_jll v2.13.96+0
  [d7e528f0] FreeType2_jll v2.13.2+0
  [559328eb] FriBidi_jll v1.0.14+0
  [78b55507] Gettext_jll v0.21.0+0
  [7746bdde] Glib_jll v2.80.5+0
  [3b182d85] Graphite2_jll v1.3.14+0
  [2e76f6c2] HarfBuzz_jll v8.3.1+0
  [905a6f67] Imath_jll v3.1.11+0
  [1d5cc7b8] IntelOpenMP_jll v2024.2.1+0
  [aacddb02] JpegTurbo_jll v3.0.4+0
  [c1c5ebd0] LAME_jll v3.100.2+0
  [1d63c593] LLVMOpenMP_jll v18.1.7+0
  [dd4b983a] LZO_jll v2.10.2+1
βŒ… [e9f186c6] Libffi_jll v3.2.2+1
  [d4300ac3] Libgcrypt_jll v1.8.11+0
  [7add5ba3] Libgpg_error_jll v1.49.0+0
  [94ce4f54] Libiconv_jll v1.17.0+0
  [4b2f31a3] Libmount_jll v2.40.1+0
  [38a345b3] Libuuid_jll v2.40.1+0
  [856f044c] MKL_jll v2024.2.0+0
  [e7412a2a] Ogg_jll v1.3.5+1
  [18a262bb] OpenEXR_jll v3.2.4+0
  [458c3c95] OpenSSL_jll v3.0.15+1
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [91d4177d] Opus_jll v1.3.3+0
  [36c8627f] Pango_jll v1.54.1+0
  [30392449] Pixman_jll v0.43.4+0
  [f50d1b31] Rmath_jll v0.5.1+0
  [02c8fc9c] XML2_jll v2.13.3+0
  [aed1982a] XSLT_jll v1.1.41+0
  [4f6342f7] Xorg_libX11_jll v1.8.6+0
  [0c0b7dd1] Xorg_libXau_jll v1.0.11+0
  [a3789734] Xorg_libXdmcp_jll v1.1.4+0
  [1082639a] Xorg_libXext_jll v1.3.6+0
  [ea2f1a96] Xorg_libXrender_jll v0.9.11+0
  [14d82f49] Xorg_libpthread_stubs_jll v0.1.1+0
  [c7cfdc94] Xorg_libxcb_jll v1.17.0+0
  [c5fb5394] Xorg_xtrans_jll v1.5.0+0
  [9a68df92] isoband_jll v0.2.3+0
  [a4ae2306] libaom_jll v3.9.0+0
  [0ac62f75] libass_jll v0.15.2+0
  [f638f0a6] libfdk_aac_jll v2.0.3+0
  [b53b4c65] libpng_jll v1.6.44+0
  [075b6546] libsixel_jll v1.10.3+1
  [f27f6e37] libvorbis_jll v1.3.7+2
  [1317d2d5] oneTBB_jll v2021.12.0+0
  [1270edf5] x264_jll v10164.0.0+0
βŒ… [dfaa095f] x265_jll v3.6.0+0
  [0dad84c5] ArgTools v1.1.1
  [56f22d72] Artifacts
  [2a0f44e3] Base64
  [8bf52ea8] CRC32c
  [ade2ca70] Dates
  [8ba89e20] Distributed
  [f43a241f] Downloads v1.6.0
  [7b1f6079] FileWatching
  [9fa8497b] Future
  [b77e0a4c] InteractiveUtils
  [4af54fe1] LazyArtifacts
  [b27032c2] LibCURL v0.6.4
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [a63ad114] Mmap
  [ca575930] NetworkOptions v1.2.0
  [44cfe95a] Pkg v1.10.0
  [de0858da] Printf
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA v0.7.0
  [9e88b42a] Serialization
  [1a1011a3] SharedArrays
  [6462fe0b] Sockets
  [2f01184e] SparseArrays v1.10.0
  [10745b16] Statistics v1.10.0
  [4607b0f0] SuiteSparse
  [fa267f1f] TOML v1.0.3
  [a4e569a6] Tar v1.10.0
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll v1.1.1+0
  [deac9b47] LibCURL_jll v8.4.0+0
  [e37daf67] LibGit2_jll v1.6.4+0
  [29816b5a] LibSSH2_jll v1.11.0+1
  [c8ffd9c3] MbedTLS_jll v2.28.2+1
  [14a3606d] MozillaCACerts_jll v2023.1.10
  [4536629a] OpenBLAS_jll v0.3.23+4
  [05823500] OpenLibm_jll v0.8.1+2
  [efcefdf7] PCRE2_jll v10.42.0+1
  [bea87d4a] SuiteSparse_jll v7.2.1+1
  [83775a58] Zlib_jll v1.2.13+1
  [8e850b90] libblastrampoline_jll v5.11.0+0
  [8e850ede] nghttp2_jll v1.52.0+1
  [3f19e933] p7zip_jll v17.4.0+2
Info Packages marked with βŒ… have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
julia> versioninfo()
Julia Version 1.10.5
Commit 6f3fdf7b36 (2024-08-27 14:19 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 Γ— Intel(R) Core(TM) i7-10700KF CPU @ 3.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, skylake)
Threads: 8 default, 0 interactive, 4 GC (on 16 virtual cores)
Environment:
  JULIA_NUM_THREADS = 8

Additional context

In my pervious environment where QuantumClifford has installed, other package cannot update.

Fe-r-oz commented 1 week ago

Have you tried the following?

git clone https://github.com/QuantumSavory/QuantumClifford.jl.git to create the install manually.

# suppose, /home/samplepath/QuantumClifford is a path, 
# to where QuantumClifford.jl is installed.

julia>  Pkg.activate("/home/samplepath/QuantumClifford.jl")   

julia>  Pkg.instantiate()
julia>  Pkg.update()
julia>  Pkg.resolve()

There seems to be some packages missing comparing to the output of your Pkg.status(). I did Pkg.update() today, but the output should be similar to the following. For example, the result of Pkg.status() is:

julia> Pkg.status()
Project QuantumClifford v0.9.11
Status `~/Desktop/coprime/QuantumClifford.jl/Project.toml`
  [861a8166] Combinatorics v1.0.2
  [864edb3b] DataStructures v0.18.20
  [ffbed154] DocStringExtensions v0.9.3
  [86223c79] Graphs v1.12.0
  [3e5b6fbb] HostCPUFeatures v0.1.17
βŒ… [2cd5bd5f] ILog2 v0.2.4
  [1914dd2f] MacroTools v0.5.13
  [2edaba10] Nemo v0.47.1
  [aea7be01] PrecompileTools v1.2.1
  [5717a53b] QuantumInterface v0.3.6
  [fdea26ae] SIMD v3.6.0
  [8e1ec7a9] SumTypes v0.5.8
  [b77e0a4c] InteractiveUtils
  [37e2e46d] LinearAlgebra
  [9a3f8284] Random
  [2f01184e] SparseArrays v1.10.0
  [10745b16] Statistics v1.10.0
Info Packages marked with βŒ… have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated`
Fe-r-oz commented 1 week ago

It seems you don't have Nemo installed from your Pkg.status()output that's why the FLINT error. Nemo uses FLINT. see: https://github.com/Nemocas/Nemo.jl/blob/master/Project.toml or checkout their ReadMe. Nemo provide wrappers the FLINT C library

Krastanov commented 1 week ago

@Fe-r-oz , thanks for the suggestion, but a user should not need to clone the repository. Installations are supposed to work on released versions without extra work.

@Mingyuan1231 , thanks for reporting, we will try to reproduce and ping you for more details if we can not.

Krastanov commented 1 week ago

@Mingyuan1231 , I can not reproduce this in a new environment, so it is probably something specific to your windows system. Nonetheless, this is something we would not want to happen with our library. Below are some suggestions for troubleshooting.

This part of the error message seems most important: ERROR: IOError: rm("C:\\Users\\wmy19\\.julia\\artifacts\\jl_Hz4DjX\\bin"): directory not empty (ENOTEMPTY) -- during the installation process, Julia is trying to remove a previously installed binary artifact (a non-Julia code that some julia library needs, probably something related to the computer algebra system Nemo on which we depend), but it fails to remove the artifact because the folder where it is stored has been modified.

Most probably this is some unpleasant interaction between Julia and whatever anti-virus system you are running on your windows installation (antivirus systems frequently clash with dev environments in many languages). Or it is just some edge-case bug in the Julia package manager.

To solve this issue, could try manually deleting your artifacts folder C:\\Users\\wmy19\\.julia\\artifacts -- that will cause a ton of things to need to be reinstalled, but afterwards it should hopefully work fine.

Krastanov commented 1 week ago

For reference, it seems it is at least partially related to this issue in the package manager https://github.com/JuliaLang/Pkg.jl/issues/3822 which also seems to be due to a windows antivirus interfering with Julia. It seems they have added specific error messages to warn the user about stuff like this in newer versions of the package manager.

Mingyuan1231 commented 1 week ago

@Krastanov It turns out that manually delete the folder doesn't work. The error message folder name will change for each install attempt.

I tried uninstalling the Julia and delete .julia folder and reinstalled, the error still occurred.

I also tried to deactivate windows antivirus system, still not working.

Krastanov commented 1 week ago

oh, that is worrisome. You have done all the things I would have suggested (I would even say that uninstalling julia was unnecessary).

To confirm: it is indeed a good idea (although maybe a bit draconian) to nuke the entire .julia folder and to completely disable the antivirus. The fact that it is still not working puzzles me.

While I am trying to reproduce this, could you try the following: again set up a clean environment, install the plotting packages that you mentioned at the beginning and then try to install Nemo (NOT QuantumClifford). I want to confirm the issue is indeed around the Nemo dependancy.

Mingyuan1231 commented 6 days ago

@Krastanov Looks like the issue is indeed around the Nemo:

(@v1.10) pkg> activate D:\NemoTest
  Activating new project at `D:\NemoTest`

(NemoTest) pkg> add CairoMakie
(NemoTest) pkg> add AlgebraOfGraphics
(NemoTest) pkg> add DataFrames

(NemoTest) pkg> st
Status `D:\NemoTest\Project.toml`
  [cbdf2221] AlgebraOfGraphics v0.8.11
  [13f3f980] CairoMakie v0.12.12
  [a93c6f00] DataFrames v1.7.0

(NemoTest) pkg> add Nemo
   Resolving package versions...
     Failure artifact: FLINT
ERROR: IOError: rm("C:\\Users\\wmy19\\.julia\\artifacts\\jl_J9xank\\bin"): directory not empty (ENOTEMPTY)
Stacktrace:
  [1] uv_error
    @ .\libuv.jl:100 [inlined]
  [2] rm(path::String; force::Bool, recursive::Bool)
    @ Base.Filesystem .\file.jl:307
  [3] rm(path::String; force::Bool, recursive::Bool)
    @ Base.Filesystem .\file.jl:294
  [4] rm
    @ .\file.jl:273 [inlined]
  [5] download_artifact(tree_hash::Base.SHA1, tarball_url::String, tarball_hash::Nothing; verbose::Bool, quiet_download::Bool, io::Base.TTY)
    @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:376
  [6] download_artifact (repeats 2 times)
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:297 [inlined]
  [7] #22
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:423 [inlined]
  [8] with_show_download_info(f::Pkg.Artifacts.var"#22#24"{Bool, Bool, Base.TTY, Base.SHA1, String}, io::Base.TTY, name::String, quiet_download::Bool)
    @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:481
  [9] ensure_artifact_installed(name::String, meta::Dict{String, Any}, artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, verbose::Bool, quiet_download::Bool, io::Base.TTY)
    @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifacts.jl:422
 [10] download_artifacts(env::Pkg.Types.EnvCache; platform::Base.BinaryPlatforms.Platform, julia_version::VersionNumber, verbose::Bool, io::Base.TTY)
    @ Pkg.Operations C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:755
 [11] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
    @ Pkg.Operations C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:1394
 [12] add
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Operations.jl:1376 [inlined]
 [13] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::@Kwargs{io::Base.TTY})
    @ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:278
 [14] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{})
    @ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:159
 [15] add(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\API.jl:148
 [16] do_cmd!(command::Pkg.REPLMode.Command, repl::REPL.LineEditREPL)
    @ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:412
 [17] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
    @ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:390
 [18] do_cmd
    @ C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:380 [inlined]
 [19] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
    @ Pkg.REPLMode C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\REPLMode\REPLMode.jl:557
 [20] #invokelatest#2
    @ .\essentials.jl:892 [inlined]
 [21] invokelatest
    @ .\essentials.jl:889 [inlined]
 [22] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\LineEdit.jl:2656
 [23] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:1312
 [24] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\REPL\src\REPL.jl:386
Krastanov commented 6 days ago

apologies for all the different request for diagnostics, but could you try the following two as well (again in a new clean environment):

Mingyuan1231 commented 6 days ago

There is some error message during installing Nemo, but the installation is completed.

(@v1.10) pkg> activate D:\NemoFirst
  Activating new project at `D:\NemoFirst`

(NemoFirst) pkg> add Nemo
   Resolving package versions...
 Downloading artifact: FLINT
β”Œ Error: Tree Hash Mismatch!
β”‚   Expected git-tree-sha1:   12b1a924ee8229f59edd96f05ec588456b1ced55
β”‚   Calculated git-tree-sha1: 42a0e0825251f98b696948213bc4c5dcbe2c071f
β”‚
β”‚ System is Windows and user cannot create symlinks: ignoring hash mismatch and moving artifact to the expected locationβ”” @ Pkg.Artifacts C:\Users\wmy19\.julia\juliaup\julia-1.10.5+0.x64.w64.mingw32\share\julia\stdlib\v1.10\Pkg\src\Artifact  Downloaded artifact: FLINT
  Downloaded artifact: OpenBLAS32
    Updating `D:\NemoFirst\Project.toml`
  [2edaba10] + Nemo v0.47.1
    Updating `D:\NemoFirst\Manifest.toml`
  [c3fe647b] + AbstractAlgebra v0.43.2
  [692b3bcd] + JLLWrappers v1.6.0
  [1914dd2f] + MacroTools v0.5.13
  [2edaba10] + Nemo v0.47.1
  [21216c6a] + Preferences v1.4.3
  [fb686558] + RandomExtensions v0.4.4
  [e134572f] + FLINT_jll v300.100.300+0
βŒ… [656ef2d0] + OpenBLAS32_jll v0.3.24+0
  [0dad84c5] + ArgTools v1.1.1
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching
  [b77e0a4c] + InteractiveUtils
  [b27032c2] + LibCURL v0.6.4
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [37e2e46d] + LinearAlgebra
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.10.0
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [2f01184e] + SparseArrays v1.10.0
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [8dfed614] + Test
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [e66e0078] + CompilerSupportLibraries_jll v1.1.1+0
  [781609d7] + GMP_jll v6.2.1+6
  [deac9b47] + LibCURL_jll v8.4.0+0
  [e37daf67] + LibGit2_jll v1.6.4+0
  [29816b5a] + LibSSH2_jll v1.11.0+1
  [3a97d323] + MPFR_jll v4.2.0+1
  [c8ffd9c3] + MbedTLS_jll v2.28.2+1
  [14a3606d] + MozillaCACerts_jll v2023.1.10
  [4536629a] + OpenBLAS_jll v0.3.23+4
  [bea87d4a] + SuiteSparse_jll v7.2.1+1
  [83775a58] + Zlib_jll v1.2.13+1
  [8e850b90] + libblastrampoline_jll v5.11.0+0
  [8e850ede] + nghttp2_jll v1.52.0+1
  [3f19e933] + p7zip_jll v17.4.0+2
        Info Packages marked with βŒ… have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
  5 dependencies successfully precompiled in 21 seconds. 10 already precompiled.

(NemoFirst) pkg> st
Status `D:\NemoFirst\Project.toml`
  [2edaba10] Nemo v0.47.1
Mingyuan1231 commented 6 days ago

After install Nemo first, the rest of graphics library can be installed correctly. But there is another warning report during install QuantumClifford:

(NemoFirst) pkg> add QuantumClifford
   Resolving package versions...
    Updating `D:\NemoFirst\Project.toml`
  [0525e862] + QuantumClifford v0.9.11
    Updating `D:\NemoFirst\Manifest.toml`
  [ec485272] + ArnoldiMethod v0.4.0
  [62783981] + BitTwiddlingConvenienceFunctions v0.1.6
  [861a8166] + Combinatorics v1.0.2
  [f70d9fcc] + CommonWorldInvalidations v1.0.0
  [86223c79] + Graphs v1.12.0
  [3e5b6fbb] + HostCPUFeatures v0.1.17
βŒ… [2cd5bd5f] + ILog2 v0.2.4
  [615f187c] + IfElse v0.1.1
  [0525e862] + QuantumClifford v0.9.11
  [5717a53b] + QuantumInterface v0.3.6
  [aedffcd0] + Static v1.1.1
  [8e1ec7a9] + SumTypes v0.5.8
        Info Packages marked with βŒ… have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
  4 dependencies successfully precompiled in 23 seconds. 276 already precompiled.
  1 dependency had output during precompilation:
β”Œ QuantumClifford
β”‚  WARNING: using QuantumClifford.I in module ECC conflicts with an existing identifier.
β”‚  WARNING: using LinearAlgebra.I in module QuantumClifford conflicts with an existing identifier.
β””

(NemoFirst) pkg> st
Status `D:\NemoFirst\Project.toml`
  [cbdf2221] AlgebraOfGraphics v0.8.11
  [13f3f980] CairoMakie v0.12.12
  [a93c6f00] DataFrames v1.7.0
  [2edaba10] Nemo v0.47.1
  [0525e862] QuantumClifford v0.9.11
Krastanov commented 2 days ago

Those warnings can be disregarded. I will take care of fixing them on the next release. It sounds like things are now working, so I will close this issue. Not quite sure what in Nemo was causing it.