# Where does StdlibArtifacts.toml come from?

**URL:** <https://discourse.julialang.org/t/where-does-stdlibartifacts-toml-come-from/97752>\
**Category:** Internals & Design\
**Created:** [April 21, 2023, 6:35pm UTC](https://discourse.julialang.org/t/where-does-stdlibartifacts-toml-come-from/97752 "2023-04-21T18:35:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Barget](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@Barget](https://discourse.julialang.org/u/Barget)\
**Post date:** [April 21, 2023, 6:35pm UTC](https://discourse.julialang.org/t/where-does-stdlibartifacts-toml-come-from/97752/1 "2023-04-21T18:35:34Z")

</div>

Hello all,

While exploring a bit how packages and artifacts are stored locally, I came across a couple of `StdlibArtifacts.toml` files.  
Apparently, this is not returned by `Artifacts.find_artifacts_toml`.

So the question(s) is quite simple, where does it come from? why it differs from the usual `Artifacts.toml`? And shouldn’t it be returned by `Artifacts.find_artifacts_toml`?

_NB: For the context, I was trying to implement a function that returns package sizes, source files and artifacts included._

Examples of packages with it: `LibCURL_jll`, `SuiteSparse_jll`, `CompilerSupportLibraries_jll`, …

I’ve explored Julia’s source code, but just found that:

```julia
const artifact_names = ("JuliaArtifacts.toml", "Artifacts.toml")

```

Thanks,

---

<div class="post-metadata">

**Author:** ![chris-b1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chris-b1/32/14165_2.png) [@chris-b1](https://discourse.julialang.org/u/chris-b1)\
**Post date:** [April 21, 2023, 8:03pm UTC](https://discourse.julialang.org/t/where-does-stdlibartifacts-toml-come-from/97752/2 "2023-04-21T20:03:01Z")

</div>

I don’t really understand how it all fits together, but this comment here is probably a good breadcrumb to follow - JLLs depended on by the stdlib are “special” and have unique handling as such. @staticfloat would be the clear expert.

[https://github.com/JuliaLang/julia/pull/38347#discussion\_r530736796](https://github.com/JuliaLang/julia/pull/38347#discussion_r530736796)

---

<div class="post-metadata">

**Author:** ![Barget](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@Barget](https://discourse.julialang.org/u/Barget)\
**Post date:** [April 22, 2023, 3:49pm UTC](https://discourse.julialang.org/t/where-does-stdlibartifacts-toml-come-from/97752/3 "2023-04-22T15:49:45Z")

</div>

Thanks for the digging, this clarifies things a bit.

I understand part of the reason is explained later in the PR:  
[https://github.com/JuliaLang/julia/pull/38347#issuecomment-736931279](https://github.com/JuliaLang/julia/pull/38347#issuecomment-736931279)

This seems to be to allows to `Pkg` to include stdlib’s jll’s during the resolve process, while locking them to the version that ships with julia.

Confirmation would be appreciated, though 🙂

---

<div class="post-metadata">

**Author:** ![staticfloat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/staticfloat/32/34_2.png) [@staticfloat](https://discourse.julialang.org/u/staticfloat)\
**Post date:** [April 22, 2023, 5:36pm UTC](https://discourse.julialang.org/t/where-does-stdlibartifacts-toml-come-from/97752/4 "2023-04-22T17:36:54Z")

</div>

It’s actually not used by Pkg; it can be used by downstream tools such as BinaryBuilder. Pkg knows when things are stdlibs and excludes them from package resolution. There are very very few packages that use this file, but there are a few, which you can see here: [JuliaHub](https://juliahub.com/ui/Search?type=code&q=StdlibArtifacts&r=true)
