# What is the expected behavior for metapackages?

**URL:** <https://discourse.julialang.org/t/what-is-the-expected-behavior-for-metapackages/41224>\
**Category:** New to Julia\
**Tags:** pkg\
**Created:** [June 11, 2020, 7:40pm UTC](https://discourse.julialang.org/t/what-is-the-expected-behavior-for-metapackages/41224 "2020-06-11T19:40:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![aliddell](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aliddell/32/3766_2.png) [@aliddell](https://discourse.julialang.org/u/aliddell)\
**Post date:** [June 11, 2020, 7:40pm UTC](https://discourse.julialang.org/t/what-is-the-expected-behavior-for-metapackages/41224/1 "2020-06-11T19:40:28Z")

</div>

Wherein I attempt to install [StatsKit](https://github.com/JuliaStats/StatsKit.jl):

```julia
(@v1.4) pkg> add StatsKit
   Updating registry at `C:\Users\alanc\.julia\registries\General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
  Resolving package versions...
  Installed Loess ─────────────────────── v0.5.1
  ...
  Installed GLM ───────────────────────── v1.3.9
  ...
  Installed CSV ───────────────────────── v0.6.2
   Updating `C:\Users\alanc\.julia\environments\v1.4\Project.toml`
  [2cb19f9e] + StatsKit v0.3.0
   Updating `C:\Users\alanc\.julia\environments\v1.4\Manifest.toml`
  [4fba245c] + ArrayInterface v2.8.7
  ...
  [38e38edf] + GLM v1.3.9
  ...
  [efce3f68] + WoodburyMatrices v0.5.2

julia> using GLM
ERROR: ArgumentError: Package GLM not found in current path:
- Run `import Pkg; Pkg.add("GLM")` to install the GLM package.

```

Well, ok, it’s a metapackage, maybe I have to load it first:

```julia
julia> using StatsKit
[Info: Precompiling StatsKit [2cb19f9e-ec4d-5c53-8573-a4542a68d3f0]

julia> using Loess
ERROR: ArgumentError: Package Loess not found in current path:
- Run `import Pkg; Pkg.add("Loess")` to install the Loess package.

```

What gives? Why did I just install StatsKit, and where did those packages go?

---

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [June 11, 2020, 7:45pm UTC](https://discourse.julialang.org/t/what-is-the-expected-behavior-for-metapackages/41224/2 "2020-06-11T19:45:24Z")

</div>

It looks like StatsKit already re-exports every exported symbol from all of those packages, so can you just do:

```julia
using StatsKit

mean([1, 2, 3]) # re-exported from Statistics by StatsKit

```

?

You should also be able to do `using StatsKit.GLM` to access the exact `GLM` provided by `StatsKit`.

---

<div class="post-metadata">

**Author:** ![aliddell](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aliddell/32/3766_2.png) [@aliddell](https://discourse.julialang.org/u/aliddell)\
**Post date:** [June 11, 2020, 7:50pm UTC](https://discourse.julialang.org/t/what-is-the-expected-behavior-for-metapackages/41224/3 "2020-06-11T19:50:19Z")

</div>

I see, so they become submodules (and everything is re-exported as necessary). I was thinking it would be a convenient way to install a bunch of stats-related packages and have them available at the “top level” of the environment, so that I could do `using GLM` or `using Loess` or whatever. Is this typical of a metapackage?
