Summary
BEAST 3 XMLs using the strongly-typed spec classes (RealScalarParam, spec distributions-as-priors with param input, spec SiteModel/TreeLikelihood/YuleModel, etc.) are not parseable by older versions of BEAST or BEAUti.
The <beast version="2.0"> declaration on these XMLs is misleading — it suggests compatibility with BEAST 2.x parsers, which will fail on spec class references.
Proposal
Bump the XML version attribute to 3.0 for XMLs that use spec classes:
<beast version="3.0" namespace="...">
This would:
- Signal to users and tools that the XML requires BEAST 3
- Allow the parser to reject or warn on version mismatch
- Distinguish spec-class XMLs from legacy XMLs that happen to run on BEAST 3
Files affected
beast-fx/src/main/resources/fxtemplates/Standard.xml and sibling templates
- All example XMLs using spec classes
- External packages (e.g. morph-models, beast-package-skeleton)
Context
This came up while polishing the morph-models and beast-package-skeleton as exemplar BEAST 3 packages. Both currently use version="2.0" in their XML files despite requiring BEAST 3 spec classes.
Summary
BEAST 3 XMLs using the strongly-typed spec classes (
RealScalarParam, spec distributions-as-priors withparaminput, specSiteModel/TreeLikelihood/YuleModel, etc.) are not parseable by older versions of BEAST or BEAUti.The
<beast version="2.0">declaration on these XMLs is misleading — it suggests compatibility with BEAST 2.x parsers, which will fail on spec class references.Proposal
Bump the XML version attribute to
3.0for XMLs that use spec classes:This would:
Files affected
beast-fx/src/main/resources/fxtemplates/Standard.xmland sibling templatesContext
This came up while polishing the morph-models and beast-package-skeleton as exemplar BEAST 3 packages. Both currently use
version="2.0"in their XML files despite requiring BEAST 3 spec classes.