Hermetic / Non Hermetic Packages in Python
While going through PyTorch documentation, I came across the term hermetic packages:

torch.package adds support for creating hermetic packages containing arbitrary PyTorch code. These packages can be saved, shared, used to load and execute models at a later date or on a different machine, and can even be deployed to production using torch::deploy.

I don't understand what hermetic packages mean in this context.

Can someone explain what makes packages hermetic?
What would non-hermetic packages look like?

With some search over Stack Overflow [1][2], it seems this terminology is a generic term used in software world. Any examples - even outside of PyTorch/Python world -  would help in solidifing my understanding.
Thank you!

[1] Creating Hermetic Maven Builds
[2] Bazel: hermetic use of jar command?

In the context, hermatic is used to mean that the already preinstalled libraries and configuration of your machine you are running on (macos laptop, to windows desktop, etc.) will be able to build Pytorch and its depedancies in an identical way.
The following link has a section on hermatic builds:
https://www.google.com/search?q=what+is+hermatic+mean+in+software&amp;oq=what+is+hermatic+mean+in+software&amp;aqs=chrome..69i57j33l3.7998j0j7&amp;sourceid=chrome&amp;ie=UTF-8
&quot;Our builds are hermetic, meaning that they are insensitive to the libraries and other software installed on the build machine. Instead, builds depend on known versions of build tools, such as compilers, and dependencies, such as libraries. The build process is self-contained and must not rely on services that are external to the build environment.&quot;
This is also a good link to refer to:
https://news.ycombinator.com/item?id=19610869
Sarthak Jain
