↓ Ir para o conteúdo principal

← todas as notas

📎 Webclip

The Fundamental Law Of Software Dependencies

The article states that canonical source code should include checksums for all dependencies. That includes the source tree itself, third-party libraries, transitive dependencies, and the compiler. It also says a compiler manifest can hold platform-specific hashes, with downstream consumers verifying the manifest hash and then the binary hash for their platform.

Reading notes
#

  • The source tree itself should be hashed, which implies a content-addressed VCS such as git.
  • Third-party libraries need a lockfile that covers the full dependency set and includes checksums.
  • The lockfile is part of source code and is mixed into the VCS root hash.
  • The compiler hash should be included in the lockfile, not just its version.
  • Specifying both version and hash lets users trust the checksum instead of the distributor.
  • Compiler distribution can use a manifest listing platform-specific hashes, with consumers verifying the manifest hash first.
  • The law is an instrumental goal rather than an end in itself.
  • Reaching known hashes requires identifying dependencies, automating downloads, making builds reproducible, and isolating dependencies per project.
  • These are the changes the article says actually make software development easier.