#What to call module repos?

1 messages ยท Page 1 of 1 (latest)

wraith sky
#

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

glass rock
#

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?

wraith sky
#

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

glass rock
#

Going with dagger-gitutil for now! yolo

wraith sky
#

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

ivory parrot
wraith sky
#

by imported directly into dagger, you'll refer to it by a git ref when you use the module

obsidian valley
#

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)

wraith sky
#

Trademark was the biggest โ“ for me

#

I don't assume that the other cases used as examples have the right answer here

wraith sky
#

@glass rock is it supported to import a module from git right now, or is that still in the works

glass rock
wraith sky
#

Tried with dagger mod extend "git://github.com/kpenfound/dagger-modules?ref=main&subpath=golang", maybe I missed something

glass rock
#

that hangs for me with git clone too thinkspin

wraith sky
glass rock
#

could try adding &protocol=https

wraith sky
#

It kind of looks like what vikram was running into with the node_modules thing?

glass rock
#

what's in your dagger.json?

obsidian valley
#

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 ?

wraith sky
#

the one in the workdir is

{
  "root": "../",
  "name": "greetings",
  "sdk": "go"
}
obsidian valley
#
  • "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 ๐Ÿ™‚

obsidian valley
#

catchy too

#

it plays on the imlpicit concept of multiverse

wraith sky
#

That's kind of what I was thinking with the dagger-modules repo. Happy to rename if we're cool with trademark/etc

obsidian valley
#

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?

wraith sky
#

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

obsidian valley
#

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

wraith sky
#

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 ๐ŸŒ 

obsidian valley
#

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?

wraith sky
#

ah i see

obsidian valley
#

What to call module repos?

wraith sky
obsidian valley
#

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

wraith sky
#

so, if it's just part of the daggerverse, is it a daggermension?

obsidian valley
#

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 ?

obsidian valley
obsidian valley
wraith sky
#

multiverse 1:* dimensions ๐Ÿคทโ€โ™‚๏ธ

obsidian valley
#

oooooh

wraith sky
#

not catchy at all

obsidian valley
#

I was going for "bible verse" references

glass rock
#

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)

obsidian valley
#

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

glass rock
#

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