Building Packages takes forever - unusual behavior

#1

I don’t know if this is a problem with my system or this is a normal behavior.
My system is Windows 10 running on i7-8086K processor. Adding a package such as Cairo takes upwards of 5 mins. Is that normal?

Also, one a package (and its dependencies) are added, the build process starts. If there is a build error, I try to add the same package again and this time it is successful. WHAT!? It just failed earlier but now shouldn’t it try to build it again if I “add” it again?

For example,


(v1.1) pkg> add Queryverse
 Resolving package versions...
 Installed WinRPM ─────────── v0.4.2
 Installed Queryverse ─────── v0.3.1
 Installed HTTPClient ─────── v0.2.1
 Installed NodeJS ─────────── v0.6.0
 Installed ExcelFiles ─────── v0.9.1
 Installed QueryOperators ─── v0.8.0
 Installed Arrow ──────────── v0.2.3
 Installed Thrift ─────────── v0.6.0
 Installed QueryTables ────── v0.0.1
 Installed StatFiles ──────── v0.8.0
 Installed LibCURL ────────── v0.5.0
 Installed FilePaths ──────── v0.7.0
 Installed MemPool ────────── v0.2.0
 Installed Libz ───────────── v1.0.0
 Installed TableTraitsUtils ─ v0.4.0
 Installed DoubleFloats ───── v0.7.18
 Installed BufferedStreams ── v1.0.0
 Installed PooledArrays ───── v0.5.1
 Installed TableShowUtils ─── v0.2.5
 Installed Parquet ────────── v0.2.0
 Installed LibExpat ───────── v0.5.0
 Installed FlatBuffers ────── v0.5.3
 Installed StringEncodings ── v0.3.1
 Installed Electron ───────── v0.4.0
 Installed ParquetFiles ───── v0.2.0
 Installed TextParse ──────── v0.9.0
 Installed ReadStat ───────── v0.4.1
 Installed Nullables ──────── v0.0.8
 Installed Snappy ─────────── v0.3.0
 Installed ExcelReaders ───── v0.11.0
 Installed Cairo ──────────── v0.5.6
 Installed Rsvg ───────────── v0.2.3
 Installed Polynomials ────── v0.5.2
 Installed FeatherFiles ───── v0.8.1
 Installed DataValues ─────── v0.4.7
 Installed IterableTables ─── v0.11.0
 Installed DataVoyager ────── v0.3.1
 Installed CSVFiles ───────── v0.15.0
 Installed Query ──────────── v0.11.0
 Installed XLSX ───────────── v0.4.7
 Installed FilePathsBase ──── v0.4.0
 Installed VegaLite ───────── v0.6.0
 Installed FeatherLib ─────── v0.1.3
  Updating `C:\Users\Tungsten\.julia\environments\v1.1\Project.toml`
  [612083be] + Queryverse v0.3.1
  Updating `C:\Users\Tungsten\.julia\environments\v1.1\Manifest.toml`
  [69666777] + Arrow v0.2.3
  [e1450e63] + BufferedStreams v1.0.0
  [5d742f6a] + CSVFiles v0.15.0
  [159f3aea] + Cairo v0.5.6
  [e7dc6d0d] + DataValues v0.4.7
  [5721bf48] + DataVoyager v0.3.1
  [497a8b3b] + DoubleFloats v0.7.18
  [a1bb12fb] + Electron v0.4.0
  [89b67f3b] + ExcelFiles v0.9.1
  [c04bee98] + ExcelReaders v0.11.0
  [b675d258] + FeatherFiles v0.8.1
  [409f5150] + FeatherLib v0.1.3
  [8fc22ac5] + FilePaths v0.7.0
  [48062228] + FilePathsBase v0.4.0
  [53afe959] + FlatBuffers v0.5.3
  [0862f596] + HTTPClient v0.2.1
  [1c8ee90f] + IterableTables v0.11.0
  [b27032c2] + LibCURL v0.5.0
  [522f3ed2] + LibExpat v0.5.0
  [2ec943e9] + Libz v1.0.0
  [f9f48841] + MemPool v0.2.0
  [2bd173c7] + NodeJS v0.6.0
  [4d1e1d77] + Nullables v0.0.8
  [626c502c] + Parquet v0.2.0
  [46a55296] + ParquetFiles v0.2.0
  [f27b6e38] + Polynomials v0.5.2
  [2dfb63ee] + PooledArrays v0.5.1
  [1a8c2f83] + Query v0.11.0
  [2aef5ad7] + QueryOperators v0.8.0
  [30ad73d7] + QueryTables v0.0.1
  [612083be] + Queryverse v0.3.1
  [d71aba96] + ReadStat v0.4.1
  [c4c386cf] + Rsvg v0.2.3
  [59d4ed8c] + Snappy v0.3.0
  [1463e38c] + StatFiles v0.8.0
  [69024149] + StringEncodings v0.3.1
  [5e66a065] + TableShowUtils v0.2.5
  [382cd787] + TableTraitsUtils v0.4.0
  [e0df1984] + TextParse v0.9.0
  [8d9c9c80] + Thrift v0.6.0
  [112f6efa] + VegaLite v0.6.0
  [c17dfb99] + WinRPM v0.4.2
  [fdbf4ff8] + XLSX v0.4.7
  Building LibCURL ────────→ `C:\Users\Tungsten\.julia\packages\LibCURL\khRkY\deps\build.log`
  Building WinRPM ─────────→ `C:\Users\Tungsten\.julia\packages\WinRPM\Y9QdZ\deps\build.log`
  Building Thrift ─────────→ `C:\Users\Tungsten\.julia\packages\Thrift\hqiAN\deps\build.log`
  Building NodeJS ─────────→ `C:\Users\Tungsten\.julia\packages\NodeJS\rx0mH\deps\build.log`
  Building Electron ───────→ `C:\Users\Tungsten\.julia\packages\Electron\AHiDq\deps\build.log`
  Building StringEncodings → `C:\Users\Tungsten\.julia\packages\StringEncodings\ICuGB\deps\build.log`
  Building ReadStat ───────→ `C:\Users\Tungsten\.julia\packages\ReadStat\JnXAZ\deps\build.log`
  Building Snappy ─────────→ `C:\Users\Tungsten\.julia\packages\Snappy\O2CHr\deps\build.log`
  Building Cairo ──────────→ `C:\Users\Tungsten\.julia\packages\Cairo\CXPG1\deps\build.log`
  Building Rsvg ───────────→ `C:\Users\Tungsten\.julia\packages\Rsvg\uwc9D\deps\build.log`
  Building VegaLite ───────→ `C:\Users\Tungsten\.julia\packages\VegaLite\5UYyY\deps\build.log`
┌ Error: Error building `VegaLite`:
│ npm ERR! code EACCES
│ npm ERR! errno EACCES

So, now I try to add it again:

(v1.1) pkg> add Queryverse
 Resolving package versions...
  Updating `C:\Users\Tungsten\.julia\environments\v1.1\Project.toml`
 [no changes]
  Updating `C:\Users\Tungsten\.julia\environments\v1.1\Manifest.toml`
 [no changes]

Now I am suspicious… why didn’t Julia’s package manager try to build this thing again and error again!? This has happened a few times.

I realized may be that I need to build again, so I execute

(v1.1) pkg> build Queryverse
  Building Electron ───────→ `C:\Users\Tungsten\.julia\packages\Electron\AHiDq\deps\build.log`
  Building LibCURL ────────→ `C:\Users\Tungsten\.julia\packages\LibCURL\khRkY\deps\build.log`
  Building WinRPM ─────────→ `C:\Users\Tungsten\.julia\packages\WinRPM\Y9QdZ\deps\build.log`
  Building Homebrew ───────→ `C:\Users\Tungsten\.julia\packages\Homebrew\s09IX\deps\build.log`
  Building Cairo ──────────→ `C:\Users\Tungsten\.julia\packages\Cairo\CXPG1\deps\build.log`
  Building Rsvg ───────────→ `C:\Users\Tungsten\.julia\packages\Rsvg\uwc9D\deps\build.log`
  Building NodeJS ─────────→ `C:\Users\Tungsten\.julia\packages\NodeJS\rx0mH\deps\build.log`
  Building VegaLite ───────→ `C:\Users\Tungsten\.julia\packages\VegaLite\5UYyY\deps\build.log`
  Building MbedTLS ────────→ `C:\Users\Tungsten\.julia\packages\MbedTLS\X4xar\deps\build.log`
  Building CodecZlib ──────→ `C:\Users\Tungsten\.julia\packages\CodecZlib\9jDi1\deps\build.log`
  Building Thrift ─────────→ `C:\Users\Tungsten\.julia\packages\Thrift\hqiAN\deps\build.log`
  Building Snappy ─────────→ `C:\Users\Tungsten\.julia\packages\Snappy\O2CHr\deps\build.log`
  Building StringEncodings → `C:\Users\Tungsten\.julia\packages\StringEncodings\ICuGB\deps\build.log`
  Building ReadStat ───────→ `C:\Users\Tungsten\.julia\packages\ReadStat\JnXAZ\deps\build.log`
  Building Conda ──────────→ `C:\Users\Tungsten\.julia\packages\Conda\CpuvI\deps\build.log`
  Building PyCall ─────────→ `C:\Users\Tungsten\.julia\packages\PyCall\a5Jd3\deps\build.log`
  Building EzXML ──────────→ `C:\Users\Tungsten\.julia\packages\EzXML\r19gO\deps\build.log`
  Building ZipFile ────────→ `C:\Users\Tungsten\.julia\packages\ZipFile\YHTbb\deps\build.log`

Now everything is successful. I am so utterly confused.