Here are my thoughts on the steps involved:
- Go through all code that does Internet access, make sure it can be disabled
- Add a way to download all required files (snapshots, package source, etc.) into an offline archive
- Ensure the offline archive can be incrementally updated (e.g. if a snapshot or extra-dep is updated, the new files can be added to the existing archive)
- Ensure the offline archive can also be used from an HTTP(S) server on a corporate intranet (note that actually uploading the archive to that server is out of scope since there are too many variables in how these servers could be set up)
- Add an easy way to reference the offline archive in stack.yaml.