Environments
Environments
Building your Environment
When creating a digital project it is important to know what underlying software, platforms, libraries, code, etc. we are utilizing. By keeping track of these elements we can make sure that our future work and that of researchers that build upon our efforts can execute our codes. But this can be a very time-consuming task especially when it is not built into the workflows that we may already use in our day-to-day practices. For this very reason, we can utilize containers that exist to help you standardize and be able to distribute your environments.
Lesson - Containers
Code refinery container Lesson
But it is not enough to just utilize already tested environments or possibly package our own. We also need to track our dependencies as they get increasingly complicated as this next picture illustrates perfectly.
Dependencies are the underlying software, libraries, platforms, etc. on which something (can be a library, tool, code) you are using relies upon.
For example, if you are using the package scipy you need to have python and pip on your environment already. In this case, python and pip are your dependencies. To track these dependencies we can utilize package managers which organize the environments and track the dependencies for us.
Lesson - Dependencies
Code Refinery dependency lesson
Additional resources
- Common container software intro lessons and/or docs:
- Docker
- Singularity (very useful for High-performance Computing work)