Revisions
You might want to take a look at the following pages before exploring revisions:
Simexpal supports two kinds of revisions: “normal” (static) revisions and develop (dynamic) revisions. If you have a finished project and only want to run experiments, normal revisions will suffice. If your project is not finished yet and needs refinement depending on factors like runtime or experiment outputs, you can use develop revisions.
Revisions contain builds and their desired versions. The versions can be specified in the following ways:
SHA-1 hash of a tagged commit (recommended)
SHA-1 hash of a top commit
branch name (resolves to top commit of the branch)
For reproducibility reasons we recommend specifying the SHA-1 hash of a tagged commit.
“Normal” Revisions
To specify a normal revisions, we use the revisions
key and set the value to a list of dictionaries containing
the keys
name
: name of the revisionbuild_version
: dictionary of (build, SHA-1 hash/branch)-pairs
1revisions:
2 - name: main
3 build_version:
4 'simexpal': 'd8d421e3c2eaa32311a6c678b15e9e22ea0d8eac' # SHA-1 hash of a tagged commit
5 - name: secondary
6 build_version:
7 'simexpal': 'master'
In the example above we created the revisions main
and secondary
, which both contain the build simexpal
.
The main
revision contains a tagged version of simexpal, whereas the secondary
revision contains the latest
commit of the master
branch.
If our revision had more than one build, we would simply add new lines of '<build_name>': '<SHA-1 hash>'
below the
'simexpal': '...'
line.
Develop Revisions
Specifying develop revisions works similarly to specifying normal revisions. The differences are:
we add another key
develop
and set its value totrue
andwe leave the values of the
build_version
dict as empty string''
.
Values specified for the build_version
key will be ignored for develop
revisions. Instead, the latest commit of the default branch will be checked out
after cloning the repository initially.
1revisions:
2 - name: main
3 develop: true
4 build_version:
5 'simexpal': ''
Note
It is possible to have normal and develop revisions at the same time. To operate on develop revision git repositories, you must first clone all repositories (e.g. simex develop –checkout). Thereafter, navigate to the respective repositories and use regular git commands.
Next
Now that you have set up your automated builds, you can visit the Experiments page to define your experiments.