#What to call module repos?
1 messages ยท Page 1 of 1 (latest)
Yeah I was wondering the same thing, specifically if we care about dagger- being part of the name. That's how it works for terraform modules and brew taps, so it seems like a reasonable convention
Yeah, I remember there being strong conventions in TF. For Concourse we went with -resource and sometimess -concourse-resource. But in Concourse we never referred to them by the full repo URL so the long names were a cheap way to SEO. Do you ever use the full name in TF?
You'd use the full name in TF if you're referencing by Git, but if you're going through the registry it uses the naming pattern to rename the module
similar for brew taps https://docs.brew.sh/Taps
repo would be <org>/homebrew-<tap> which is then referenced by <org>/tap/<tap>
Going with dagger-gitutil for now! 
I was going to go with dagger-modules for a monorepo of modules. Thoughts on that?
unless it's technically better to have 1:1 repo:module
Does this mean that I should put my Scan module in github.com/vikram-dagger/dagger-scan and it can then be imported directly into Dagger?
Yes that's where it should go
by imported directly into dagger, you'll refer to it by a git ref when you use the module
I'm flagging this question as strategically important, it has tons of downstream implications, including our trademark enforcement
(I don't have a good answer though)
Trademark was the biggest โ for me
I don't assume that the other cases used as examples have the right answer here
@glass rock is it supported to import a module from git right now, or is that still in the works
should work, you need to do git://... i think
Tried with dagger mod extend "git://github.com/kpenfound/dagger-modules?ref=main&subpath=golang", maybe I missed something
that hangs for me with git clone too 
could try adding &protocol=https
It kind of looks like what vikram was running into with the node_modules thing?
what's in your dagger.json?
What if we pushed a convention where instead of pushing one module per repo, you created on repo which is your slice of the daggerverse? github.com/<org>/daggerverse ?
the one in the workdir is
{
"root": "../",
"name": "greetings",
"sdk": "go"
}
- "Oh that module looks cool, where can I find it?"
- "It's in my daggerverse repo, here's the URL"
It would just be a convention, you could still do whatever the hell you want. But a well-designed convention, communicated early and often, and consistently enforced, carries a lot of weight, and can be the difference between order and chaos ๐
catchy too
it plays on the imlpicit concept of multiverse
That's kind of what I was thinking with the dagger-modules repo. Happy to rename if we're cool with trademark/etc
I think dagger-modules is a perfect placeholder while we discuss the final plan
what's your gut reaction to the idea of renaming it to kpenfound/daggerverse?
sounds great, especially if that's going to be synonymous with the general ecosystem
like if people just expect to look for my daggerverse repo on my github to find my modules
We would just need to make sure it doesn't overload the term: Daggerverse would mean "all the Dagger modules everywhere" and "one particular collection of Dagger modules somewhere", depending on the context.
It's just so catchy and obvious of a word
This idea of a "daggerverse repo" convention brings other ideas actually
For example we're going to have a "publish to daggerverse" action implemented by @glass rock - since we don't have Google superpowers to magically scrape the entire internet every second
I know we're leaning on the multiverse thing but my mind keeps thinking of the universe, and my repo would be a galaxy or system ๐
I'm picturing my shell history full of dagger publish <foo>, dagger publish <bar>. Maybe the best practice is to just always publish dagger publish <path/to/my/daggerverse/repo> ?
And the assumption is, all of my stuff is either in that repo, or referenced from that repo?
From there that makes me think: maybe a redirect option in dagger.json? So you can have a placeholder module in your daggerverse repo, that just redirects to some subdirectory of some repo, where the actual module code is stored?
ah i see
kind of like https://github.com/Homebrew/homebrew-core/tree/master/Formula but for dagger.jsons
What to call module repos?
Yeah, starting from @glass rock 's initial question: "what do we call a repo full of modules?" I'm trying to imagine all the implications of using those module "catalog" repos, and wondering how mandatory we should make them
so, if it's just part of the daggerverse, is it a daggermension?
If we take it to the extreme, we could have Daggerverse only accept a "daggerverse repo" as input for publishing. It wouldn't support one-off publishing of modules at all, you would have to either move it to a daggerverse repo, or redirect to it from one.
But that's just thinking out loud.
Wdyt @glass rock ?
I can tell I'm missing a joke ๐
Yeah this would be basically like a "tap" in homebrew
multiverse 1:* dimensions ๐คทโโ๏ธ
oooooh
not catchy at all
I was going for "bible verse" references
following along but not really forming opinions, too busy facerolling CSS. ๐ I like the idea of encouraging it if not just as a way to make sure we're supporting monorepos properly. That includes independently versioning modules in a monorepo imo
sneak peek
it's kind of hilarious, it's just a big heavy GET request right now that synchronously fetches and introspects the module
should be super easy to switch it to polling later (or whatever else we want)
This makes me think of the "mother of all API references" idea, where we wanted to get the Stripe-like API reference with all languages supported smoothly in the same page. Never quite got there. But eventually Daggerverse could become that - just tailor-made for each module. Which would be even more mindblowing
yeah, right now the "Schema" is just a lowest common denominator representation but it'd be somewhat straightforward to swap that out for language-specific tabs or something