tgvaughan / MultiTypeTree

BEAST 2 package which provides support for multi-type trees: phylogenetic trees on structured populations.
http://tgvaughan.github.io/MultiTypeTree
GNU General Public License v3.0
21 stars 16 forks source link

Rename packages #6

Closed tgvaughan closed 10 years ago

tgvaughan commented 10 years ago

MTT currently shares namespaces with BEAST. This is generally a bad thing, but can also cause specific problems such as BEAST picking up MTT packages during its own unit tests if MTT is installed on the system.

The reason behind the current package names is almost entirely historical, although there was also be some difficulties relating to package protected Tree fields.

MTT should move to having its own unique namespace.

alexeid commented 10 years ago

I think we need to make this clear in our BEAST2 documentation that it is not recommended to use the beast.* namespaces for new classes added in BEAST2 packages. Each BEAST2 package should ideally also have its own java package namespace(s). We need to correct this in beastLabs as well, as it is bad practice and the potential for collisions and unintended consequences is high.

Alexei

On 9/04/2014, at 2:36 am, Tim Vaughan notifications@github.com wrote:

MTT currently shares namespaces with BEAST. This is generally a bad thing, but can also cause specific problems such as BEAST picking up MTT packages during its own unit tests if MTT is installed on the system.

The reason behind the current package names is almost entirely historical, although there was also be some difficulties relating to package protected Tree fields.

MTT should move to having its own unique namespace.

— Reply to this email directly or view it on GitHub.

tgvaughan commented 10 years ago

I totally agree. This was a case of copying what appeared to be standard practice. It's still difficult to move from this though in certain situations, depending on how funky you want to get with extending beast classes.

On 9 April 2014 18:41, Alexei Drummond notifications@github.com wrote:

I think we need to make this clear in our BEAST2 documentation that it is not recommended to use the beast.* namespaces for new classes added in BEAST2 packages. Each BEAST2 package should ideally also have its own java package namespace(s). We need to correct this in beastLabs as well, as it is bad practice and the potential for collisions and unintended consequences is high.

Alexei

On 9/04/2014, at 2:36 am, Tim Vaughan notifications@github.com wrote:

MTT currently shares namespaces with BEAST. This is generally a bad thing, but can also cause specific problems such as BEAST picking up MTT packages during its own unit tests if MTT is installed on the system.

The reason behind the current package names is almost entirely historical, although there was also be some difficulties relating to package protected Tree fields.

MTT should move to having its own unique namespace.

Reply to this email directly or view it on GitHub.

Reply to this email directly or view it on GitHubhttps://github.com/CompEvol/MultiTypeTree/issues/6#issuecomment-39933154 .

alexeid commented 10 years ago

Yes. We can adjust the scoping and add necessary methods in the core as we understand what parts tend to need extending.

Alexei

On 9/04/2014, at 7:59 am, Tim Vaughan notifications@github.com wrote:

I totally agree. This was a case of copying what appeared to be standard practice. It's still difficult to move from this though in certain situations, depending on how funky you want to get with extending beast classes.

On 9 April 2014 18:41, Alexei Drummond notifications@github.com wrote:

I think we need to make this clear in our BEAST2 documentation that it is not recommended to use the beast.* namespaces for new classes added in BEAST2 packages. Each BEAST2 package should ideally also have its own java package namespace(s). We need to correct this in beastLabs as well, as it is bad practice and the potential for collisions and unintended consequences is high.

Alexei

On 9/04/2014, at 2:36 am, Tim Vaughan notifications@github.com wrote:

MTT currently shares namespaces with BEAST. This is generally a bad thing, but can also cause specific problems such as BEAST picking up MTT packages during its own unit tests if MTT is installed on the system.

The reason behind the current package names is almost entirely historical, although there was also be some difficulties relating to package protected Tree fields.

MTT should move to having its own unique namespace.

Reply to this email directly or view it on GitHub.

Reply to this email directly or view it on GitHubhttps://github.com/CompEvol/MultiTypeTree/issues/6#issuecomment-39933154 .

— Reply to this email directly or view it on GitHub.

tgvaughan commented 10 years ago

The tree and node-derived classes are still in beast.evolution.tree as these currently use package-private fields and methods. This will be addressed in future.

tgvaughan commented 10 years ago

This issue is fixed in release 3.0.0 (commit e3fe777cc33ef7f472701f4f6060c2eff991d4cc).