beast2 icon indicating copy to clipboard operation
beast2 copied to clipboard

Better handling of BEAUti interface errors

Open tgvaughan opened this issue 8 years ago • 0 comments

It is well-known amongst the development team that BEAUti can become "confused" - i.e. the BEAST model it holds in memory can become corrupted, or the model is in some way invalid meaning that certain input editors cannot be displayed. One way to reproduce this add tip dates to an alignment, select "auto-configure" and use a date file with dates specified using an unknown format. The tip date input editor then disappears completely and cannot be recovered without reloading the data or template.

We observe this frequently in tutorials, where students are confused for a few minutes as to why a certain option has (for example) disappeared from a list of priors, until a tutor directs them to restart BEAUti. Without the tutor, this confusion could continue for a while.

Ideally of course we'd like to fix all of the individual bugs that contribute to model corruption. However, given that at least some of these are in the hands of contributed packages, I think it would also be great to have some way of minimizing wasted time and user confusion when such errors occur.

I think that the most important thing when such an error occurs is for BEAUti to emit an impossible-to-ignore message (eg via a modal dialog box) informing the user of the situation. Then, BEAUti should either

  1. revert to the previous state (this is probably difficult), or
  2. reload the template (maybe relatively straight-forward?).

Of course, the impossible-to-ignore message should warn the user about what exactly is going to happen next.

The problem which remains is how to detect such errors. Do they always coincide with exceptions being thrown? If not, can we come up with a way of detecting when a model has become corrupt?

tgvaughan avatar Aug 29 '17 15:08 tgvaughan