#Daggerverse structure

1 messages · Page 1 of 1 (latest)

burnt wyvern
#

Hey all!

I'm wondering if there are best practices around the structure of daggerverse repos.

Looking around, the current convention seems to have a flat structure with every Dagger module in a directory like this:

daggerverse
├── mod1
│   └── dagger.json
├── mod2
│   └── dagger.json
├── mod3
│   └── dagger.json
├── prjA
│   └── dagger.json
└── prjB
    └── dagger.json

However, it seems like two kinds of modules are arising on our end:

  1. Low-level building-block modules that create a library of reusable components (mod* in this example)
  2. High-level workflow modules that implement our business logic to build/test/publish etc.

As our list of modules grows, we are thinking about categorizing them into subfolders. For example:

daggerverse
├── lib
│   ├── mod1
│   │   └── dagger.json
│   ├── mod2
│   │   └── dagger.json
│   └── mod3
│       └── dagger.json
├── prjA
│   └── dagger.json
└── prjB
    └── dagger.json

or

daggerverse
├── lib
│   ├── mod1
│   │   └── dagger.json
│   ├── mod2
│   │   └── dagger.json
│   └── mod3
│       └── dagger.json
└── project
    ├── prjA
    │   └── dagger.json
    └── prjB
        └── dagger.json

As anyone found better success with a particular structure?
Are we potentially digging a hole for ourselves by adding some layers?

timid mesa
#

I think we're still figuring this out..

#

Also note that there's no actual requirement to have everything in one repository. For example in my case (personal collection of modules) I've alternated between one daggerverse repo (github.com/shykes/daggerverse) and individual repo-per-module (eg. github.com/shykes/core, github.com/shykes/hello).

Just to add even more options to your list 🙂

burnt wyvern
#

So many options 🫨
I guess we can't really go wrong and should always be able to move modules after the fact if our new structure is not suitable anymore 😃

timid mesa
burnt wyvern
timid mesa