CHANGES IN VERSION 1.28.0
-------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o SummarizedExperiment objects now accept NAs in their rownames.
      Important notes:
      - NAs in the **rownames** are now tolerated but will cause problems
        downstream e.g. they break the rowData() getter unless 'use.names=FALSE'
        is used.
      - NAs in the **colnames** are not and cannot be supported at the moment!
        Right now they break the SummarizedExperiment() constructor in an ugly
        way (error message not super helpful):
            > SummarizedExperiment(m)
            Error in DataFrame(x = seq_len(ncol(a1)), row.names = nms) :
              missing values in 'row.names'
        This will need to be improved.
      - At the root of these problems is the fact that at the moment DataFrame
        objects do NOT support NAs in their rownames.
      Bottom line: NAs in the dimnames of a SummarizedExperiment object should
      be avoided at all cost. One way to deal with them is to replace them with
      empty strings ("").
      See commit 71872cc03b7c0195fb80d1d09409243f049ebb3f.

    o Small tweak to combineRows/combineCols: combineRows() and combineCols()
      no longer need to "fix" the dimnames that end up on the combined assays
      of the returned SummarizedExperiment object. So the assay dimnames are
      now returned as-is.
      See commit 1d6610eb168330f32433273e4fe49da173dcd33b.


CHANGES IN VERSION 1.26.0
-------------------------

DEPRECATED AND DEFUNCT

    o readKallisto() is now defunct after being deprecated in BioC 3.12.


CHANGES IN VERSION 1.24.0
-------------------------

NEW FEATURES

    o Add 'checkDimnames' argument to SummarizedExperiment() constructor
      function

    o Add showAsCell() method for SummarizedExperiment objects.

SIGNIFICANT USER-VISIBLE CHANGES

    o Check the assay dimnames at SummarizedExperiment construction time:
      The SummarizedExperiment() constructor function now raises an error
      if one of the supplied assays has rownames and/or colnames that don't
      match those of the SummarizedExperiment object to construct.


CHANGES IN VERSION 1.22.0
-------------------------

NEW FEATURES

    o Add combineRows() and combineCols() methods for SummarizedExperiment
      objects and derivatives. These are more flexible versions of rbind()
      and cbind() that don't require the objects to combine to have the same
      columns or rows. Contributed by Aaron Lun.


CHANGES IN VERSION 1.20.0
-------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o SummarizedExperiment now depends on the MatrixGenerics package.

    o DelayedArray was moved from Depends to Imports.

DEPRECATED AND DEFUNCT

    o Deprecated readKallisto().

BUG FIXES

    o Avoid triggering copies of the assays in assays() getter.

    o Fix long-standing bug in dim() method for Assays objects.

    o Fix assays(x) <- SimpleList(). Before that fix this operation was turning
      SummarizedExperiment object (or derivative) 'x' into an invalid object.


CHANGES IN VERSION 1.18.0
-------------------------

NEW FEATURES

    o SummarizedExperiment objects with assays of > 4 dimensions are now
      fully supported.

SIGNIFICANT USER-VISIBLE CHANGES

    o By default the assays() and assay() setters now reject inconsistent
      dimnames.
      By default the dimnames on the supplied assay(s) must be identical to
      the dimnames on the SummarizedExperiment object. The user now must use
      'withDimnames=FALSE' if it's not the case or they get an error.
      This is for symmetry with the behavior of the assays() and assay()
      getters (see issue #35). Unfortunately this change is likely to break
      existing code but at least the fix is easy.

    o dimnames() now returns NULL instead of list(NULL, NULL) on a
      SummarizedExperiment object with no dimnames. This is consistent
      with matrix objects.

    o Swap positions of arguments '...' and 'withDimnames' in assays()
      setter and getter. So now it's:
    
          assays(x, withDimnames=TRUE, ...)
          assays(x, withDimnames=TRUE, ...) <- value

    o Add 'withDimnames' argument to the assay() getter/setter. So now it's:
    
          assay(x, i, withDimnames=TRUE, ...)
          assay(x, i, withDimnames=TRUE, ...) <- value
    
      Note that before this change, the user was able to explicitly set
      'withDimnames' when calling assay() but since this was not a formal
      argument it was forwarded to assays() via the ellipsis. Having it as
      a formal argument makes it easier to discover and allows tab completion.


CHANGES IN VERSION 1.16.0
-------------------------

NEW FEATURES

    o Some improvements to the SummarizedExperiment() constructor (see commit
      0d74843c)

    o Support 'colData(SummarizedExperiment) <- NULL' to clear colData

SIGNIFICANT USER-VISIBLE CHANGES

    o All the arguments of the SummarizedExperiment() constructor are now
      visible (no more ellipsis) and have default values. So tab completion
      works. See commit 0d74843c

    o The dimnames on the individual assays of a SummarizedExperiment derivative
      now can be anything (see issue #25 for the details)

BUG FIXES

    o Some fixes to the SummarizedExperiment() constructor (see commit
      0d74843c)

    o Address all.equal() false positives on SummarizedExperiment objects
      (see issue #16 for the details)


CHANGES IN VERSION 1.12.0
-------------------------

NEW FEATURES

    o The package has a new vignette "Extending the SummarizedExperiment class"
      by Aaron Lun intended for developers. It documents in great details the
      process of implementing a SummarizedExperiment extension (a.k.a.
      subclass).

SIGNIFICANT USER-VISIBLE CHANGES

    o rowData() gains use.names=TRUE argument; prior behavior was to
      use.names=FALSE. rowData() by default fails when rownames()
      contains NAs.

BUG FIXES

    o Better error handling in SummarizedExperiment() constructor.
      SummarizedExperiment() now prints an informative error message when
      the supplied assays have insane rownames or colnames. This addresses
      https://github.com/Bioconductor/SummarizedExperiment/issues/7


CHANGES IN VERSION 1.10.0
-------------------------

NEW FEATURES

    o Add "subset" method for SummarizedExperiment objects. See
      https://github.com/Bioconductor/SummarizedExperiment/pull/6

    o rowRanges() now is supported on a SummarizedExperiment object that is
      not a RangedSummarizedExperiment, and returns NULL. Also doing
      'rowRanges(x) <- NULL' on a RangedSummarizedExperiment object now is
      supported and degrades it to a SummarizedExperiment instance.

    o Add 'BACKEND' argument to "realize" method for SummarizedExperiment
      objects.

SIGNIFICANT USER-VISIBLE CHANGES

    o saveHDF5SummarizedExperiment() and loadHDF5SummarizedExperiment() are
      now in the HDF5Array package.

    o Replace old "updateObject" method for SummarizedExperiment objects with
      a new one.

      The new method calls updateObject() on all the assays of the object.
      This will update SummarizedExperiment objects (and their derivatives
      like BSseq objects) that have "old" DelayedArray objects in their assays.

      The old method has been around since BioC 3.2 (released 2.5 years ago)
      and was used to update objects made prior to the change of internals
      that happened between BioC 3.1 and BioC 3.2. All these "old" objects
      should have been updated by now so we don't need this anymore.

BUG FIXES

    o Modify the "[<-" method for SummarizedExperiment to leave 'metadata(x)'
      intact instead of trying to combine it with 'metadata(value)'. With this
      change 'x[i , j] <- x[i , j]' behaves like a no-op (as expected) instead
      of duplicating metadata(x).

    o The SummarizedExperiment() constructor does not try to downgrade the
      supplied rowData and/or colData to DataFrame anymore if they derive
      from DataFrame.


CHANGES IN VERSION 1.8.0
------------------------

NEW FEATURES

    o Add 'chunk_dim' and 'level' arguments to saveHDF5SummarizedExperiment().

    o Add coercion from ExpressionSet to SummarizedExperiment.

DEPRECATED AND DEFUNCT

    o Remove 'force' argument from seqinfo() and seqlevels() setters (the
      argument got deprecated in BioC 3.5 in favor of new and more flexible
      'pruning.mode' argument).

BUG FIXES

    o Coercion from SummarizedExperiment to RangedSummarizedExperiment was
      losing the metadata columns. Fixed now.

    o Fix cbind() and rbind() of SummarizedExperiment objects when some of the
      assays are DataFrame or data.frame objects.

    o '$' completion on SummarizedExperiment works in RStudio and on
      RangedSummarizedExperiment.


CHANGES IN VERSION 1.6.0
------------------------

NEW FEATURES

    o Add saveHDF5SummarizedExperiment() and loadHDF5SummarizedExperiment() for
      saving/loading HDF5-based SummarizedExperiment objects to/from disk.

DEPRECATED AND DEFUNCT

    o Remove SummarizedExperiment0 class (was introduced to ease transition
      from old SummarizedExperiment class defined in GenomicRanges to new
      RangedSummarizedExperiment class defined in SummarizedExperiment package).


CHANGES IN VERSION 1.4.0
------------------------

NEW FEATURES

    o Add makeSummarizedExperimentFromDataFrame() function.

    o Add "acbind" and "arbind" methods for Matrix objects.

SIGNIFICANT USER-VISIBLE CHANGES

    o Speed up "cbind" method for SummarizedExperiment objects based on a
      suggestion by Peter Hickey.

DEPRECATED AND DEFUNCT

    o Remove exptData() getter and setter (were defunct in BioC 3.3).

BUG FIXES


CHANGES IN VERSION 1.2.0
------------------------

NEW FEATURES

    o Add 'rowData' argument to SummarizedExperiment() constructor. This allows
      the user to supply the row data at construction time.

    o The SummarizedExperiment() constructor function and the assay() setter
      now both take any matrix-like object as long as the resulting
      SummarizedExperiment object is valid.

    o Support r/cbind'ing of SummarizedExperiment objects with assays of
      arbitrary dimensions (based on a patch by Pete Hickey).

    o Add "is.unsorted" method for RangedSummarizedExperiment objects.

    o NULL colnames() supported during SummarizedExperiment construction.

    o readKallisto() warns early when files need names.

    o base::rank() gained a new 'ties.method="last"' option and base::order()
      a new argument ('method') in R 3.3. Thus so do the "rank" and "order"
      methods for RangedSummarizedExperiment objects.

SIGNIFICANT USER-VISIBLE CHANGES

    o Re-introduce the rowData() accessor (was defunt in BioC 3.2) as an alias
      for mcols() and make it the preferred way to access the row data. There
      is now a pleasant symmetry between rowData and colData.

    o Rename SummarizedExperiment0 class -> SummarizedExperiment.

    o Improved vignette.

    o Remove updateObject() method for "old" SummarizedExperiment objects.

DEPRECATED AND DEFUNCT

    o exptData() is now defunct, metadata() should be used instead.

BUG FIXES

    o Fix bug in "sort" method for RangedSummarizedExperiment objects when
      'ignore.strand=TRUE' (the argument was ignored).

    o Fix 2 bugs when r/cbind'ing SummarizedExperiment objects:
      - r/cbind'ing assays without names would return only the first element.
        See https://stat.ethz.ch/pipermail/bioc-devel/2015-November/008318.html
      - r/cbind'ing assays with names in different order would stop() with
        'Assays must have the same names()"

    o Fix validity method for SummarizedExperiment objects reporting incorrect
      numbers when the nb of cols in assay(x) doesn't match the nb of rows in
      colData(x).

    o assay colnames() must agree with colData rownames()

    o Fix bug where assays(se, withDimnames=TRUE) was dropping the dimnames of
      the 3rd and higher-order dimensions of the assays. Thanks to Pete Hickey
      for catching this and providing a patch.

    o A couple of minor tweaks to the rowData() setter to make it behave
      consistently with mcols()/elementMetadata() setters for Vector objects
      in general.


CHANGES IN VERSION 0.3.*
------------------------

NEW FEATURES

    o readKallisto() and readKallistoBootstrap() input kallisto
      transcript quantification output into SummarizedExperiment (and
      other) instances.