Documentation

Lake.Load.Manifest

Lake Manifest #

The data structure of a Lake manifest and the definitions needed to create, modify, serialize, and deserialize it.

@[inline]

The current version of the manifest format.

Three-part semantic versions were introduced in v1.0.0. Major version increments indicate breaking changes (e.g., new required fields and semantic changes to existing fields). Minor version increments (after 0.x) indicate backwards-compatible extensions (e.g., adding optional fields, removing fields).

Lake supports reading manifests with versions that have - suffixes. When checking for version compatibility, Lake expects a manifest with version x.y.z-foo to have all the features of the official manifest version x.y.z. That is, Lake ignores the - suffix.

VERSION HISTORY

v0.x.0 (versioned by a natural number)

  • 1: First version
  • 2: Adds optional inputRev package entry field
  • 3: Changes entry to inductive (with path/git)
  • 4: Adds required packagesDir manifest field
  • 5: Adds optional inherited package entry field (and removed opts)
  • 6: Adds optional package root name manifest field
  • 7: type refactor, custom to/fromJson

v1.x.x (versioned by a string)

  • "1.0.0": Switches to a semantic versioning scheme
  • "1.1.0": Add optional scope package entry field
Equations
Instances For

    Manifest version 0.6.0 package entry. For backwards compatibility.

    Instances For

      The package source for an entry in the manifest. Describes exactly how Lake should materialize the package.

      Instances For

        An entry for a package stored in the manifest.

        Instances For
          Equations
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[inline]
              Equations
              • entry.setInherited = { name := entry.name, scope := entry.scope, inherited := true, configFile := entry.configFile, manifestFile? := entry.manifestFile?, src := entry.src }
              Instances For
                @[inline]
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[inline]
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[inline]
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        structure Lake.Manifest :

                        Manifest data structure that is serialized to the file.

                        Instances For

                          Add a package entry to the end of a manifest.

                          Equations
                          • Lake.Manifest.addPackage entry self = { name := self.name, lakeDir := self.lakeDir, packagesDir? := self.packagesDir?, packages := self.packages.push entry }
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    Parse a Manifest from a string.

                                    Equations
                                    Instances For

                                      Parse a manifest file.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        Parse a manifest file. Returns none if the file does not exist. Errors if the manifest is ill-formatted or the read files for other reasons.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          Serialize the manifest to a JSON file.

                                          Equations
                                          • self.save manifestFile = IO.FS.writeFile manifestFile (self.toJson.pretty.push '\n')
                                          Instances For
                                            @[reducible, inline, deprecated Lake.Manifest.save (since := "2024-12-17")]
                                            Equations
                                            Instances For

                                              Deserialize package entries from a (partial) JSON manifest.

                                              Equations
                                              Instances For

                                                Deserialize manifest package entries from a JSON string.

                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For

                                                  Deserialize manifest package entries from a JSON file.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For

                                                    Deserialize manifest package entries from a JSON file. Returns an empty array if the file does not exist.

                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For

                                                      Serialize manifest package entries to a JSON file.

                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For