From jari.oksanen at oulu.fi  Sat Sep 13 07:13:37 2014
From: jari.oksanen at oulu.fi (Jari Oksanen)
Date: Sat, 13 Sep 2014 05:13:37 +0000
Subject: [Rd] vegan moved to GitHub and vegan 2.2-0 is coming (are you
	ready?)
Message-ID: <4DF833D8-0EDF-4773-90EE-F2A81721A98F@oulu.fi>

Dear vegan team,

Vegan development happens now completely in github. R-Forge repository is no more in sync with github. I tried to commit all github changes to R-Forge, but a week ago I got a conflict in file and I haven't had time to resolve that conflict. You can follow vegan development and vegan discussion also without signing to github. The system seems to be completely open and does not require any user credentials (and this is good to remember when we discuss about things). The developer front page is

https://github.com/vegandevs

We have prepared for the vegan 2.2-0 release. This would be a major release that would close the gap between current development version and CRAN. I haven't set any firm date for the release, but I think R 3.2.0 will be out in October, and we should try to be concurrent with that -- in particular as the 2.0-10 in CRAN will give warnings in R check for that version.

We have now solved a couple of major issues.

- on technical side: the next R release will spit out tens of warnings for namespace issues (visibility of functions). These were solved in https://github.com/vegandevs/vegan/pull/28

- all vegan functions doing permutation are now based on Gav's permute package. This means that they can use any constrained permutation scheme of the permute package. This also concerns functions that earlier only had simple permutation. Of course, you do not need to use fancy permutation schemes, but the default is still simple permutation and this can be expressed by giving just the number of permutations on the command line. The functions using the new permutation scheme are adonis, anosim, anova.cca for CCA/RDA/dbRDA and hence also for ordistep etc., CCorA, envfit, mantel & mantel.partial, mrpp, mso, permutest.betadisper, permutest.cca, protest and simper. The change for functions is now complete, but same clean up and updating of documentation is still to be done. This is discussed in https://github.com/vegandevs/vegan/issues/31

- vegan 2.2-0 will also use parallel processing in several functions. This was already done in several functions in vegan development. The discussion on extending parallel processing to other functions was just opened in https://github.com/vegandevs/vegan/issues/36 . Currently the following functions can use parallel processing: adonis, anosim, anova.cca, mantel, mantel.partial, mrpp and simper can use it permutations, bioenv can asses several competing models in parallel, metaMDS can launch several random starts in parallel and oecosimu can use parallel processing in evaluating the statistics for null communities. If you compare this to the previous list of permutation functions, you see that the following permutation methods do not use parallel procesing: CCorA, envfit, mso, permutest.betadisper and protest. The question is if these also should be parallelized or can we leave them like they are, at least for the next release.

- A more controversial issue is that Gav suggested moving rgl-based functions away from vegan to a separate package (https://github.com/vegandevs/vegan/issues/29 ). The main reason was that rgl can cause problems in several platforms and even prevent installing vegan. Indeed, when I tested these functions, they crashed in this Mac laptop. We have now a separate vegan3d package for these functions https://github.com/vegandevs/vegan3d . In addition to ordirgl + friends, rgl.isomap and rgl.renyiaccum it also has oriplot3d package. This package has now the same functionality as these functions had in vegan, and our purpose is to release that concurrently with vegan 2.2-0. I recently suggested to remove these functions from vegan, but we haven't made that change yet so that you can express your opinion on the move. See https://github.com/vegandevs/vegan/pull/37

There are some simpler and smaller things, but you can see those if you follow github.

I have now mainly worked with my private fork of vegan and "pushed to vegan upstream" changes when they have looked more or less finished. At this stage, I have made a "pull request", and normally waited for possible comments. To get a second opinion, I have usually waited that Gav has a look at the functions and let him merge them to vegan. Sometimes there has been a long discussion before merge and we have edited the functions before the merge (e.g., https://github.com/vegandevs/vegan/pull/34 ). If changes are small and isolated bug fixes, I have pushed them directly to the vegan upstream, though. I have found this pretty good way of working in github.

Cheers, Jari Oksanen


[Rd] vegan moved to GitHub and vegan 2.2-0 is coming (are you ready?)
Jari Oksanen