0

I'd like some advice on what vocabulary to use to describe the following. Having the right vocabulary will allow me to search for tools and ideas related to the concept

I'd like to say a script is SomeWord if it is expected to produce the same output no matter where it is run.

For example, the following script is not SomeWord:

#!/bin/bash
ls ~

because of course it depends on where it is executed.

Whereas the following (if it runs without error) is expected to always produce the same output:

#!/bin/bash
echo "hello, world"

A more useful example would be something that loads and runs a docker or singularity container in a way that guarantees that a very particular container image is being used. For example by retrieving the singularity image by its content-hash.

The advantages of SomeWord scripts are: (a) they may be safely run on a remote system without worrying about the environment and (b) their outputs may be cached.

1 Answers1

0

The best I can think of would be "deterministic" or some variation on "environment independent" or "reproducible".

Any container should be able to do this, as that is a big part of why the tech developed in the first place. Environment managers like conda can also do this to a certain extent, but because it's just modifying the host environment it's possible to be using non-conda binaries without realizing it.

tsnowlan
  • 3,472
  • 10
  • 15