microsoft / CCF

Confidential Consortium Framework
https://microsoft.github.io/CCF/
Apache License 2.0
756 stars 204 forks source link

Clarify dependencies between framework source components #3517

Open eddyashton opened 2 years ago

eddyashton commented 2 years ago

The build-time dependency graph between components in CCF has grown messier over time. We originally had README.mds in some src/ folders indicating their intended dependencies, but these have rotted over time.

We should re-evaluate what dependencies we have and can enforce, to keep the code base navigable.

A few high-level goals to start with:

eddyashton commented 2 years ago

The repo currently contains 3 READMEs which claim the following dependencies:

ds/README.md
# Data Structures

This directory contains data structures and utilities used by the rest of the code. No files
in this directory should include files from any other directory.

kv/README.md
# Transactional Key Value Store

This directory implements a transactional key value store. The only directory
it should depend on is `ds`.

crypto/README.md
# Crypto

This directory implements several cryptography helper types. The only directory
it should depend on is `ds`.

None of these dependencies are currently enforced. The actual dependencies between the folders under src/ look like this: image

Dotted lines show mutual/circular dependencies. Initial thoughts: