# \[pre-ANN\] StackEnvs.jl

**URL:** <https://discourse.julialang.org/t/pre-ann-stackenvs-jl/124487>\
**Category:** Performance\
**Tags:** package, announcement\
**Created:** [January 7, 2025, 12:19am UTC](https://discourse.julialang.org/t/pre-ann-stackenvs-jl/124487 "2025-01-07T00:19:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)\
**Post date:** [January 7, 2025, 12:19am UTC](https://discourse.julialang.org/t/pre-ann-stackenvs-jl/124487/1 "2025-01-07T00:19:40Z")

</div>

[StackEnvs.jl](https://github.com/jlapeyre/StackEnvs.jl)

From the README:

`StackEnvs` provides tools for minimal management of a shared environment that is meant to be used from your “stacked environment” but never to be active itself.

This is useful if you are developing a package and want to use some other packages without polluting any environment.

It is meant to be used in a script that you `include` when, for example, developing a particular package, and want some other particular  
packages to be available.

```julia
using StackEnvs
env = StackEnv("my_env", ["PackA", "PackB"])
ensure_in_stack(env)

```

or more simply,

```julia
using StackEnvs
ensure_in_stack("my_env", ["PackA", "PackB"])

```

After including the script, you can immediately `using PackA`.

`StackEnvs.jl` is similar to the recently registered [ShareAdd.jl](https://discourse.julialang.org/t/ann-shareadd-jl-making-easy-to-import-packages-from-multiple-environments/121261)
