Future Release
==============

* FIX: DataFinder was broken due to a typo
* FIX: Order of DataFinder outputs was not guaranteed, it's human sorted now
* ENH: New interfaces: Vnifti2Image, VtoMat

Release 0.9.1 (December 25, 2013)
============

* FIX: installation issues

Release 0.9.0 (December 20, 2013)
============

* ENH: SelectFiles: a streamlined version of DataGrabber
* ENH: new tools for defining workflows: JoinNode, synchronize and itersource
* ENH: W3C PROV support with optional RDF export built into Nipype
* ENH: Added support for Simple Linux Utility Resource Management (SLURM)
* ENH: AFNI interfaces refactor, prefix, suffix are replaced by "flexible_%s_templates"
* ENH: New SPM interfaces:
		- spm.ResliceToReference,
		- spm.DicomImport
* ENH: New AFNI interfaces:
		- afni.AFNItoNIFTI
		- afni.TCorr1D
* ENH: Several new interfaces related to Camino were added:
        - camino.SFPICOCalibData
        - camino.Conmat
        - camino.QBallMX
        - camino.LinRecon
        - camino.SFPeaks
        One outdated interface no longer part of Camino was removed:
        - camino.Conmap
* ENH: Three new mrtrix interfaces were added:
        - mrtrix.GenerateDirections
        - mrtrix.FindShPeaks
        - mrtrix.Directions2Amplitude
* ENH: New FSL interfaces:
		- fsl.PrepareFieldmap
		- fsl.TOPUP
		- fsl.ApplyTOPUP
		- fsl.Eddy
* ENH: New misc interfaces:
		- FuzzyOverlap,
		- P2PDistance
* ENH: New workflows: nipype.workflows.dmri.fsl.epi.[fieldmap_correction&topup_correction]
* ENH: Added simplified outputname generation for command line interfaces.
* ENH: Allow ants use a single mask image
* ENH: Create configuration option for parameterizing directories with hashes
* ENH: arrange nodes by topological sort with disconnected subgraphs
* ENH: uses the nidm iri namespace for uuids
* ENH: remove old reporting webpage
* ENH: Added support for Vagrant

* API: 'name' is now a positional argument for Workflow, Node, and MapNode constructors
* API: SPM now defaults to SPM8 or SPM12b job format
* API: DataGrabber and SelectFiles use human (or natural) sort now

* FIX: Several fixes related to Camino interfaces:
        - ProcStreamlines would ignore many arguments silently (target, waypoint, exclusion ROIS, etc.)
        - DTLUTGen would silently round the "step", "snr" and "trace" parameters to integers
        - PicoPDFs would not accept more than one lookup table
        - PicoPDFs default pdf did not correspond to Camino default
        - Track input model names were outdated (and would generate an error)
        - Track numpds parameter could not be set for deterministic tractography
        - FA created output files with erroneous extension
* FIX: Deals properly with 3d files in SPM Realign
* FIX: SPM with MCR fixed
* FIX: Cleaned up input and output spec metadata
* FIX: example openfmri script now makes the contrast spec a hashed input
* FIX: FILMGLS compatibility with FSL 5.0.5
* FIX: Freesurfer recon-all resume now avoids setting inputs
* FIX: File removal from node respects file associations img/hdr/mat, BRIK/HEAD

Release 0.8.0 (May 8, 2013)
===========================

* ENH: New interfaces: nipy.Trim, fsl.GLM, fsl.SigLoss, spm.VBMSegment, fsl.InvWarp,
       dipy.TensorMode
* ENH: Allow control over terminal output for commandline interfaces
* ENH: Added preliminary support for generating Python code from Workflows.
* ENH: New workflows for dMRI and fMRI pre-processing: added motion artifact correction
       with rotation of the B-matrix, and susceptibility correction for EPI imaging using
       fieldmaps. Updated eddy_correct pipeline to support both dMRI and fMRI, and new parameters.
* ENH: Minor improvements to FSL's FUGUE and FLIRT interfaces
* ENH: Added optional dilation of parcels in cmtk.Parcellate
* ENH: Interpolation mode added to afni.Resample
* ENH: Function interface can accept a list of strings containing import statements
       that allow external functions to run without their imports defined in the
       function body
* ENH: Allow node configurations to override master configuration

* FIX: SpecifyModel works with 3D files correctly now.

Release 0.7.0 (Dec 18, 2012)
============================

* ENH: Add basic support for LSF plugin.
* ENH: New interfaces: ICC, Meshfix, ants.Register, C3dAffineTool, ants.JacobianDeterminant,
       afni.AutoTcorrelate, DcmStack
* ENH: New workflows: ants template building (both using 'ANTS' and the new 'antsRegistration')
* ENH: New examples: how to use ANTS template building workflows (smri_ants_build_tmeplate),
	  how to set SGE specific options (smri_ants_build_template_new)
* ENH: added no_flatten option to Merge
* ENH: added versioning option and checking to traits
* ENH: added deprecation metadata to traits
* ENH: Slicer interfaces were updated to version 4.1

Release 0.6.0 (Jun 30, 2012)
============================

* API: display variable no longer encoded as inputs in commandline interfaces

* ENH: input hash not modified when environment DISPLAY is changed
* ENH: support for 3d files for TSNR calculation
* ENH: Preliminary support for graph submission with SGE, PBS and Soma Workflow
* ENH: New interfaces: MySQLSink, nipy.Similarity, WatershedBEM, MRIsSmooth,
       NetworkBasedStatistic, Atropos, N4BiasFieldCorrection, ApplyTransforms,
       fs.MakeAverageSubject, epidewarp.fsl, WarpTimeSeriesImageMultiTransform,
       AVScale, mri_ms_LDA
* ENH: simple interfaces for spm

* FIX: CompCor component calculation was erroneous
* FIX: filename generation for AFNI and PRELUDE
* FIX: improved slicer module autogeneration
* FIX: added missing options for BBRegsiter
* FIX: functionality of remove_unnecessary_ouputs cleaned up
* FIX: local hash check works with appropriate inputs
* FIX: Captures all stdout from commandline programs
* FIX: Afni outputs should inherit from TraitedSpec

Release 0.5.3 (Mar 23, 2012)
============================

* FIX: SPM model generation when output units is in scans

Release 0.5.2 (Mar 14, 2012)
============================

* API: Node now allows specifying node level configuration for SGE/PBS clusters
* API: Logging to file is disabled by default
* API: New location of log file -> .nipype/nipype.cfg

* ENH: Changing logging options via config works for distributed processing

* FIX: Unittests on debian (logging and ipython)

Release 0.5 (Mar 10, 2012)
==========================

* API: FSL defaults to Nifti when OUTPUTTYPE environment variable not found
* API: By default inputs are removed from Node working directory
* API: InterfaceResult class is now versioned and stores class type not instance
* API: Added FIRST interface
* API: Added max_jobs paramter to plugin_args. limits the number of jobs
       executing at any given point in time
* API: crashdump_dir is now a config execution option
* API: new config execution options for controlling hash checking, execution and
       logging behavior when running in distributed mode.
* API: Node/MapNode has new attribute that allows it to run on master thread.
* API: IPython plugin now invokes IPython 0.11 or greater
* API: Canned workflows are now all under a different package structure
* API: SpecifyModel event_info renamed to event_files
* API: DataGrabber is always being rerun (unless overwrite is set to False on
	   Node level)
* API: "stop_on_first_rerun" does not stop for DataGrabber (unless overwrite is
	   set to True on Node level)
* API: Output prefix can be set for spm nodes (SliceTiming, Realign, Coregister,
       Normalize, Smooth)

* ENH: Added fsl resting state workflow based on behzadi 2007 CompCorr method.
* ENH: TSNR node produces mean and std-dev maps; allows polynomial detrending
* ENH: IdentityNodes are removed prior to execution
* ENH: Added Michael Notter's beginner's guide
* ENH: Added engine support for status callback functions
* ENH: SPM create warped node
* ENH: All underlying interfaces (including python ones) are now optional
* ENH: Added imperative programming option with Nodes and caching
* ENH: Added debug mode to configuration
* ENH: Results can be stored and loaded without traits exceptions
* ENH: Added concurrent log handler for distributed writing to log file
* ENH: Reporting can be turned off using config
* ENH: Added stats files to FreeSurferOutput
* ENH: Support for Condor through qsub emulation
* ENH: IdentityNode with iterable expansion takes place after remaining Identity
       Node removal
* ENH: Crashfile display script added
* ENH: Added FmriRealign4d node wrapped from nipy
* ENH: Added TBSS workflows and examples
* ENH: Support for openfmri data processing
* ENH: Package version check

* FIX: Fixed spm preproc workflow to cater to multiple functional runs
* FIX: Workflow outputs displays nodes with empty outputs
* FIX: SUSAN workflow works without usans
* FIX: SGE fixed for reading custom templates
* FIX: warping in SPM realign, Dartel and interpolation parameters
* FIX: Fixed voxel size parameter in freesurfer mri_convert
* FIX: 4D images in spm coregister
* FIX: Works around matlab tty bug
* FIX: Overwriting connection raises exception
* FIX: Outputs are loaded from results and not stored in memory for during
       distributed operation
* FIX: SPM threshold uses SPM.mat name and improved error detection
* FIX: Removing directory contents works even when a node has no outputs
* FIX: DARTEL workflows will run only when SPM 8 is available
* FIX: SPM Normalize estimate field fixed
* FIX: hashmethod argument now used for calculating hash of old file
* FIX: Modelgen now allows FSL style event files

Release 0.4.1 (Jun 16, 2011)
============================

* Minor bugfixes

Release 0.4 (Jun 11, 2011)
==========================

* API: Timestamp hashing does not use ctime anymore. Please update your hashes by
       running workflows with updatehash=True option
       NOTE: THIS IS THE DEFAULT CONFIG NOW, so unless you updatehash, workflows will
       rerun
* API: Workflow run function no longer supports (inseries, createdirsonly).
       Functions used in connect string must be pickleable
* API: SPM EstimateContrast: ignore_derivs replaced by use_derivs
* API: All interfaces: added new config option ignore_exception
* API: SpecifModel no longer supports (concatenate_runs, output_specs). high_pass_filter
       cutoff is mandatory (even if its set to np.inf). Additional interfaces
       SpecifySPMModel and SpecifySparseModel support other types of data.
* API: fsl.DTIFit input "save" is now called "save_tensor"
* API: All inputs of IdentityInterfaces are mandatory by default. You can turn
       this off by specifying mandatory_inputs=False to the constructor.
* API: fsl FILMGLS input "autocorr_estimate" is now called "autocorr_estimate_only"
* API: fsl ContrastMgr now requires access to specific files (no longer accepts
       the result directory)
* API: freesurfer.GLMFit input "surf" is now a boolean with three corresponding
       inputs -- subject_id, hemi, and surf_geo

* ENH: All commandline interfaces display stdout and stderr
* ENH: All interfaces raise exceptions on error with an option to suppress
* ENH: Supports a plugin interface for execution (current support for multiprocessing,
       IPython, SGE, PBS)
* ENH: MapNode runs in parallel under IPython, SGE, MultiProc, PBS
* ENH: Optionally allows keeping only required outputs
* ENH: New interface: utility.Rename to change the name of files, optionally
       using python string-formatting with inputs or regular expressions matching
* ENH: New interface: freesurfer.ApplyMask (mri_mask)
* ENH: New FSL interface -- SwapDimensions (fslswapdim)
* ENH: Sparse models allow regressor scaling and temporal derivatives
* ENH: Added support for the component parts of FSL's TBSS workflow (TBSSSkeleton
       and DistanceMap)
* ENH: dcm2nii interface exposes bvals, bvecs, reoriented and cropped images
* ENH: Added several higher-level interfaces to the fslmaths command:
    - ChangeDataType, Threshold, MeanImage, IsotropicSmooth, ApplyMask, TemporalFilter
      DilateImage, ErodeImage, SpatialFilter, UnaryMaths, BinaryMaths, MultiImageMaths
* ENH: added support for networx 1.4 and improved iterable expansion
* ENH: Replaced BEDPOSTX and EddyCurrent with nipype pipelines
* ENH: Ability to create a hierarchical dot file
* ENH: Improved debugging information for rerunning nodes
* ENH: Added 'stop_on_first_rerun' option
* ENH: Added support for Camino
* ENH: Added support for Camino2Trackvis
* ENH: Added support for Connectome Viewer

* BF: dcm2nii interface handles gzipped files correctly
* BF: FNIRT generates proper outputs
* BF: fsl.DTIFit now properly collects tensor volume
* BF: updatehash now removes old result hash file

Release 0.3.4 (Jan 12, 2011)
============================

* API: hash values for float use a string conversion up to the 10th decimal place.
* API: Iterables in output path will always be generated as _var1_val1_var2_val2 pairs

* ENH: Added support to nipy: GLM fit, contrast estimation and calculating mask from EPI
* ENH: Added support for manipulating surface files in Freesurfer:
    - projecting volume images onto the surface
    - smoothing along the surface
    - transforming a surface image from one subject to another
    - using tksurfer to save pictures of the surface
* ENH: Added support for flash processing using FreeSurfer
* ENH: Added support for flirt matrix in BBRegister
* ENH: Added support for FSL convert_xfm
* ENH: hashes can be updated again without rerunning all nodes.
* ENH: Added multiple regression design for FSL
* ENH: Added SPM based Analyze to Nifti converter
* ENH: Added increased support for PyXNAT
* ENH: Added support for MCR-based binary version of SPM
* ENH: Added SPM node for calculating various threshold statistics
* ENH: Added distance and dissimilarity measurements

* BF: Diffusion toolkit gets installed
* BF: Changed FNIRT interface to accept flexible lists (rather than 4-tuples)
      on all options specific to different subsampling levels

Release 0.3.3 (Sep 16, 2010)
============================

* API: subject_id in ModelSpec is now deprecated
* API: spm.Threshold
  - does not need mask, beta, RPV anymore
  - takes only one image (stat_image - mind the name change)
  - works with SPM2 SPM.mat
  - returns additional map - pre topological FDR

* ENH: Added support for Diffusion toolkit
* ENH: Added support for FSL slicer and overlay
* ENH: Added support for dcm2nii

* BF: DataSink properly handles lists of lists now
* BF: DataGrabber has option for raising Exception on getting empty lists
* BF: Traits logic for 'requires' metadata
* BF: allows workflows to be relocatable
* BF: nested workflows with connections don't raise connection not found error
* BF: multiple workflows with identical nodenames and iterables do not create nestsed workflows

Release 0.3.2 (Aug 03, 2010)
============================

Enhancements
------------

  - all outputs from nodes are now pickled as part of workflow processing
  - added git developer docs

Bugs fixed
----------

* FreeSurfer

  - Fixed bugs in SegStats doctest

Release 0.3.1 (Jul 29, 2010)
============================

Bugs fixed
----------

* FreeSurfer

  - Fixed bugs in glmfit and concatenate
  - Added group t-test to freesurfer tutorial

Release 0.3 (Jul 27, 2010)
==========================

Incompatible changes
--------------------

* Complete redesign of the Interface class - heavy use of Traits.

* Changes in the engine API - added Workflow and MapNode. Compulsory name argument.

Features added
--------------

* General:

  - Type checking of inputs and outputs using Traits from ETS_.
  - Support for nested workflows.
  - Preliminary Slicer and AFNI support.
  - New flexible DataGrabber node.
  - AtlasPick and Threshold nodes.
  - Preliminary support for XNAT.
  - Doubled number of the tutorials.

* FSL:

  - Added DTI processing nodes (note that TBSS nodes are still experimental).
  - Recreated FEAT workflow.

* SPM:

  - Added New Segment and many other nodes.
  - Redesigned second level analysis.
