When you update the .ini and .cfg files you have to delete the config to get things to rebuild.
The .cfg files are stored outside of Cactus. The intent is that a Cactus configuration is independent of these files and does not automatically pick up changes, so that one can keep Cactus configurations around for a long time without major changes, e.g. if finishing a long-running calculation.
If you want to make Cactus pick up the changes, you have to use the simfactory option "--optionlist=NAME.cfg". Similar for the .sub and .run files.
The .ini files are only part of simfactory, and changes to them take effect immediately.
I don't like this behaviour, though I understand the logic. Would it be possible for SimFactory to issue a warning to the user in the case that the optionlist has been modified and the old one is being used? For example:
WARNING: Optionlist <name> has been modified and is newer than the stored optionlist for configuration sim. Use --optionlist <name> in the build command to update the optionlist to the newer version.
...and for the submit and run scripts as well. The submit script in particular always catches me out.
I don't like warnings. They are always a compromise, and in the heat of the moment people tend to not see them.
What about a new option --track-optionlist=... that would replace --optionlist=..., and which would track the corresponding option list? Internally, it would store a (symbolic link) to the option list instead of copying it.