#✨ v0.12.5 - 15th August 2024
1 messages · Page 1 of 1 (latest)
Last release we did was last week, skipping this week, so we should probably do one next week!
There's some cool stuff to land:
- Fix for long-time globbing issue: https://github.com/dagger/dagger/pull/8110
- File digest feature: https://github.com/dagger/dagger/pull/8114
- Php/elixir SDK aliases: https://github.com/dagger/dagger/pull/8067
- Other misc fixes, etc.
I think aiming for v0.12.5 on Tuesday is good, but we could also stretch it to Wednesday/Thursday if we like:
- @rocky pecan how is context dir work coming along?
- @round basin is https://github.com/dagger/dagger/pull/8115 likely to land for that? Or would more time be useful?
cc <@&946480760016207902>
@timber gyro ^ hopefully this should get everyone? or is this missing some folks (I can't see who's actually in this role)
Would love to get:
dagger corecc @round basin- context dir cc @rocky pecan
I've added dagger core to the milestone - I think it's good-as-is, but maybe we want to mark it as experimental? no strong opinions anymore on any of it, i just want it in 😄
dagger core will be merged today. As for the enums in constructor I asked Tom to work on it. I’ll leave on PTO for 2 weeks after today.
I did that yesterday just didn’t push apparently 🙂
We can just hide it for now, easy and low risk
oh nice! i clearly need to watch the pto calendar more, time for a well-earned break 😄
I’m ooo atm, so on my phone, will be back in about 1h or so.
added https://github.com/dagger/dagger/pull/7996 to the milestone 
Since it was a quick change, I leave you guys with a PR to give a little bit more time to decide on the DX for core functions:
Another great release brewing 🚀
👋 would also like to get https://github.com/dagger/dagger/pull/8095. Thx @weak laurel for today's feedback. Addressing them now
Neela and I aren't on that role, but I just added us to make it easier for you.
@sudden tiger @mint panther Should I start passing around blog post doc for everyone to fill out? I assume we should blog about the context directories, but anything else?
dagger core is worth mentioning as another tool in the dev toolbox. And mention something about stability fixes (the otel refacto is a big deal for engine hangs)
for 0.13 you mean @timber gyro ?
I was thinking about this release, but you are right: We only do blog posts for minor updates vs. patches. I forgot.
I think it's a great idea to start writing the draft now though.
Created an issue/draft doc here, and tagged a few people - https://linear.app/dagger/issue/GTM-2055/13-release-blog-post
then anytime we feel like there's enough to talk about, boom we promote to 0.13 and publish the blog post
I like this 🙂
atm, the biggest release blocker looks like it's the discussion about dagger call -c vs dagger core: https://github.com/dagger/dagger/pull/8135
we need to decide what we want before we can do the release
@rocky pecan how's context dir coming?
That's already settled for 0.12.5, the discussion is for future stabilization
Helder made it experimental so that it wouldn't hold up the release
ahh, so it shouldn't be in the milestone then?
Not for 0.12.5
tentatively put it in for 0.12.6
I'm making this one ready to be merge, then I continue on context dir
@mint panther Interesting comment by this dude: https://github.com/dagger/dagger/pull/7864#issuecomment-2283607492
Seems like init and when to use define your module is still not clear
x-linked into https://github.com/dagger/dagger/issues/8123 🙏
i think we should centralize the conversation around that in that issue, the package manager pr is unrelated to that general problem
it's good feedback though
good reminder of why I opened that issue in the first place. And of the urgency of fixing it
@weak laurel @rocky pecan I'm trying to understand that comment. He says "I followed the quickstart on my repo, and got lots of issues". But the quickstart says to run dagger init --source=./dagger. If he followed that, then his issue is NOT the same as 8123, ie: his repo was not littered. If that's true, then what issues did he encounter, and why is he upset?
I don't think it's the littering so it's not exactly the same as 8123 - it's that the project structure is unclear, which I think doing the solution proposed in 8123 helps solve
But he mentions errors that led him to the TS pull request. Do we know what these errors are?
His problem seems to be bigger than confusion
"Everything works fine but I'm confused about the role of this dagger/ directory" seems like a weak reason to churn
@rocky pecan I need help understanding the context of "drmikecrow"'s error
are you around today?
he just edited the comment significantly btw, sounds like his misread your message
Here's the core of what I need to understand:
Here's what I'm starting to believe:
It's almost impossible to install dagger within a folder with an existing package.json. It appears it must be 1 level above
If you try to install dagger in your folder (as I did), the SDK yarn install will update the yarn.lock, which breaks our CI later since we use yarn install --immutable)
Also, our top-level package.json has packageManager: "4.1.1" field, which causes the SDK install to fail before it even tries to execute
So it looks like even with --source=./dagger, things still break if you mix a TS module into a TS app?
Is this a variation of "don't reuse parent go.mod" in the Go SDK? eg. we don't create a new package.json by default, but should? Or is it worse than that?
If it's the latter, it calls into question to validity of what I propose in 8123
Yes I am!
I think it's related to the same thing, @next bear told me that the package.json is also mixed, but I know that in the runtime, I check if there's a package.json at the root dir (dagger.json location), if so, I install dagger deps on it.
So to make sure I understand: if I run dagger init --sdk=typescript --source=./dagger, and ./package.json already exists, then the Typescript SDK will:
A. Create ./dagger/package.json
B. NOT create ./dagger/package.json
(edit: sorry I meant package.json)
I need to verify, but normally it shouldn't create the package.json
OK, if it did create the package.json, would that solve the problem? In the case of Go, creating a nested go.mod is the fix
to be clear I'm talking about this: https://github.com/dagger/dagger/issues/7527
and trying to understand if the Typescript issue is a variation of the same problem ("don't reuse parent package.json" instead of "don't reuse parent go.mod"). You see what I mean?
There shouldn't be any issue, even with a parent package.json, that's the thing :/
But you said:
I think it's related to the same thing
But now you're saying it's NOT a variation of the same thing correct?
What I'm saying is that, it's related to merging the parent or not, but in the case of TS, merging or not shouldn't affect the result
Oh wait, actually it should create an issue, because npm install ./sdk will set the deps to a local path, but if it's the parent package.json, the path will be wrong and this will fails
Like
.dagger
package.json -> ./sdk
sdk/
package.json -> ./sdk -> does not exist, it's .dagger/sdk so the path fails
So yes, that's my bad, it's totally related, however, I'm gonna verify what happens with a root package.json, give me 5 minutes
Ok, funny things, I did a test:
$ mkdir test-pkg && cd test-pkg
$ git init
$ touch package.json
dagger init --sdk=typescript --name=test --source.dagger
$ ls .dagger
package.json sdk src tsconfig.json
$ cat package.json
{
"name": "project"
}
$ cat .dagger/package.json
{
"dependencies": {
"typescript": "^5.3.2",
"@dagger.io/dagger": "./sdk"
}
}
So even with a package.json at the context dir (parent level), there's no merge happening, so I would say it's a different issue in that case
👋 i'd like to see if we can delay v0.12.5 to wednesday - there's some work that redoes the otel pipeline https://github.com/dagger/dagger/pull/7996 by @wispy bear (and i'd kinda like the chance to dogfood it a bit)
dunno, maybe i'm just being overly worried from past otel draining issues 🙂
@marsh wyvern i can definitely help review the mod ref one tomorrow 🎉 (just about to head off for the day now)
just gimme a ping on it 🙂
🙏 Rebasing on top of your docker fix, and shall be ready for review. Will do 🙏
Sounds good to me - I'm pretty confident in it, since it fundamentally gets rid of the hanging code paths/logic, but makes sense to let it bake a bit. I think it's either wait a day and do a single release, or ship without it and again on Thursday, since I'd really like to get this fix out for our own CI (the 10s cutoff workaround might be the root cause of unfinished traces in Cloud)
What are your thoughts @weak laurel @sage roost @wispy bear on getting this change in v0.12.5 ? https://github.com/dagger/dagger/pull/8147
yup, no reason it shouldn't be 🎉
unrelated - that's possibly the least readable ci error i've seen in a while (cc @wispy bear) https://github.com/dagger/dagger/actions/runs/10372483826/job/28715331501?pr=8147
oh, it's not bass, that error looks fine my bad, somehow python then wraps it in a little box and messed up the line on the right side of the box
insane
it's probably including the escape codes in the width calculation for padding
@weak laurel fyi: merged the OTel PR 🎉
🎉
@rocky pecan I recall seeing this "merge" behavior in the past for the typescript SDK. We even spoke about it briefly but I'm not sure if that changed recently somehow as it's not happening anymore as you're showing 😕
@rocky pecan I was able to reproduce what the user was experiencing in v0.12.4
npm init -y
corepack use pnpm@9.6.0
dagger init --sdk typescript --source dagger
dagger call container-echo --string-arg foo
^ this fails with:
Error: input: module.withSource.initialize resolve: failed to initialize module: failed to call module "l
olo" to get functions: call constructor: process "yarn install" did not complete successfully: exit code:
1
Stderr:
error This project's package.json defines "packageManager": "yarn@pnpm@9.6.0". However the current global
version of Yarn is 1.22.22.
this is my current directory layout:
.
├── dagger
│ ├── package.json
│ ├── sdk
│ ├── src
│ ├── tsconfig.json
│ └── yarn.lock
├── dagger.json
├── LICENSE
├── package.json
└── pnpm-lock.yaml
4 directories, 7 files
why is this failing? it doesn't seem right that the runtime container is trying to use pnpm when the module's package.json doesn't have a packageManager defined. Why is dagger call picking up the parent's package.json packageManager config?
I've tested with the latest version in main and the issue is still not resolved, something even more strange is happening. After doing dagger init , the root application package.jsongets overwritten with this value: "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
If we're aiming for release today still, any help on reviews for things in the release milestone would be hugely appreciated 🙏 https://github.com/dagger/dagger/milestone/56
This sounds a bit like a regression to me? The top level shouldn't get overridden
You should try with the latest main version, it now check and understand package manager 😄
Ohhh okay so that’s super weird, I didn’t read the full message my bad
What’s the value of package manager right after core pack use?
I’ll try to fix this today though, that’s quite strange
It's pnpm
As it gets set by the corepack use
That's strange that it's the parent package.json that is affected :
Normally the context dir is not even required to load the module, I only need the source dir
So I might have missdo something there
Correct. That's why what happens in the current v0.12.4 is also weird
I have the impression that this whole packageManager thing was mostly a confusion
As you can see from my first example, v0.12.4 shouldn't fail as it shouldn't have to use the parent package.json at all
since this looks like a regression for the typescript sdk, i think we should avoid releasing until we can fix it / revert the change
I don't think it's a a regression, the issue has always been there but is more pronounced with the package manager feature, hope I fix this today
This will give me time to address the CI failures in https://github.com/dagger/dagger/pull/8095 @weak laurel
Fixes #7527
Signed-off-by: Marcos Lilljedahl marcosnils@gmail.com
Will get to those as soon the nanny arrives 👶
Should fix the issue: https://github.com/dagger/dagger/pull/8153
@weak laurel Could I get a review on that one please?
@rocky pecan, the reason for that is explained in https://github.com/dagger/dagger/pull/7864#discussion_r1712142479
Should have addressed that feedback before merge.
looking now - but can we please get a test for this 🙏
there are many tests for how go module initialization works btw, in the future, it would be valuable to "copy" them, and check that typescript (and python tbf) follow the same style and conventions
Just remove the patterns in RequiredPaths.
It's already removed
I only copy sdk/typescript/package.json so that's confusing, I think it's more related to context dir
Okay I'll write a test
hallo 👋 i noticed some weird 30 mins timeouts that seemed to appear after that got merged
i also got a bit thrown by the github actions logs output no longer having any call logs 😦 (but ah well, i'll cope)
hmmm actually i see an instance of something like this in https://github.com/dagger/dagger/actions/runs/10356222226/job/28665608191 (which ran on 62e369bc8ba0a29061eeb474fee01055f2babe44, before the otel merge)
the UI doesn't work anyway for testdev and test, no? those are the only jobs that enable that behavior, because otherwise they keep triggering GHA's secret scanning hang. for me, the log archives are faster UX than the previous view raw logs -> copy URL -> type curl flow
yeah, agreed, i guess i'd just kind of like to make the ui work, but it's not wrong to just disable it (and github log viewer just appears to be pain)
https://dagger.cloud/dagger/traces/03b9d7e773d03d5323334f5d3da2177b?span=e58e25d15bb53e8e&logs
this is so weird, where are the logs 😕
my guess is it's the 10 second otel draining timeout workaround cutting them off
not sure why there's so much lag, but it's a lot of telemetry volume
hm the Container.Sync seems to have finished according to the call logs
but yes, this makes sense
https://dagger.cloud/dagger/traces/03b9d7e773d03d5323334f5d3da2177b?span=35610e5c887dc49e <- this seems a little sus, I saw the same hang in my PR and chalked it up to something on main (and this build predates my PR like you said)
cool ❤️ yup, will dive into why typescript is trying to hang 😦
thanks for your help as always 🙂
i can take a look too, if you'd prefer i do that over PR reviews. i'm decently well trained on investigating hangs now 😛
i don't think this is otel draining at all, but maybe i'll see something familiar
yes please ❤️ all the help is appreciated 😄
release ain't happening today anyways 😄
fyi @rocky pecan on the above ^
here are 3 runs that demonstrate the hang:
and another on main, curiously misattributed to my PR's merge commit (cc @charred gorge)
- https://dagger.cloud/dagger/traces/5629f35bfe59bc3f4489dc9ca190e3e4?span=0b8319c0a87c416c
the actual commit for that one is https://github.com/dagger/dagger/commit/3c52de5cd5daf202f57d4879f914dac3d2bc3ccf - not sure how Cloud got confused
Test added
@weak laurel thoughts on the hang so far:
- the tests don't seem to have an obvious issue, BUT they do share a lot of common code between them and run in parallel, and they all use the same client, so likely opportunities for edge merging if that's relevant at all
- there's no consistency as to which test that hangs - sometimes it's one, sometimes it's another, sometimes it's multiple
- the engine doesn't seem to crash or anything (managed to open some logs and saw it just doing the engine-metrics logs at the end)
- it seems like we've only seen this for
test(and quite often) but never fortestdev
I noticed these failures from a different perspective. Is there anything that I can help with to debug this further?
any info helps! 🙏
I didn't dig into why this is happening, I just noticed the pattern. It started happening after https://github.com/dagger/dagger/pull/8144 was merged, even though the change is completely unrelated.
I was offering to pair-up and start digging. Combining the two perspectives might be worth 1h or so.
another observation:
- all hangs show that it's hanging in a call to
Directory.exportviadagger develop. (one hang is missing all telemetry for some reason but I'm assuming the same.)
they all look like this - unterminated export directory / to host /work
yes, observed the same.
looking at the host metrics in case there is anything interesting there
sounds good! i'll hop in team
(once i find my headphones)
@weak laurel not sure what's happening with the PHP lint pipeline here: https://github.com/dagger/dagger/pull/8095. Code is rebased and the pipeline doesn't fail locally
hm, can you re-run php generate?
130|marcos:Projects/dagger (marcos/dev-4188-dont-reuse-parent-gomod-by-default) (⎈ |eks-prod)$ dagger -m
dev call --source .:default sdk php generate export --path .
Setup tracing at https://dagger.cloud/traces/setup. To hide: export GOAWAY=1
✔ connect 1.4s
✔ initialize 6.6s
✔ prepare 0.7s
✔ daggerDev(
source: ✔ ModuleSource.resolveDirectoryFromCaller(path: ".", viewName: "default"): Directory! 0.0s
): DaggerDev! 0.2s
✔ DaggerDev.sdk: DaggerDevSdk! 0.2s
✔ DaggerDevSdk.php: DaggerDevPhpsdk! 0.0s
✔ DaggerDevPhpsdk.generate: Directory! 8.5s
✔ Directory.export(path: "."): String! 0.3s
/home/marcos/Projects/dagger
marcos:Projects/dagger (marcos/dev-4188-dont-reuse-parent-gomod-by-default) (⎈ |eks-prod)$ gs
On branch marcos/dev-4188-dont-reuse-parent-gomod-by-default
Your branch is up to date with 'origin/marcos/dev-4188-dont-reuse-parent-gomod-by-default'.
nothing to commit, working tree clean
🤷♂️
ah okay, taking a deeper look
in any case, if the reason is not going out today I can take a look later
no rush
I can take a look, don't worry
😢 if this is edge-merging, that would be sad. getting a stack dump of an engine that's having this happen would be quite useful then, do you think?
yep - working on that now in the call (currently in AWS auth quagmire). I don't necessarily think this is edge merging as the root cause, but seems possibly related
so glad that we have at least one case of this happening before merging OTEL
but weird that there's no obvious cause 😢
current status: got kubectl exec working with the help of @past hazel and @prime axle 🙏 - I was able to repro the hang in https://github.com/dagger/dagger/pull/8155 (https://dagger.cloud/dagger/traces/77bf93496dd3881a545bcfee1b24a5c6) but sending SIGQUIT to the engine just sent the logs to /dev/null, so trying again with the Go debug endpoints enabled
also, for shits and giggles, went back and re-ran the test all for the PR that adds the test, to make sure it flakes there too: https://github.com/dagger/dagger/actions/runs/10355672281/job/28778628476
got a stack dump, it is indeed locked up in the export path (second screenshot, corresponding to hangs in third screenshot), and there are some other funky looking things (first screenshot)
that massive amount of mutexes looks a little 
will upload the full dump somewhere, it's 20MB lol
likely related goroutines stuck on chan send for 5 mins
here's where the other side of that chan send is stuck
Huh
also, line 214 in that last screenshot holds the same mutex that the very first screenshot are all blocking on
Could we finally have hit https://github.com/dagger/dagger/issues/6355
This seems to be the same issue as upstream in buildkit: moby/buildkit#2950 (cc @sipsma) We've seen from a customer, as well as reported on discord: https://discord.com/channels/707636530424053...
It's been around forever, we've just never seen it
possibly
i wonder if node_modules exists in this export and is what's triggering it?
since that's a whole universe of files
might explain why this test is uniquely running into it when we already have so many others that do dagger develop (including other TS tests)
also, the fact that this is happening 4x in parallel, all trying to go through the same client
short-term fix might be to just change the test to make a new client for each subtest, which might be a good idea anyway
or, yeah, fix the real issue somehow 😛
looking deeper at this, it does seem like a match
Ohhhh yeah, maybe we now export more files? That could do it
trying this now
Yeah would love to go do this actually, it feels like a me-kinda bug that I've never had the excuse to dive into
well we have an easy repro at least! my PR hit it 2/2 times after switching it back to running all tests. (curiously, it doesn't repro when running only that test)
run succeeded, will give it another go to be sure. @weak laurel I can put up a PR for this fix to the tests to get the release unblocked, since this doesn't seem like a regression, just an accidental repro of a known issue 😛 - and then if you want to dig into the underlying issue, you could do it with a PR that reverts that change
Souuuunds good
Thanks thanks! 🙏🙏 Huge kudos for all of this
@rocky pecan [async] might also be worth taking a look to confirm that test is doing what you'd expect - just in case it's unintentionally picking up node_modules or some other unwieldy directory that doesn't actually need to be synced back
test passed again, gonna just turn my repro PR into a real PR
it indeed timed out: https://github.com/dagger/dagger/actions/runs/10355672281/job/28778628476 - cc @prime axle
updated https://github.com/dagger/dagger/pull/8155 with more details + added to milestone
node_modules should never be exported, it's ignored in the SDK runtime
I'm still working so ping me if you need anything or wanna sync, I didn't catch up on the full convo yet
no worries, the tl;dr is that test is somehow triggering a known Buildkit hang with that's more likely to happen when many tiny files are exported. so, that got me wondering if node_modules or something is being included by one of these tests
Not as far as I know, I've been very cautious about node_modules exports, because it makes the SDK super slow.
If you find a way to export node_modules locally from the SDK to the host let me know.
However, I know that it's possible to do the opposite if no views is set (or contextual arg when it will be merge)
I'm still on it by the way, tracking down the path resolution...
It's a holiday day tomorrow but I can dedicate all my time on friday because there's nothing left on my list for the week
😢
we merged it, and then it immediately continues to happen, on "should use pnpm if pnpm-lock.yaml is present" again 🤔
ah
i did a quick test
./.pnpm-store is exported by dagger develop
it's 124MB
@rocky pecan can we avoid exporting it? i feel like this is pnpm equivalent of node_modules
Oh yes it should be ignored too
You can add it in the TS runtime Codegen func, I can approve it when it's done
awesome, testing it now ❤️
Lmk when I can review
✨ v0.12.5 - 15th August 2024
let's try and go for today
i'm gonna try sort out the go.mod thing in https://github.com/dagger/dagger/pull/8095
but then, i think we're good to go
@rocky pecan are you around today to help with pr approvals for the release process? should hopefully just be the release notes
I can help with PR approval, it's a day off but I'm still on my computer haha
Approved
right, starting to prep the release - everything in the milestone is now merged
Thank you 🙏
here's thje prep pr: https://github.com/dagger/dagger/pull/8163
^ anyone around to approve? can merge and tag then 🎉
engine + cli + sdks + chart + docs all done
@next bear @past hazel @prime axle @marsh wyvern
daggerverse and playground should be good to go
@next bear @past hazel @marsh wyvern we should review Daggerverse via https://github.com/dagger/dagger.io/pull/3911
dagger-for-github in https://github.com/dagger/dagger-for-github/pull/142
@prime axle anything i can do to help unblock here? looks like a user has noticed in #maintainers message
While we could bump it, we don't know if v0.12.5 is going to break something for existing users. I think that we should hold off until we know that the new version is working as expected. I know that Matias is off today - he knows how to test Daggerverse (there is no integration yet). In his absence, who knows how we could test https://dgvs-add-option-to-preview-with-dagger-main.preview.daggerverse.dev/ ? cc @next bear @marsh wyvern @wispy bear
I can run a quick test locally in my machien and bump it
checking now
there's currently no official way to test backwards compatibility check
ok, ran a quick teste and we're good. PR incoming
https://github.com/dagger/dagger.io/pull/3914 @weak laurel @prime axle 🙏 👀
looking now
LGTM 🚀
👋 taking a look
interesting, the metadata available in CH for that trace (5629f35bfe59bc3f4489dc9ca190e3e4) is
{
"dagger.io/git.branch": "\"main\"",
"dagger.io/vcs.workflow.name": "\"Engine \\u0026 CLI\"",
"dagger.io/vcs.job.name": "\"test\"",
"dagger.io/client.version": "\"v0.12.4\"",
"dagger.io/vcs.repo.full_name": "\"dagger/dagger\"",
"dagger.io/vcs.triggerer.login": "\"vito\"",
"service.name": "\"dagger-cli\"",
"dagger.io/git.author.name": "\"Alex Suraci\"",
"dagger.io/git.remote": "\"github.com/dagger/dagger\"",
"dagger.io/git.committer.email": "\"noreply@github.com\"",
"service.version": "\"v0.12.4\"",
"dagger.io/client.machine_id": "\"d16e27972d7862f6975a4a937a3536157aa5c146571830ed2b4bded668a52d64\"",
"dagger.io/client.os": "\"linux\"",
"dagger.io/ci.vendor": "\"GitHub\"",
"dagger.io/git.ref": "\"718b5d7d7d6a4c41284b51d67e7f87940bee3fb1\"",
"dagger.io/vcs.event.type": "\"push\"",
"dagger.io/git.committer.name": "\"GitHub\"",
"dagger.io/git.title": "\"redo OTel engine =\\u003e client pipeline (#7996)\"",
"dagger.io/ci": "\"true\"",
"dagger.io/client.arch": "\"amd64\"",
"process.command_args": "[\"dagger\",\"-m\",\".\",\"call\",\"--source=.:default\",\"--docker-cfg=file:/home/runner/.docker/config.json\",\"test\",\"all\",\"--race=true\",\"--parallel=16\"]",
"dagger.io/git.author.email": "\"suraci.alex@gmail.com\"",
"dagger.io/vcs.repo.url": "\"https://github.com/dagger/dagger\""
}
hmm, weird, if I go to the actual commit it links to two different traces (since there was a rerun):
- https://github.com/dagger/dagger/commit/3c52de5cd5daf202f57d4879f914dac3d2bc3ccf
=> https://dagger.cloud/dagger/ci?branch=main&ref=3c52de5cd5daf202f57d4879f914dac3d2bc3ccf&repo=github.com%2Fdagger%2Fdagger
=> https://dagger.cloud/dagger/traces/fe34e708bfe919c686e28c07fd70717c
=> https://dagger.cloud/dagger/traces/456eaa408cecd0fe94c2166d40452800
these ones have the correct metadata. maybe I got misled to the other trace somehow, but it's actually accurate to its metadata?