spkenv / spk

A Package Manager for high velocity software environments, built on spfs.
https://spkenv.dev
Apache License 2.0
40 stars 6 forks source link

[RFC] Separated Manifests | Addition of Tree Object #1066

Open rydrman opened 4 months ago

rydrman commented 4 months ago

Background and Problem Space

In some cases, we are seeing manifests reach into the hundreds of megabytes in size. Additionally, there is duplicated data between manifests of spk packages when minor changes happen in one or two sub directories in a large package with thousands of files.

Proposal

SPFS already has an object kind that holds trees. These represent a single directory and are combined together in a manifest to create a full filesystem hierarchy.

Instead of always storing the reference to this complete manifest in layers, we would allow the reference of the root tree object. This means that trees could/would be stored individually as objects in the repo, and that the manifest would/could be loaded incrementally as all trees are accessed.

Other Considerations