JuliaLang / Pkg.jl

Pkg - Package manager for the Julia programming language
https://pkgdocs.julialang.org
Other
622 stars 268 forks source link

"AssertionError: p0 ≠ p1" with large list of packages #1169

Closed nalimilan closed 5 years ago

nalimilan commented 5 years ago

Maybe not something reasonable to do, but...

julia> Pkg.add(["ACME",
       "AbbrvKW",
       "ActiveAppearanceModels",
       "AdaptiveRejectionSampling",
       "ApproxBayes",
       "Augur",
       "AverageShiftedHistograms",
       "ANOVA",
       "ApproximateBayesianComputing",
       "AugmentedGaussianProcesses",
       "ArraysOfArrays",
       "ARCHModels",
       "AdvancedHMC",
       "Agents",
       "BayesNets",
       "BioEnergeticFoodWebs",
       "BlackBoxOptim",
       "Boltzmann",
       "Bootstrap",
       "Brim",
       "Brownian",
       "BooSTjl",
       "BeliefUpdaters",
       "BAT",
       "ChaosCommunications",
       "ChaosTools",
       "ClassImbalance",
       "Clustering",
       "CoDa",
       "ColorVectorSpace",
       "CombineML",
       "CoupledFields",
       "CovarianceMatrices",
       "Crispulator",
       "CrossDecomposition",
       "CumulantsUpdates",
       "CumulantsFeatures",
       "CancerSeqSim",
       "Coulter",
       "CrossMappings",
       "ChemometricsTools",
       "DSGE",
       "Dagger",
       "DataArrays",
       "DataFrames",
       "DataTables",
       "DatagenCopulaBased",
       "DependentBootstrap",
       "DirectGaussianSimulation",
       "Discreet",
       "Discretizers",
       "Distributions",
       "DynamicalSystems",
       "DynamicalSystemsBase",
       "DIVAnd",
       "DPMeansClustering",
       "DelayEmbeddings",
       "DynamicHMCModels",
       "ECharts",
       "EcologicalNetwork",
       "EventHistory",
       "ExprOptimization",
       "ExprRules",
       "EcologicalNetworks",
       "FixedEffectModels",
       "Flux",
       "ForecastEval",
       "FinEtools",
       "FlashWeave",
       "FixedEffects",
       "GLM",
       "GLMNet",
       "Gadfly",
       "GaussianMixtureTest",
       "GaussianMixtures",
       "GeoStats",
       "GeoStatsBase",
       "GeoStatsDevTools",
       "Gillespie",
       "Gnuplot",
       "Graph500",
       "GraphCentrality",
       "GraphGLRM",
       "GraphicalModelLearning",
       "GroupedErrors",
       "HypothesisTests",
       "HurdleDMR",
       "ImageQuilting",
       "ImageView",
       "Images",
       "IncrementalInference",
       "IndexedTables",
       "InteractiveFixedEffectModels",
       "InverseDistanceWeighting",
       "InvariantCausal",
       "InteractiveChaos",
       "JointMoments",
       "JuliaDB",
       "KernelDensity",
       "KernelEstimator",
       "Klara",
       "Kpax3",
       "Lasso",
       "LatinHypercubeSampling",
       "LearnBase",
       "LightGraphs",
       "LocallyWeightedRegression",
       "Lora",
       "LossFunctions",
       "LowRankModels",
       "LsqFit",
       "LyapunovExponents",
       "MCMCDiagnostics",
       "MIToS",
       "MLBase",
       "MLDataPattern",
       "MLDataUtils",
       "MLLabelUtils",
       "MachineLearning",
       "Mads",
       "Mamba",
       "MarketTechnicals",
       "Microbiome",
       "Microeconometrics",
       "Mimi",
       "MixedModels",
       "MultipleTesting",
       "MultivariateStats",
       "MotifSequenceGenerator",
       "MusicManipulations",
       "MCMCChain",
       "MRIReco",
       "MonteCarloObservable",
       "MambaModels",
       "MCMCChains",
       "MLJBase",
       "MonteCarloMeasurements",
       "NHST",
       "NLreg",
       "NMF",
       "NaiveBayes",
       "NetalignMeasures",
       "NetalignUtils",
       "NullableArrays",
       "NextGenSeqUtils",
       "OnlineStats",
       "OnlineStatsBase",
       "Optim",
       "Orchestra",
       "PDSampler",
       "PGFPlots",
       "PGFPlotsX",
       "POMDPModels",
       "POMDPToolbox",
       "ParticleFilters",
       "PhyloNetworks",
       "Plots",
       "PowerLaws",
       "POMDPPolicies",
       "Pathogen",
       "PorousMaterials",
       "PhaseSpaceIO",
       "PiecewiseDeterministicMarkovProcesses",
       "QuantEcon",
       "QuantumInformation",
       "RLEVectors",
       "RandomQuantum",
       "RecurrenceAnalysis",
       "RegERMs",
       "RegressionTables",
       "Reinforce",
       "Rifraf",
       "Robotlib",
       "RobustLeastSquares",
       "RobustStats",
       "RollingFunctions",
       "ReinforcementLearning",
       "ReinforcementLearningEnvironmentDiscrete",
       "RadiationSpectra",
       "RandomBooleanMatrices",
       "SALSA",
       "SOM",
       "ScHoLP",
       "ScikitLearn",
       "Shannon",
       "SmoothingSplines",
       "SortingLab",
       "SparseRegression",
       "SpatialEcology",
       "Spectra",
       "StackedNets",
       "Stan",
       "StatPlots",
       "Stats",
       "StatsBase",
       "StatsModels",
       "StreamStats",
       "SymmetricTensors",
       "SumProductNetworks",
       "SortMerge",
       "StatisticalRethinking",
       "StatsKit",
       "StatsMakie",
       "StatsPlots",
       "StanModels",
       "SpectralGaussianSimulation",
       "StratiGraphics",
       "TensorDecompositions",
       "TimeModels",
       "TimeSeries",
       "TimeseriesPrediction",
       "ToeplitzMatrices",
       "TexTables",
       "TimeseriesSurrogates",
       "TransferEntropy",
       "TuringModels",
       "TSML",
       "UnicodePlots",
       "UncertainData",
       "Variography",
       "Vega",
       "Wallace",
       "Watershed",
       "Whippet",
       "Winston",
       "WeightedArrays",
       "WeightedOnlineStats",
       "Yao",
       "YaoArrayRegister"])
 Resolving package versions...
ERROR: AssertionError: p0 ≠ p1
Stacktrace:
 [1] Pkg.GraphType.Graph(::Dict{Base.UUID,Set{VersionNumber}}, ::Dict{Base.UUID,Dict{Pkg.Types.VersionRange,Dict{String,Base.UUID}}}, ::Dict{Base.UUID,Dict{Pkg.Types.VersionRange,Dict{String,Pkg.Types.VersionSpec}}}, ::Dict{Base.UUID,String}, ::Dict{Base.UUID,Pkg.Types.VersionSpec}, ::Dict{Base.UUID,Pkg.Types.Fixed}, ::Bool) at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/GraphType.jl:315
 [2] deps_graph(::Pkg.Types.Context, ::Dict{Base.UUID,String}, ::Dict{Base.UUID,Pkg.Types.VersionSpec}, ::Dict{Base.UUID,Pkg.Types.Fixed}) at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/Operations.jl:431
 [3] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/Operations.jl:316
 [4] #add#96(::Bool, ::typeof(Pkg.Operations.add), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Array{Base.UUID,1}) at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/Operations.jl:962
 [5] #add at ./none:0 [inlined]
 [6] #add#25(::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(Pkg.API.add), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:99
 [7] add at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:69 [inlined]
 [8] #add#24 at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:67 [inlined]
 [9] add at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:67 [inlined]
 [10] #add#21 at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:65 [inlined]
 [11] add(::Array{String,1}) at /home/milan/Dev/julia/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:65
 [12] top-level scope at REPL[2]:1
fredrikekre commented 5 years ago

https://github.com/JuliaLang/Pkg.jl/pull/1154

I think it happens because one of those packages have 0 compatibility constraints, which was not allowed before.

dehann commented 5 years ago

[FYI] Hi, since last week I have been having trouble with:

"IncrementalInference",

specifically version v0.5.5. See here:

Not sure if I am the only one though, and need a little help to get it resolved if any one has ideas please!

dehann commented 5 years ago

This also happens when trying to install the older and 'working' v0.5.4 of IncrementalInference:

$ julia -O3
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.3 (2018-12-18)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(v1.0) pkg> activate .

(diif) pkg> add IncrementalInference@0.5.4
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
ERROR: AssertionError: p0 ≠ p1
Stacktrace:
 [1] Pkg.GraphType.Graph(::Dict{Base.UUID,Set{VersionNumber}}, ::Dict{Base.UUID,Dict{Pkg.Types.VersionRange,Dict{String,Base.UUID}}}, ::Dict{Base.UUID,Dict{Pkg.Types.VersionRange,Dict{String,Pkg.Types.VersionSpec}}}, ::Dict{Base.UUID,String}, ::Dict{Base.UUID,Pkg.Types.VersionSpec}, ::Dict{Base.UUID,Pkg.Types.Fixed}, ::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/GraphType.jl:315
...

Looks like Pkg is definitely not happy about something in the General registry -- likely IncrementalInference v0.5.5 with its lack of [compat] definitions in the Project.toml. v0.5.6 did introduce that but didn't fix the assertion error. Not sure if there is something I can do to fix?

KristofferC commented 5 years ago

Perhaps you can try revert the 0.5.5 PR and see if that fixes things?

fredrikekre commented 5 years ago

@carlobaldassi does this happen because a package version have 0 compatibility constraints?