liveBook · Manning

Manifest.toml

As explained in Julia as a Second Language

Manifest.toml is a Julia environment file that records the resolved packages and dependency information needed for reproducible package loading.

Manifest.toml is Julia’s environment file for recording the resolved package set behind an environment. Project.toml names the environment’s direct dependencies; Manifest.toml records the dependency information needed to load those packages and their transitive dependencies consistently. section 16.2.1 section 16.6

A manifest can contain:

  • Package UUIDs, which identify packages even when names collide. section 16.2.1
  • Dependency lists showing relationships such as Dates depending on Printf and Printf depending on Unicode. section 16.2.1
  • Versions and git-tree-sha1 values for packages that are not part of Julia’s standard library. section 16.2.1

Adding dependencies creates the manifest

After activating the ToyGeometry environment, `add Dates Base64` updates Project.toml and creates or updates Manifest.toml. The manifest then includes Base64 and Dates, followed by their dependencies Printf and Unicode. A generated manifest also records `julia_version = "1.7.2"` and `manifest_format = "2.0"`. section 16.2.1

shell> cat ToyGeometry/Manifest.toml
julia_version = "1.7.2"
manifest_format = "2.0"

[[deps.Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[deps.Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[deps.Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[deps.Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

Inspect a complete ToyGeometry Manifest.toml listing Julia metadata, package UUIDs, and transitive dependency entries. section 16.2.1

[[deps.Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
git-tree-sha1 = "417b0ed7b8b838aa6ca0a87aadf1bb9eb111ce40"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
version = "0.12.8"

Inspect a package entry with dependencies, UUID, version, and git-tree-sha1 metadata. section 16.2.1

How Julia as a Second Language covers it

How deep it goes
Details dependency relationships, UUIDs, versions, and package-location hashes, while deferring the meaning of git-tree-sha1.
Examples
Demonstrates ToyGeometry with Dates, Base64, Printf, Unicode, and Colors manifest entries.
What it assumes
Assumes familiarity with Julia packages and environments while distinguishing direct dependencies from indirect dependencies.
What you can do after
Operate/configure Julia environments by activating them and using package commands that update their manifests.
How it connects
Links Project.toml, package environments, standard libraries, UUIDs, and transitive dependencies.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Julia as a Second Language. The section links point to the parts of the book it draws on.