#Preparing Paris Meetup

1 messages Β· Page 1 of 1 (latest)

slim turtle
#

Quoting @bronze glacier :

Add to shykes:zenith-functions branch:
Alex's services-v2-zenith branch on the dagger fork
Eric's zenith-functions-shell branch on the dagger fork
Jeremy's shykes-dagger-zenith-builder repo (stretch goal?)

#

cc @sand mason @quaint yarrow @half tendon @polar pendant @eternal onyx

#

@sand mason @tardy belfry I pushed the fix that broke the hourly build

#

@sand mason could you confirm that it works on your end? (I'm not sure how but will look into the hourly build repo how to run the exact same query)

#

Note: we should probably pin the version of my module used by this release workflow, to avoid the same problem happening again πŸ™‚

#

@sand mason I just got admin access from Jeremy (you should have it too), I'm re-running the flow

bronze glacier
#

@sand mason now has access to Fly.io, where daggerverse is running: https://fly.io/apps/daggerverse/monitoring. He will need this to add the module instructions.

To deploy a daggerverse update, AFAIK it’s just a matter of running fly deploy in the dir where this file is: https://github.com/dagger/dagger.io/blob/daggerverse/daggerverse/fly.toml

I don’t think that this will be needed, but to deploy a daggerverse-engine update, AFAIK it’s just a matter of running fly deploy in the dir where this file is: https://github.com/dagger/dagger.io/blob/daggerverse/daggerverse/engine/fly.toml

cc @tawny venture

#

Quick question for @slim turtle: I am assuming that you will be demoing from macOS running Docker Desktop locally. Asking so that I can use the same baseline as you for double-checking that dagger serve works as intended.

slim turtle
#

Yes correct

#

But can't hurt to test on other clients if possible, since others will be using that build too

#

I'm going for a quick lunch, ping me if you need anything

#

@sand mason maybe not realistic for today, but just in case: it would be cool if the documentation page for writing a zenith module, were a regular page in our open-source docs, and the daggerverse deployment pipeline somehow cherry-picked it and added it to the daggerverse app. Of course even cooler if this were done via dagger πŸ™‚ Just a thought

#

(I was picturing daggernauts reporting caveats, and volunteering to contribute them to the mod development FAQ, only to realize it's not possible)

#

@quaint yarrow I think if your netlify / nextjs / vercel modules work, it would be cool to show them at the meetup. It would be great to have a simple and realistic "deploy a webapp" demo

#

more complex than "hello world", less complex than "ship the entire dagger engine with the dagger engine"

#

@bronze glacier one cool detail of the "release zenith with zenith" work: the address of the remote worker container is fully parametrized πŸ™‚ So you can release a custom CLI build, which will download its worker container from a custom remote registry

#

Makes it much easier to make test/staging/demo builds that are self-contained

bronze glacier
timber lake
#

@slim turtle I was thinking about completing the node/go/python module so people can have an example of modules with some useful pattern (for instance embedding a container into a structure to simplify its capabilities)
WDYT?

I can also help to review @sand mason guide

bronze glacier
slim turtle
timber lake
#

I'm open to any suggestions to make the code looks better btw

#

I'll also add gql queries directly in this module instead of at the root of the repository

#

@sand mason Something cool to include in your guide is how to import and use an external module / extend it (I could not find the proper pattern to extend it nicely)

slim turtle
#

Hopefully once the CLI features drop, gql queries will be unnecessary

timber lake
sand mason
#

I'm gonna start working on the guide asap - I'll start with the existing README, and add from there.
If anyone wants to pitch in, I'll be working on it on hackmd: https://hackmd.io/@jedevc/rJVmBw-ba/edit

slim turtle
#

OK now I'm really getting a quick lunch πŸ™‚ When I'm back I'll join dev-audio or something, if anyone feels like a "war room" atmosphere πŸ™‚

quaint yarrow
slim turtle
#

FYI @bronze glacier , @timber lake is going to try his hand at the daggerverse codebase. The goal is to fix a small ergonomic issue we all experienced during the hackathon. And it's a great excuse to try applying the fast and furious model πŸ™‚

timber lake
#

@bronze glacier No worry I'll also take care of OS work today! It's a small task I have to do

past fossil
past fossil
eternal onyx
#

Hi, I'm around πŸ‘‹

slim turtle
#

I would definitely add this to a list of tip & tricks

#

others that come to mind:

  • Private fields will not be persisted
  • Public fields require a json:”foo” tag to be queriable
sand mason
#

(quickly gonna grab lunch myself, then will get back to it)

slim turtle
#
  • the context and error return are optional
past fossil
#

does dagger mod use work with local paths as well?

quaint yarrow
#
{
  "name": "flyio",
  "sdk": "go",
  "sdkRuntime": "vito/dagger-sdk-go:no-vcs-flag@sha256:0fcc9d2659cdd551acb7aaf25e77215e9687475eb89ec06cae989eaf332ee480",
  "dependencies": [
    "/Users/slumbering/forks/daggerverse/nextjs-build"
  ]
}

This doesn't work for me ☝️

past fossil
#

In the hackathon, the workaround was to move the dependent modules into a directory of the parent one, then use the relative path

sand mason
sand mason
slim turtle
#

Without that tag, the field names come straight from the standard Go json encoder logic. This results in a Go field Foo becoming a JSON field Foo. This doesn't match the expectations of <insert some other zenith component here> causing things to fail

sand mason
#

right I think I discussed with with Erik now πŸ˜„ Yeah, this works for now, ideally we find something that feels a bit more natural (though not before tomorrow 😒)

#

thanks ❀️

past fossil
sand mason
past fossil
sand mason
past fossil
#

I like "known issues" and I'd also add an internal anchor to it in the troubleshooting section so that it's immediately visible to users who are trying to debug problems

polar pendant
past fossil
slim turtle
#

"How to publish your module" -> yes definitely

sand mason
slim turtle
#

note that @timber lake is trying to make a change to the daggerverse ui itself, and if anyone is looking for their next task there is another change on the queue that would be a great stretch goal for tomorrow. Specifically moving the text field + β€œcrawl” button at the top of the page, which everyone confuses with a search field, to a separate β€œpublish a module” page, with a link to that page from the main page

#

(Tom is working on replacing the list of updates with a list of modules)

timber lake
slim turtle
#

@past fossil @sand mason did you figure out where you want to host the new module doc? Do you think we can change the daggerverse app today to link to the new doc?

sand mason
slim turtle
past fossil
# slim turtle <@1013436980249505882> <@488718750690967563> did you figure out where you want t...

I was thinking we could follow Gerhard's suggestion in #1160882513384837120 message

  • a static page on docs.dagger.io
  • possible URL docs.dagger.io/labs/project-zenith
  • visible notes on page: this is experimental, this page is ephemeral
  • not linked in sidebar
  • sets up a pattern for future experiments as well ie. /labs/xx
    alt: we could also link it from the sidebar as a node called "Labs (experimental)", we have precedent already (Elixir SDK docs) but this makes it indexable
    WDYT?
slim turtle
tawny venture
#

if it helps, you could use the same Markdown => HTML bit that exists for module READMEs and apply it to the Zenith README content (which could just be copy-pasta'd or go:embed'd), and just give it its own page + link

past fossil
#

I can move the current README @sand mason is working on (already in markdown) to a docs PR quickly and then we can work on it there?

tawny venture
#

(also it's Canada Thanksgiving today, just hanging around if there are any blockers :P)

polar pendant
#

Sorry @sand mason for mistyping your username πŸ™

So, I just edited the PR's context https://github.com/shykes/dagger/pull/125 to include how to play / test with the dagger shell example. Works fine on my side

quaint yarrow
#

Usage:

#

error:

#

Probably easy to fix, but I couldn't figure it out ... thinkspin

sand mason
#

agh this is a weird bug i think - if your code won't build, then the generation fails.
i've worked around this by commenting out the guilty looking bits, and then re-running generation, then commenting it in again

quaint yarrow
eternal onyx
#

I'm going to push a basic CLI to the branch.

slim turtle
quaint yarrow
eternal onyx
#

Pushed. There's only dagger call list and dagger call [function] (top level, without args and that returns a string) but putting it out there so others can hack on it if you want.

slim turtle
#

What happens if I call my function list? πŸ˜›

eternal onyx
slim turtle
#

I assumed πŸ™‚ Just wanted to be annoying

#

I am very excited to try this

quaint yarrow
#

@sand mason I've been able to sync my module thanks to the registry πŸ₯³

#

next step is to deploy on Fly.io πŸš€

slim turtle
#

@polar pendant I'm sorry I didn't see your PR on my fork! Please go ahead and merge at your discretion, you should have permissions since it's a fork. Just make sure it doesn't break everything πŸ™‚

#

In fact you don't need a PR at all, you can just push to the branch (again, be careful to not break, and communitcate with the other devs on the branch)

polar pendant
slim turtle
#

Oh.. mmm

#

You should have permissions to push to the branch though

slim turtle
#

maybe not to merge a PR on my fork

#

OK to close that PR then?

polar pendant
#

Probably. yep, you can close, I'll sync with Justin directly

slim turtle
#

OK

sand mason
#

lgtm to merge - @polar pendant could you also add the note of how to use it to the docs pr that @past fossil opened?

#

sorry, i'm deep in "what's going on with schema merging hell" so i can try and have the hugo module ready for tomorrow

slim turtle
slim turtle
#

@eternal onyx good news! First successful call of dagger call list πŸ™‚

#

Some bad news however: it never returns, I have to control-C to get my shell back

eternal onyx
slim turtle
#
 % dagger -m ./helloWorld call  list
βœ” list functions [0.22s]
                        ┃ function name  description                                                                                              
                        ┃ with-greeting  Change the greeting                                                                                      
                        ┃ with-name      Change the name                                                                                          
                        ┃ message        Say hello to the world!                                                                                  
                        ┃ shout          SHOUT HELLO TO THE WORLD!                                                                                
                        β€’ Cloud URL: https://dagger.cloud/runs/99cf68bd-d982-4fb1-a795-9e7ee9ab0176
                                                                                                   β€’ Engine: 7f38078129e2 (version devel ())
                  β§— 0.61s βœ” 26 βˆ… 13
                                   %           
eternal onyx
#

Or maybe it's the environment, not the module.

slim turtle
#

I ran it against my loca copy of helloWorld, but it is an unmodified version of the one that is published

eternal onyx
#

That's the one I tested the cli on

slim turtle
#

Same issue when running against a remote version

#

nevermind, it returned. Maybe it's actually a slowness problem rather than a hang problem

#
% time dagger -m github.com/shykes/daggerverse/helloWorld call  list
βœ” list functions [0.34s]
                        ┃ function name  description                                                                                              
                        ┃ with-greeting  Change the greeting                                                                                      
                        ┃ with-name      Change the name                                                                                          
                        ┃ message        Say hello to the world!                                                                                  
                        ┃ shout          SHOUT HELLO TO THE WORLD!                                                                                
                        β€’ Cloud URL: https://dagger.cloud/runs/3b45ff16-2697-47f4-8830-73d51990f0c0
                                                                                                   β€’ Engine: 7f38078129e2 (version devel ())
                  β§— 4.63s βœ” 45 βˆ… 14
                                   dagger -m github.com/shykes/daggerverse/helloWorld call list  0.62s user 0.46s system 7% cpu 13.639 total
                  %                             
#

Correct, it always returns. Slower with local version for some reason

#
 % time dagger -m ./helloWorld call  list                         
βœ” list functions [0.31s]
                        ┃ function name  description                                                                                              
                        ┃ with-greeting  Change the greeting                                                                                      
                        ┃ with-name      Change the name                                                                                          
                        ┃ message        Say hello to the world!                                                                                  
                        ┃ shout          SHOUT HELLO TO THE WORLD!                                                                                
                        β€’ Cloud URL: https://dagger.cloud/runs/4f76cc5b-f909-478e-8424-12c239733b26
                                                                                                   β€’ Engine: 7f38078129e2 (version devel ())
                  β§— 1.48s βœ” 26 βˆ… 13
                                   dagger -m ./helloWorld call list  0.46s user 0.34s system 7% cpu 10.240 total
                                                                                                              
eternal onyx
#

Ok

#

Working on adding arguments.

slim turtle
#

Actually it's super weird, because the actual time it took is not 1.48s.. My terminal was stuck for a good 10 seconds

#

But time doesn't tell me that? Super weird. nevermind it's at the end: 10.240 total

#
% /usr/bin/time -h dagger -m github.com/shykes/daggerverse/helloWorld call  list
βœ” list functions [0.29s]
                        ┃ function name  description                                                                                              
                        ┃ with-greeting  Change the greeting                                                                                      
                        ┃ with-name      Change the name                                                                                          
                        ┃ message        Say hello to the world!                                                                                  
                        ┃ shout          SHOUT HELLO TO THE WORLD!                                                                                
                        β€’ Cloud URL: https://dagger.cloud/runs/e371984f-3dff-4b39-b079-83aa2dca55a4
                                                                                                   β€’ Engine: 7f38078129e2 (version devel ())
                  β§— 4.01s βœ” 45 βˆ… 14
                                        8.26s real              0.43s user              0.42s sys
                                                                     
polar pendant
#

@eternal onyx, can I push on the branch ?

eternal onyx
#

Yes

polar pendant
# eternal onyx Yes

Done, rebased dagger shell. Now still rebasing the services v2 (as a follow-up) πŸ™

sand mason
#

ok random question - has anyone noticed that when playing with a lot of modules it feels possible to get dagger into an inconsistent state? i ask because, i can sometimes resolve weird module resolution issues just by restarting dagger.
maybe i'm just imagining things πŸ€”

sand mason
grim tide
#

take into account that once a module is registered, the only way to de-register it is by restarting the engine since there's no API for that yet.

slim turtle
#

@grim tide what I would love to see is somehow integrating this into each module page in daggerverse ui

slim turtle
#

find a module, navigate to its page, boom I can start a playground right there without leaving the page

#

Also I would love if the playground only showed my module’s API, instead of drowning it in the 100 fields and types of the core dagger API

#

(two very different requests I realize)

#

just writing my letter to santa πŸ˜›

sand mason
#

@slim turtle can you take a look to see if the docs lgty? if so i should be good to merge and roll out the link change to daggerverse

#

(otherwise, i can take a look first thing early tomorrow morning)

slim turtle
#

I think it’s fine to merge assuming it doesn’t break or change the standard docs experience? ie it’s hidden yes?

#

assuming yes: let’s merge and we can iterate tomorrow (or even tonight if I or someone else finds something to improve)

slim turtle
timber lake
sand mason
#

is there anything that i need to do to update the docs? the labs page seems to have displayed correctly in the netlify deploy preview, but it's not showing on docs.dagger.io as expected
hm never mind, i've found the deployment in netlify, it's just not got that page for some reason 😒

past fossil
#

Can you check if you see it there?

sand mason
#

aha it is there πŸ™‚

#

i just found the instructions about this, i don't have access to netlify

past fossil
#

I can do it. Should I do so now?

sand mason
#

πŸ‘ please!

past fossil
sand mason
#

(i've deployed the update to point daggerverse to it now - cc @timber lake @tawny venture)

past fossil
quaint yarrow
bronze glacier
timber lake
#

I mean, there are still duplicates, that should not be possible

sand mason
#

So duplicates will still be there I think

slim turtle
#

Thank you all for your help today !

grim tide
#

πŸ‘‹ did anyone deploy daggerverse.fly.dev?

#

seems like some commits got removed and the playground stopped working

#

cc @bronze glacier

sand mason
#

Oh no 😯 that would have been me 😭

#

I think I screwed it up, it should just be able to deploy it again from the top of the daggerverse branch

grim tide
sand mason
timber lake
sand mason
plain oasis
timber lake
sand mason
#

afaik, no - i did it with fly deploy in daggerverse directory.

timber lake
#

Ok, new version deployed

tawny venture
# grim tide

pretty awesome, seems to be trying to hit my localhost:8080 though, not sure if that's intentional

slim turtle
#

@grim tide @plain oasis playground link is obviously very cool BUT we need a way to embed each individual playground inside its corresponding module page inside the daggerverse UI. Linking out to a separate playground app, with its own catalog of modules, is too much complexity for the user

plain oasis
fair roost
#

Good luck today everyone! Can't wait to see pictures πŸ™‚

plain oasis
tawny venture
#

ah ok, yeah I meant Playground, didn't know that was by design, makes sense! maybe a call-to-action to start a local dagger listen --allow-cors first?

#

unless I missed that somewhere

plain oasis
#

Hmm, makes sense to me, yeah

grim tide
plain oasis
livid sluice
#

Are we okay to push to zenith-functions right now? Or should I wait until after the meetup? Won't push anything until I hear back on this either way.

Asking because I just finished cleaning up a few egregious hacks in the dagger shell implementation, towards the effort of merging that PR ASAP

slim turtle
#

There is no large-scale hackathon, mostly talking and showing demos

slim turtle
tardy belfry
plain oasis
tardy belfry
#

Excited that JC Sirot (the Java SDK author) might push a Zenith module! 🀞

slim turtle
#

By far the most urgent requirement for zenith demos is great CLI support for calling functions

#

(live feedback from meetup)

#

as I cringe watching amazing modules look unfairly complicated because of obscure raw graphql hacks

#

I think we should make this a collective sprint actually

plain oasis
#

pushed a few ux improvements to the zenith playground
thanks @tawny venture for the feedback!
@tardy belfry if you follow the steps in the dialog to spin up a local engine, it should work properly

slim turtle
#

A huge thank you to everyone who helped prepare!