[Bioc-devel] BioC Release 2.0 REMINDER

Seth Falcon sfalcon at fhcrc.org
Tue Mar 27 22:41:44 CEST 2007


Hello BioC package maintainers,

R 2.5.0 is now alpha and we encourage you to use it to test your
packages (you can download from a link on any CRAN mirror).  We will
be updating our build system nodes to a recent R 2.5.0 alpha in the
next couple of days.

For those of you tracking R using svn, R-2.5.0 has moved to the
release branch so take note.

Finally, some details and suggestions for those of you with S4 code in
your package...

Best Wishes,

+ seth


=====================================================
 Recommendations for setGeneric in BioC Package Code
=====================================================

In the past, it was necessary to create new generics in a conditional
fashion.  A common idiom still found in many BioC packages is::

    if (!isGeneric("foo")) setGeneric("foo", ...)

This idiom is **no longer necessary** and is generally discouraged.
There are rare cases where it is appropriate.  If you think your
package falls into such a case, please post a question on bioc-devel.

Recommendation
==============

Remove conditional setting of generics where possible.

1. When setting a generic that *belongs* to your package, simply call
   setGeneric and remove any conditional logic surrounding the call to
   setGeneric.

2. If you want to set methods on generics that are defined in other
   packages, don't call setGeneric at all.  Depend and import the
   package that defines the generic you want and then just call
   setMethod.

3. If you want to set methods on functions that are defined in another
   package, but are not currently S4 generics, we currently recommend:

   3.1. For functions in base, simply call setMethod.

   3.2. For function in other BioC packages, start a dialog with the
   maintainer and ask for a generic to be created.


--
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
http://bioconductor.org



More information about the Bioc-devel mailing list