#introspection Keep user-defined order f...
1 messages ยท Page 1 of 1 (latest)
If I'm interpreting this correctly the most recent PR merge in that repo was Jun 14th? https://github.com/graphql-go/graphql/pulls?q=is%3Apr+is%3Aclosed+sort%3Aupdated-desc
So I think hearing back would even be somewhat surprising
๐
Especially, if we hear back, chances are it's a fat no
The problem is rooted in the API: you have to declare args as maps in the API
this is a mega breaking change -- I also had to patch github.com/bhoriuchi/graphql-go-tools because it breaks every dependency that's using graphql-go
So either:
- fork
- other solution (return SDL from the API: https://github.com/dagger/dagger/issues/3554#issuecomment-1295684765)
Given the seeming lack of maintenance, fork may be something we have to do anyways, so that's my first impression vote
Yeah. It's a fat patch though, just because it changes something deep down in the API, all tests had to be updated, annoying to maintain
Also requires maintaining a fork of graphql-go-tools
But yeah. Easy peasy
Yeah but the current pace of commits seems to be once every 3 months or so: https://github.com/graphql-go/graphql/commits/master
_sdl works too, just annoying re-work of codegen, but probably half day or so of work
(I figured since "hide IDs" is going to break the whole API, we might as well do both breaking changes before releasing again)
Yeah I mean I'm totally fine with either obviously, I just wouldn't be surprised if we end up needing to fork again anyways in the future
On the bright side -- the ordering thingie is fixed with this:
func (r *Container) WithMountedCache(path string, cache *CacheVolume, opts ...ContainerWithMountedCacheOpts) *Container {
func (r *Container) WithMountedDirectory(path string, source *Directory) *Container {
@@ -354,10 +351,10 @@ type ContainerWithMountedCacheOpts struct {
}
// This container plus a cache volume mounted at the given path
-func (r *Container) WithMountedCache(cache *CacheVolume, path string, opts ...ContainerWithMountedCacheOpts) *Container {
+func (r *Container) WithMountedCache(path string, cache *CacheVolume, opts ...ContainerWithMountedCacheOpts) *Container {
I think it's the better approach -- instead of trying to sort ourselves with heuristics
Oh also -- I ONLY did args. Fields are still random. everything else is still random.
Doesn't affect codegen since we don't really care about that. But it does affect graphiql etc
Guessing that will involve more divergence from graphql-go
But yeah no biggie now
unrelated: if you are looking to spice up your friday night: https://github.com/dagger/dagger/pull/3119
jk, but please take a look on monday when you have time ๐
brb, making a batch of popcorns and firing up the projector
in all seriousness, i'm mentally done for the day
The changes over the last few days are starting to look awesome together. Happy to see multiplatform coming together without having to destroy the API ๐
No worries at all, I spent the last several hours trying to figure out how I was triggering a new nil pointer panic in buildkit. It turned out to be that I missed a random field, so yeah I'm in the same boat.
Just glad to see the end is near and I/we can move onto all the other fun stuff
It is cool to see it all working in the new codegen client I agree
All those great changes (multi platform, the new host directory API, ...) make me realize that there's a slim chance an SDK would work with a random engine binary (thinking about API over stdio binary)
I think for python/node we have to distribute the two in lockstep, somehow. At least until the API is stable
Ah yeah, I remember looking up how to include arbitrary binaries with npm packages a while back. It seemed possible but there were lots of people complaining about hitting weird size limits (at least several years ago). So probalby something to investigate sooner than later
Especially how to distribute multiple platform binaries
Yeah. I was thinking that (bundle with package) OR, a bit disgusting but: distribute as an OCI image, have SDKs pull/cp to local machine (or fetch a binary on S3 or whatever)
not unheard of, I believe terraform providers work that way (stashes provider binaries in ~/.terraform or something)
but, unheard of for an SDK I think
arguably what we do today when we shell out to docker run to start buildkitd is not really that different conceptually. Pulling an image and running it. But yeah we can probably just download the tarball layer directly and unpack it, no need for an external thing (like dockerd) to be involved in that part
(i didn't RTFA, I just am surprised at how much the title seems to match what we want)
I've used graphql-go before and the UI docs always moved around. Is this why? ๐