1. 12 Mar, 2019 1 commit
    • jcfr's avatar
      ENH: Update ITK from v4.13 to v5.0rc1, BRAINSTools and SimpleITK · bb4e7bb9
      jcfr authored
      To help extension developers transition their code base, a migration guide is also
      available on the wiki.
      See https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/MigrationGuide/ITK4-to-ITK5
      
      This commit implements the following changes
      
      * Compatibility with refactor of threading models in ITK: Fix compilation
        using ProcessingThreader class instead of PlatformMultiThreader.
        ITKv5 reorganized the multi-threading capabilities of ITK into a more modular organization
        and naming to support several modern parallelism paradigms.
      
        Note that these changes allow Slicer to compile with ITKv5, but does not take advantage
        of any enhancement supporting new threading models. ProcessingThreader
        is still the old-renamed PlatformMultiThreader.
      
        These changes were originally associated with PR https://github.com/Slicer/Slicer/pull/1057
      
      * Fix compilation issue related to ComputeJacobianWithRespectToPosition parameter mismatch.
      
        ITKv5 change the argument of some transform functions from JacobianType to JacobianPositionType.
        This fixes the new signatures.
      
        These changes were originally associated with PR https://github.com/Slicer/Slicer/pull/1055Co-authored-by: phcerdan's avatarPablo Hernandez-Cerdan <pablo.hernandez.cerdan@outlook.com>
      Co-authored-by: Hans Johnson's avatarHans Johnson <hans.j.johnson@gmail.com>
      Co-authored-by: Sam Horvath's avatarSam Horvath <sam.horvath@kitware.com>
      Co-authored-by: 's avatarJean-Christophe Fillion-Robin <jcfr@kitware.com>
      
      Highlighted changes
      -------------------
      
      SimpleITK (v1.1 -> v1.2):
      
      * Compatibility with ITKv5
      * New Filters: ObjectnessMeasuresImageFiler (Frangi's vesselness), IterativeInverseDisplacementFieldImageFilter,
        UnsharpMaskImageFilter, and RoundImageFilter.
      * Multi-resolution BSpline registration by adapting the BSplineTransform resolution in the ImageRegistrationMethod
      * Add support for multi-component images to ClampImageFilter, MeanProjectionImageFilter, SumProjectionImageFilter,
        and the TileImageFilter.
      * More information at: https://github.com/SimpleITK/SimpleITK/releases
      
      ITK (4.13 -> 5.0rc1):
      
      * Performance improvements:
        * N4BiasFieldCorrectionImageFilter accelerated through itk::ImageBufferRange and other optimizations.
        * Various modern C++ improvements related to default constructors and move operations.
        * ResampleImageFilter::CastPixelWithBoundsChecking is now faster.
        * Data copies in itk::BSplineTransform were reduced.
        * The number of evaluations in line search optimizer were reduced by half.
        * CanRead is now faster for inspection of potential DICOM files, both with the GDCM and DCMTK DICOM backends.
        * Add Frequency Domain Support for working with images in the dual domain, such as the output of FFT images.
        * A new Simple Linear Iterative Clustering (SLIC) super-pixel segmentation filter is available.
      * Completed transition to modern features introduced in c++11
      * Third Parties updated and full support for new ones, such as DCMTK and Eigen3.
      * More information at: https://github.com/InsightSoftwareConsortium/ITK/releases
      
      BRAINSTools (v4.7.1 -> v5.0.0):
      
      * Completed transition to modern features introduced in c++11
      * Bug fixes
      
      Complete list of changes
      ------------------------
      
      List of ITK changes:
      
      ```
      $ git shortlog 87f5d83..fec5de4 --no-merges
      Bai Shi (1):
            COMP: To fix compilation error of "cannot dynamic_cast 'x'
      
      Bradley Lowekamp (159):
            ENH: Adding more swap methods
            BUG: Respect Visibility Preset for initial template visibility
            COMP: Use explicit equality for boolean evaluation of real number
            BUG: Keep the SetSeed# methods in IsolatedConnectedImageFilter
            ENH: Use direct for loops for implementing image transformations
            ENH: Mark 2 template parameter ModulusTransform to be removed
            COMP: Remove legacy marking on definition of SetSeed methods
            STYLE: Use itk::v3 nested namespace for Rigid3DTransform
            BUG: Preserve option to use a "label value" mask and boolean mask
            ENH: update C+11 headers and try compile for headers
            ENH: Remove duplicated CMake module from upstream CMake
            COMP: Explicitly include the fixed width integer header before usage
            BUG: The CXX language must be enable to check compiler variables
            PERF: Support move semantics for ITK smart pointers
            ENH: Remove usage of SmartPointerForward reference
            ENH: Remove unneeded internal smart pointer type
            COMP: Require MSVC VS14 2015 for C++11 compatibility
            ENH: Use C++11 template alias for Image::Rebind
            STYLE: Use copy-swap idiom for SmartPointer
            ENH: Use std::unique_ptr over itk::AutoPointer
            DOC: Document additional MaskValue variable
            BUG: remove unused cmake CXX try compile file
            BUG: Remove un-configured and unused CMake configure define
            BUG: Improve Doxygen extraction with blank line
            ENH: Remove TEMPLATED_FRIEND macro and try compile
            ENH: Replace optional tr1 type_traits with c++11 standard
            ENH: Assume c++11, remove configure defines for optional TR1 features
            ENH: Only use std::atomic implementation for AtomicInt class
            ENH: Add direct SmartPointer conversions to match raw Pointers
            PERF: Use emplace when inserting into map for ProcessObject
            ENH: Create virtual interface for the MultiTheader
            ENH: Trying out the ThreadPool as a separate MultiThreader
            BUG: Fix uninitialized cross structuring element buffer
            BUG: Disable ThreadPools by default
            COMP: Add forward declaration of ExceptionObject in Macro.h
            COMP: Add forward declaration of ExceptionObject in Macro.h
            ENH: Use gtest_discover_tests if available
            DOC: Watershed filters is not stream-able
            COMP: Use nullptr over 0 for null pointer
            STYLE: Use SmartPointer direct conversion constructors
            Revert "BUG: Disable ThreadPools by default"
            BUG: Actually disable ThreadPools by default
            COMP: Suppress warning on CircleCI about itkIndex out of bounds
            ENH: Update CircleCI external data cache
            ENH: Address incorrect types with neighborhood iterator base class
            COMP: Make MirrorPadImageFilter::DelayBase a conventional parameter
            PERF: remove virtual methods in neighborhood iterators
            ENH: Add ITK_ITERATOR_FINAL
            ENH: Use named inputs for the PasteImageFilter
            PERF: Remove iterators stored as member variables
            BUG: Add specification of OutputImage Type for TobogganImageFilter
            ENH: Improve numerics of resampling for linear transform
            COMP: Fix gcc 4.8 initialize warning
            ENH: Add baseline image to sporadically failing test
            ENH: Adding Unary and Binary GeneratorImageFilter
            ENH: Convert functor based filters to generator
            ENH: Update internal filters to use BinaryGereratorImageFilter
            ENH: Updating Functor filter with parameters to the new Generator
            COMP: Address Generator filters destructors warning
            DOC: Fix BSplineDecompositionImageFilter Doxygen see also link
            ENH: reuse default splitter
            BUG: revert thread update to BSplineScatteredDataPointSetToImageFilter
            ENH: Update CircleCI CMake version to 3.11.2
            BUG: Correct detection of most recent data file
            ENH: Improve numeric computation of linear interpolation for Resample
            ENH: Update baseline image for ResampleImageFilter3Test1
            BUG: Add 4 pixel tolerance to ResampleImageFilter3Test1
            BUG: Prevent concurrent read/write in output image
            BUG: Handle case where output image is zero sized
            BUG: Add missing dependencies in Module testing
            ENH: Remove  SPECIFIC_IMAGEIO_MODULE_TEST feature
            BUG: Fix name typo for ITK_GLOBAL_DEFAULT_THREADER
            BUG: Fix incorrect library variable for MeshIO test drivers
            ENH: Create TestKernel library
            ENH: Add SLIC segmentation to new Superpixel module
            COMP: Fix C++11 compatibility with assert in constexpr
            COMP: Use std::min over vnl_math_min
            BUG: Fix index type and and number of indexes
            BUG: Add alternate baseline itkSLICImageFilterTest1 test
            ENH: Update test output to include test name
            BUG: improve numeric consistency in linear algorithm
            COMP: Add missing overrride to virtual destructor
            COMP: Remove unused testing function and headers
            BUG: Finish updating to ScanlineIterator in nonlinear method
            ENH: Update SLIC filter to use new ITK threading model
            ENH: TileImageFilter learns to use VectorImages
            COMP: remove duplicate declaration of TempImageType
            DOC: Add link to published Insight Journal paper
            ENH: Update CenteredTransformInitializer print self method
            PERF: Remove internal streaming in DiscreteGaussianImageFilter
            ENH: Update MinimumMaximumImageFilter to use dynamic threading
            ENH: Update StatisticsImageFiler to use DynamicThreadedGenerateData
            ENH: Add compensated summation to the StatisticsImageFitler
            BUG: Use pip to install cmake
            PERF: Use the recursive Gaussian filter in registration method
            BUG: Add additional baseline for debug
            COMP: Length GTest discovery timeout
            BUG: Correct image used for debug SimpleImageRegistrationTest
            BUG: Add cxx suffix to specified source GTest code
            ENH: Consistently use default OutputWindow for messages
            BUG: Explicitly set sampled pointset in virtual domain
            ENH: Use std::enable_if and std::is_same in  filters
            PERF: Memory alloc reduction in ComputeJacobianWithRespect
            PERF: Improve MatrixOffset Jacobian computation performance
            COMP: Address signed to unsigned comparison warning
            STYLE: Cleanup development comments
            PERF: perform matrix multiplication in-place for composite Jacobian
            ENH: Provide explicitly instantiated vnl_svd_fixed
            PERF: Change type of Jacobian w.r. position to vnl_matrix_fixed
            PERF: Change the purpose of the cache jacobian argument
            DOC: Improve Extract exception for region size mismatch
            BUG: Print ImageIOBase::m_Spacing
            BUG: Fix TIFFImageIO spacing for multi-page
            BUG: Support ITK transform files with corrected group names
            ENH: Only use one Work Unit in BSpline convergence checker
            BUG: Fix HDF5ImageIO reporting any HDF5 file is readable
            ENH: Improve N4BiasFieldCorrectionImageFilter
            ENH: Add extensions to HDF5ImageIO
            ENH: Add ImageIO methods to check name for file extensions
            BUG: Quiet HDF5-DIAG from H5File::isHdf5
            ENH: Update LabelStatistics to use dyanmic threading
            ENH: Move JPEG200 ImageIO into separate ImageIO module
            BUG: Update SCIOFIO to ITKv4.13 branch
            ENH: Make ProcessObject::VerifyInputInformation constant
            BUG: Handle boundary case with max metric
            PERF: Reduce number of evaluations in line search optimizer by half
            COMP: Fix unused argument warnings in SpatialObjectPoint::operator=
            BUG: Handle boundary case with max metric
            ENH: Update ImageToHistogram to use modern dynamic threading.
            PERF: implement concurrent histogram merge/reduce
            BUG: Fix move of histogram smart pointer
            BUG: Add parameter which stores the requested number of work units.
            BUG: use =default for default implementation of destructor
            BUG: Prevent square root of negative number
            BUG: Check all entries are not null
            STYLE: Prefer immediate exception over long if
            BUG: Fix sqrt of negative values
            BUG: Address valgrind leaks for classes which use ScanlineFilterCommon
            BUG: Limit number of threads used for testing ITK
            ENH: Replace centered transforms with non-centered versions
            BUG: Remove static member function variable
            DOC: Fix LBFBS2 typo
            BUG: Remove static member function variable
            BUG: Fix multi-resolution bspline registration example
            BUG: Adding updated baseline image for improved example
            DOC: Fix typos in LBFGS2 optimizer's error string
            ENH: On Azure DevOps only show test output on failure
            STYLE: Use GTest file name suffix for Google Test based tests
            BUG: Remove unused TRansfromDomainDirectionInverse IVAR
            BUG: Synchronize BSpline MeshDomain parameters from fixed params
            ENH: Adding GTest for  BSplineTransform
            ENH: Create method to set transform domain params from coeff images
            BUG: Synchronize BSpline MeshDomain parameters from fixed params
            ENH: Refactor BSplineTransform
            DOC: Update the BSplineTransform class doxygen
            ENH: Update N4BiasField to utilized named positional inputs
            COMP: Addressed unused parameter warning in ImageRegion default
            BUG: Use compatible ITKv4 computation
            BUG: Fix Ostu test to work with ITKv4 default options
      
      Brian Avants (1):
            PERF: Only throw exception if zero valid points
      
      Brian Helba (1):
            BUG: Ensure that itkSampleToHistogramFilterTests fail on errors
      
      Bryce A Besler (1):
            ENH: Move DiscreteGaussianDerivativeImageFilter from Review to ITKImageFeature
      
      Chao Wu (2):
            ENH: Enable writing scl_slope and scl_inter in NIfTI header
            BUG: Missing SetCPUBufferPointer in GPUImage<...>::SetPixelContainer(...)
      
      Dženan Zukić (169):
            ENH: updating SphinxExamples and pointing to GitHub
            COMP: Get rid of warning about registry key
            STYLE: minor fixes
            BUG: duplicator crashes if buffered region is smaller than largest region
            STYLE: reducing code duplication and cleaning up method documentation
            ENH: adding itkReviewPrintTest to tests. It existed but was not invoked.
            COMP: turn FEM off by default, as it takes a long time to build
            COMP: fixing compiler warnings
            ENH: making ITKBioCell and ITKNeuralNetworks remote modules
            COMP: fixing configure error
            COMP: long paths are not yet supported by all the tools in the build chain
            COMP: using ITK_DELETED_FUNCTION, and more consistent override specifier
            ENH: simplify code and properly support long long type
            COMP: fix compile warning
            STYLE: avoid redirect for repository address in DVMeshNoise
            ENH: update remote modules to require CMake 3.9.5
            BUG: fixing crash in test
            ENH: Remove ITKFEMRegistration from default configuration
            ENH: Fixing error and improving examples' test
            ENH: Use MultiThreaderBase
            STYLE: reducing duplication and removing commented code in DistanceMap tests
            STYLE: fixing typo
            BUG: more reliably detect Windows+DLLs case
            ENH: enable thread pool by default
            ENH: adding exponential decay option to MirrorPadImageFilter
            BUG: Set/GetGlobalDefaultNumberOfThreads was forgotten in legacy #ifdef
            BUG: fixing Windows+DLL ThreadPool sporadic destructor hanging
            COMP: Using MultiThreaderBase, avoids legacy warning
            BUG: fixing null pointer dereference in PreOrderTreeIterator<>::Next()
            ENH: start migration guide document
            STYLE: increasing initial size of the debug window
            BUG: fixing null pointer dereference at the end of iteration
            COMP: reducing direct usage of MultiThreader
            BUG: remove observations in FilterWatcher's destructor
            ENH: support Unicode characters in class documentation
            BUG: fixing index computation in resample filter
            ENH: reducing code duplication in FilterWatcher
            ENH: refactoring MultiThreader infrastructure
            ENH: deciding which filters can use the new threading model
            ENH: reporting progress
            ENH: simplifying Canny filter by using new threading infrastructure
            STYLE: Renaming MultiThreader to PlatformMultiThreader
            ENH: use C++11 thread primitives instead of SpawnThread
            COMP: improve backwards compatibility by retaining the renamed header
            ENH: Add TBB-based multi-threader
            ENH: refactoring filters to avoid use of memory barrier
            ENH: reworking logic for determining default multi-threader
            COMP: fixing compile error on GCC 4.8.5 20150623 (Red Hat 4.8.5-28)
            STYLE: remove outdated and useless comments from VectorExpandImageFilter
            ENH: add a baseline for QuickViewTest.png (Win7x64+VS2017+VTK8.1OpenGL2)
            STYLE: reduce number of lines by removing unnecessary empty lines
            DOC: document FilterWatcher removal
            ENH: adding an .editorconfig file to aid IDE's code formatting options
            BUG: forgotten #ifdefs for ITK_LEGACY_REMOVE
            ENH: adding debugger help files for Visual Studio 2017
            ENH: moving .clang-format file into the root folder,
            ENH: using the new threading mechanism for FFT module
            ENH: explicitly setting threading model in each multi-threaded filter
            ENH: support classic ThreadedGenerateData via ITK_CLASSIC_THREADING_MODEL
            BUG: fixing a test which has been failing since multi-threading refactoring
            ENH: updating baselines for itkBSplineScatteredDataPointSetToImageFilterTest*
            COMP: fixing 2 compile warnings
            STYLE: renaming migration guide document
            ENH: extending migration guide with threading refactoring instructions
            ENH: reducing redundancy in itkLandmarkBasedTransformInitializerTest
            ENH: eliminate CMake option ITK_CLASSIC_THREADING_MODEL
            STYLE: a more direct link (after PR has been merged)
            STYLE: update clang-format configuration
            ENH: adding ParallelizeArray method to MultiThreaderBase
            COMP: fixing warning in external module
            COMP: Address usage of deleted assignment operator
            ENH: more thorough removal of deprecated "multiple method"
            DOC: add compatibility warning to Barrier
            STYLE: initializing SingleMethod/SingleData in base class
            DOC: merging instructions from itkMultiThreader.h into migration guide
            ENH: rename NumberOfThreads into NumberOfWorkUnits in filters
            ENH: Add backwards compatibility for Get/SetNumberOfThreads
            ENH: renaming NumberOfThreads into NumberOfWorkUnits in MultiThreaderBase
            ENH: adding backwards compatibility for MultiThreaders
            ENH: default number of work units is greater than default number of threads
            COMP: fixing compile warning on GCC 4.8
            ENH: rewriting thread pool to take advantage of C++11
            ENH: implement Parallelize Array and ImageRegion in PoolMultiThreader
            COMP: SmoothingRecursiveYvvGaussianFilter compiles with new ITKv5 threading
            ENH: RGB/RGBA consistency, operator / and remove comments from implementation
            ENH: refactoring RecursiveSeparableImageFilter to use new threading
            ENH: updating MCI: adjusting to split between threads and work units in ITKv5
            ENH: compute spacing using n-1 instead 2-1 in ImageSeriesReader
            BUG: updating the HDF5 symbol mangling
            ENH: fix reading of oblique image series
            BUG: fixing crash in ThreadPool's destructor
            COMP: fixing warning about shadowed global
            COMP: avoid warning with CMake 3.12 and newer regarding policy CMP0075
            ENH: write format which is backwards-compatible with HDF5 version 1.8
            ENH: refactoring BinaryImageToLabelMapFilter to use the new threading model
            ENH: adding ProgressTransformer
            ENH: proper backwards compatibility to HDF5 1.8
            STYLE: fixing 'No new line at the end of file'
            ENH: adding short description of split between threads and work units
            ENH: rewriting BarrierTest to work with any MultiThreader
            ENH: cause compile error with HDF5 version 1.10.0 and 1.10.1
            ENH: restore BeforeThreadedGenerateData method
            DOC: state that SetRecursive must be called before SetInputDirectory
            BUG: updating the symbol mangling list
            BUG: removing mangling of unversioned variant of versioned definitions
            ENH: update migration guide: prefer C++11 classes over ITK's
            ENH: cleaning up ProcessObject
            ENH: using progress transformer in recently refactored classes
            COMP: fixing LoggerBase to compile even when DEBUG is defined
            DOC: ProgressReporter should be replaced by ProgressTransformer
            ENH: code simplification and more granular progress reporting
            ENH: return bin maximum as threshold
            STYLE: removing void if used in place of empty parameter list
            ENH: update remote module MorphologicalContourInterpolation
            BUG: nbOfThreads was bounded to GlobalMaximumNumber, but not work units
            ENH: Ignore current load in PoolMultiThreader
            COMP: missing ConstPointer declaration
            BUG: fix crash in RegionGrowingBenchmark
            ENH: reducing duplication in 4 scanline-based image filters
            ENH: use scanline iterators and clean up the code a little
            COMP: fix [-Wc++11-narrowing] in initializer list during Python wrapping
            ENH: refactor ConnectedComponent to not use Barrier. Also reduce duplication.
            STYLE: aligning macro continuation backslash
            COMP: fixing unused variable warning
            COMP: add Python wrapping for ScanlineFilterCommon
            ENH: updating remotes to their latest versions
            DOC: mentioning ITKV4_COMPATIBILITY in the migration guide
            COMP: minor fixes in preparation for deprecating atomic, mutex and friends
            ENH: updating remotes to latest versions
            ENH: using standard library's mutex primitives
            ENH: deprecating functionality which exist in C++11 standard library
            COMP: missing #include <condition_variable>
            BUG: clamp work units to ITK_MAX_THREADS in Platform and Pool MultiThreaders
            BUG: fix Python wrapping after deprecating MutexLock and friends
            ENH: adding new remote modules: Montage and BSplineGradient
            DOC: fixing copy-paste error about functor type
            ENH: improve precision of median calculation by default
            STYLE: minor space and line break improvements
            ENH: FrequencyBandImageFilter derives from UnaryFrequencyDomainFilter
            ENH: ITKv5_CONST macro for VerifyPreconditions() and VerifyInputInformation()
            ENH: ITKv5_CONST macro for VerifyPreconditions() and VerifyInputInformation()
            BUG: background label could be the same as one of the object labels
            COMP: fix compiler warning in itkIndexRange.h
            ENH: adding wrapping for UnaryFrequencyDomainFilter
            DOC: updating commit information for ITKv5_CONST in ITK 4.13.x
            ENH: commit message script uses GitHub issue referencing format.
            ENH: update Montage remote module
            BUG: test image was not properly initialized. Closes #207.
            COMP: fixing compile errors on Ubuntu 16.04 with GCC 5.4.0
            ENH: compile VNL in parallel on Visual Studio
            COMP: fix compile errors with CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON
            COMP: Remove VNL_EXPORT from header only class. Closes #191.
            COMP: fix CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
            COMP: fix link errors coming from undefined static constexpr member
            STYLE: rename template parameter TMatrixDimension into VDimension
            DOC: EigenValues parameter uses operator[], not operator[][]
            COMP: compile with Visual Studio in conformance mode AKA /permissive-
            COMP: moving the default constructor of vnl_matrix from .h into .hxx
            STYLE: removing empty lines between comments and constructors
            ENH: enable progress reporting with ITKV4_COMPATIBILITY. Closes #228.
            ENH: updating ITKMontage module
            DOC: trying to fix the doxygen warning
            ENH: Updating Visual Studio debug visualizer definitions
            DOC: removing long outdated comment
            ENH: updating Montage module
            STYLE: minor fixes to release notes
            COMP: a fix for system double-conversion build
            ENH: updating Montage: fix double-conversion include directory
            ENH: update ITKMontage: Fix crash when setting tiles from memory
      
      Eigen Upstream (2):
            Eigen3 2018-11-19 (493fa50e)
            Eigen3 2019-01-14 (16812519)
      
      Francois Budin (30):
            BUG: Update ITK test files SHA and debug ContentLinkSynchronization.sh
            ENH: Bump ITK version to 5.0.0.
            ENH: lifting path length limitation on Windows 10 version 1607+
            BUG: Remove bad guards stopping inclusion of necessary hxx file
            BUG: Remove extern "C" call to include <cstring>
            BUG: Initializes CMAKE_DEBUG_POSTFIX to be empty
            DOC: Remove CMake comments mentioning CMake 3.4
            DOC: ITK_CONSTEXPR* and ITK_HAS_CXX11_RVREF are deprecated
            BUG: DCMTK builds fails with ICU ON on Linux and Mac
            BUG: LabelErodeDilate remote module repositories are out of sync
            BUG: Projects could not link to DCMTK on Windows and MacOS
            DOC: Add missing documentation for `github_compare` option
            ENH: Update CMake code to use IN_LIST (CMake >= 3.3)
            BUG: Update LabelErodeDilate
            ENH: Compile ITK with MKL (FFTW) installed on system
            BUG: Update ParabolicMorphology remote module
            ENH: Sync ThreadPool and MultiThreaderBase global variables across modules
            BUG: Add function to not wait for threads when destroying thread pool
            BUG: Improvements to ITK NumPyBridge
            DOC: Improve exception message to precise what image sizes can be processed
            BUG: THEADER instead of THREADER
            BUG: Disable using mkl_tbb_thread
            ENH: Adding IOOpenSlide ImageIO remote module to ITK
            BUG: WRAP_2 is a local variable, not a CACHE variable
            BUG: Wrong path to baseline images
            ENH: Allow selecting ImageIO in Python template code
            ENH: Support loading image series in itkTemplate.
            ENH: `itk.imread()` now supports image series
            ENH: Support for tuples passed as arguments through itkTemplate New() function
            BUG: Missing ITK_WRAP_rgba_* variables in WrapITKConfig.cmake.in
      
      GCC-XML Upstream (1):
            ENH: pygccxml develop (reduced)
      
      GDCM Upstream (3):
            GDCM 2018-05-23 (69cb71a4)
            GDCM 2018-11-05 (3ffbf1ed)
            GDCM 2018-11-30 (ec82fb48)
      
      Gabriel A. Devenyi (1):
            PERF: Enable MINC internal compression by default
      
      Gregory C. Sharp (1):
            DOC: Fix misspelling of vertices
      
      HDF5 Maintainers (3):
            HDF5 2016-05-10 (7453bbef)
            HDF5 2018-07-20 (bed5b207)
            HDF5 2018-08-22 (08d77e43)
      
      Hans Johnson (164):
            ENH: Update Wiki examples for latest code changes
            COMP: Remove override warnings
            ENH: Cuberille future compilation deprecations
            ENH: Strain future compilation deprecations
            COMP: TwoProjectionRegistration Future proof code
            COMP: LevelSetsv4 used deprecated api
            COMP: N4 remove testing of deprecated SetMaskLabel
            BUG: Provide consistent GetOutput behavior
            BUG: GetModifiableTransformList needs to always be available
            BUG: Restore backwards compatibility
            DOC: Remove ITKv3 to ITKv4 migration documentation.
            COMP: Provide migration documentation old macros
            STYLE: Remove deprecated code directory contents
            STYLE: Remove all vestiges of ITKv3 code
            STYLE: Remove legacy code for ITKv5 starting
            ENH: Revert to include itkv3::Rigid3DTransform
            STYLE: Move Future deprecated to deprecated
            BUG: Restored testing for long HistorgramMatching
            COMP: Remove unnecessary conditional tests
            COMP: Force using lower deployment targert for fftw
            COMP: Use C++ headers over C headers
            COMP: Set ITK_VERSION_MAJOR to 5
            STYLE: Fix header guard format
            COMP: Remove ITK_USE_STRICT_CONCEPT_CHECKING flag
            ENH: Set cmake Minimums to 3.9.5
            COMP: Change min cmake version to 3.9.5 for circleci
            COMP: Directly use cmake compiler_detection.h
            STYLE: Fix typo requireing -> requiring
            COMP: Consistently set use of CMake 3.9.5 and options
            COMP: Enforce building ITK with C++11
            COMP: Modularize cmake config like VTK.
            COMP: Use C++ headers over C headers (part 2)
            ENH: Scripts used during ITKv5 migration
            STYLE: Remove conditional version 201103L code
            COMP: Need to match type for different threaders
            COMP: Preparing for ITKv5 by adding override
            COMP:  Use C++11 override directly
            STYLE: Use override statements for C++11
            COMP:  Use C++11 ITK_NULLPTR directly
            COMP: Use nullptr instead of 0 or NULL
            STYLE: Prefer nullptr for C++11
            COMP:  Use C++11 nullptr directly
            BUG: VXL visibility must match ITK visibility
            COMP:  Use C++11 = delete directly
            COMP:  Use C++11 constexpr directly
            STYLE: ITK_COMPILER_CXX_CONSTEXPR is always true
            BUG: Missing external linkage options for float and double.
            COMP: Remove deprecated C++ 11 features
            ENH: ReplaceitkGetObjectMacro.sh used during ITKv5 migration
            ENH: Update SeveralRemotes to latest version.
            COMP: Suppress invalid warning
            STYLE: Remove outdated conditional code
            STYLE: Remove unnecessary old CMakeCode
            ENH: Remote for SmoothingRecursiveYvvGaussianFilter
            STYLE: Prefer C++11 type alias over typedef
            BUG: Type alias errent typo in name
            BUG: ConceptChecking type matching failed.
            STYLE: Remove ITK_HAS variables that should not be defined
            COMP: Allow using cmake 3.9.5 default for RPATH setting
            STYLE: Replace itkStaticConstMacro with static constexpr
            BUG: Propagate C++11 requirements to external project
            STYLE: Prefer constexpr for const numeric literals
            STYLE: Use range-based loops from C++11
            PERF: Allow compiler to choose best way to construct a copy
            PERF: Replace explicit return calls of constructor
            STYLE: Use auto for variable creation
            BUG: Restore ITK.kws.xml preferences
            ENH: Provide advanced development mode for writing GTests
            COMP:  Use C++11 noexcept directly
            ENH: Use simplified/natural conversion to const pointer
            ENH: Use natural ConstPointer conversion
            STYLE: Use override statements for C++11
            COMP:  Use C++11 noexcept directly
            ENH: Add google test for itkIndex.h
            ENH: Make const operator[] conform to standards
            STYLE: Change aggregate classes to mirror std::array
            ENH: Update all remote modules with C++11 conformance
            BUG: New SmartPointer conversion ambiguity
            BUG: Error in ITK_VERSION construction
            ENH:  Add introspection into the build process
            COMP: Silence warning of mismatched signs.
            ENH: Bring in C++11 updates for ITKBridgeNumPy
            STYLE: Do not use itkGetStaticConstMacro in ITK
            COMP: Make member name match kwstyle requirements.
            BUG: Add ability to construct SmartPointer with NULL
            BUG: Update NULL pointer patch with final fixes
            COMP: std::bind2nd deprecated C++11, remove C++17
            COMP: Improve variable naming for m_DerivativeOperator
            STYLE: Use C++11 override keyword directly
            STYLE: Use C++11 override keyword directly
            ENH: Add compression option for Transform files
            COMP: Address type mis-match compiler warning
            COMP: Remove unused variable warning
            ENH: HDF5 moved from svn to git
            ENH: Update HDF5 import script for 1.10.2
            ENH: Remove svn version of hdf5 files not added by import from git
            STYLE: Consistently name for ITK conventions
            BUG: Fixing the HDF5 internal path names tests
            COMP: Fix const assignment error in testing
            COMP: Prefer snprintf to avoid buffer overruns
            STYLE: Use modern C++11 =delete to indicate not implemented
            ENH: Update KWStyle hash to build latest updates
            STYLE: Prefer error checked std::stoi over atoi
            BUG: GE4IO atoi failures resulted in implicit 0 image slices
            BUG: Commandline arguments were not properly processed
            BUG: atoi failure => 0 hid processing failures
            BUG: Command line parsing silently failed
            STYLE: Prefer error checked std::stod over atof
            BUG: Failed conversion to float with uncaught failure
            STYLE: Pefer = default to explicitly trivial implementations
            COMP: Use nullptr instead of 0 or NULL
            STYLE: Replace defines with constexpr and using statements
            COMP: Fix VS2017 compilation regression
            COMP: Use static method from class directly
            STYLE: Remove support for pre 20160229 VXL_VERSION_DATE_FULL
            STYLE: Decouple matlab printing explicit instantiations
            ENH: Adding explicit instantiations for dimensions 1-10
            COMP: Remove duplicate explicit instantiations
            COMP: Remove unused variables.
            BUG: vidl_itk_istream does not override an ITK object
            ENH: Use C++11 override for overridden functions.
            STYLE: Remove unnecessary vcl_XXX.h headers
            ENH: Add scripts to assist with migrations
            ENH: Adding a few more clang tidy checks.
            BUG: Do not override user selection settings
            ENH: Update to require VXL 2.0.0 or later
            STYLE: Remove unused include headers
            ENH: Provide mechanism for changing git remote url
            COMP: Many of the remotes require updates for ITKv5
            STYLE: Remove VCL_INCLUDE_CXX_0X outdated reference.
            ENH: Add specification for -D__clang__ to clang-tidy
            PERF: emplace_back method results in potentially more efficient code
            STYLE: Replace integer literals which are cast to bool.
            ENH: Fetch upstream as part of setup.
            ENH: Stop abort on first failure.
            BUG: Default commit message fixed for =delete modernization
            ENH: Provide consistency with C++11 core guidelines
            BUG: Missing default argment override
            ENH: VXL 2.0.0 provides all instantiations needed by ITK
            ENH: Fix deficient itkCastImageFilter test
            STYLE: Minor variable naming and readability changes.
            COMP: Provide conversion range testing valid_static_cast function
            ENH: Increase minimum VXL version to 2.0.1 for wrapping
            ENH: REVERT compile VNL in parallel on Visual Studio
            ENH: Require VXL v2.0.2 release.
            ENH: Increase size attribute for large third party file.
            STYLE: Remove VXL_VERSION_DATE_FULL conditionals
            COMP: Remove duplicate explicit instantiation
            ENH: Provide range for non-warned cmake versions
            ENH: Update the GIFTI codebase
            DOC: Typo: @tparam -> @param fix doxygen generation
            DOC: Improved documentation for the migration guide
            ENH: Manually update nifti version from github
            ENH: Employ the `rule of zero` for aggregate types
            STYLE: Use default member initialization
            STYLE: Remove the register keyword
            ENH: NIFTI needs to be part of ITKTargets
            STYLE: rm initializer list extra lines
            ENH: DCMTK 3.6.4 api changes accomodated
            ENH: Move default [con/de]strutor to .h
            COMP: Protected static function must be public
            PERF: GDCM & DCMTK CanRead fails very slowly for non-DICOM files.
            PERF: readability container size empty
            STYLE: Prefer = default to explicit constructor(){}
      
      Hastings Greer (1):
            ENH: Add wrapping for Labeled PointSet to PointSet registration classes
      
      Hui Xie (1):
            BUG: The Z spacing was set using thickness
      
      Isaiah Norton (3):
            PERF: improve DCMTKFileReader::CanReadFile perf
            BUG: prevent segfault when transform reader fails to load .mat
            BUG: don't quote argument to URL_HASH for FFTW
      
      Jean-Christophe Fillion-Robin (3):
            BUG: Prevent gdcm "missing implementation" error on macOS
            STYLE: MeshIO: Introduce ITKIOMeshBase module. See #3393
            BUG: Refactor itkFloatingPointExceptions to fix macOS support
      
      Jon Haitz Legarreta (16):
            STYLE: Fix typo in itk::VariableLengthVector struct name.
            ENH: Set the InsightSoftwareConsortium repo as the remote.
            STYLE: Improve itkHoughTransform2DLinesImageFilter style.
            DOC: Add different GitHub badges to the `README.md` file.
            DOC: Change the ITK Git tips wiki page reference for Git scm website.
            DOC: Add commands in a `Review` section to the ITK Git cheat sheet.
            DOC: Change the `ITKGitCheatSheet.tex` file tittle.
            DOC: Make references to ITK issue tracking system consistent.
            DOC: Update the ITK logo files in `Documentation` folder.
            DOC: Remove PSD files containing old ITK logo.
            BUG: Address use of CMake variables in CMakeLists.txt.
            COMP: Set the minimum required CMake version to 3.10.2.
            STYLE: Stick to the ITK style guidelines.
            COMP: Bump the remote modules' versions after the CMake ver update.
            ENH: User initialization lists over direct assignment.
            ENH: Improve itkEuclideanDistancePointMetric coverage.
      
      Jon Haitz Legarreta Gorroño (41):
            BUG: Fix bug in class LaTeX documentation Doxygen link.
            BUG: Fix unnecessary explicit itk namespace mention in Doxygen link.
            DOC: Remove redundant ellipsis after "etc." in LaTeX doc.
            DOC: Remove unnecessary EOF comments.
            DOC: Make namespace closing bracket comments consistent.
            DOC: Fix typo: substract to subtract.
            DOC: Remove unnecessary ifdef and class ending comments in FEM.
            DOC: Remove non-existing namespace comment.
            ENH: Add a code of conduct to the ITK project.
            ENH: Bump latest version of the ITKSplitComponents remote module.
            DOC: Remove unnecessary Doxygen \ref keyword in module crossrefs.
            DOC: Remove crossrefs to non-existing classes.
            DOC: Improve the ISSUE_TEMPLATE.md markdown file contents.
            DOC: Change the term `mailing list` in README.md.
            DOC: Fix syntax mistake in `Sharing Data` section of CoC.
            DOC: Fix typos in class doc.
            STYLE: Update the wrap files to match current CMake syntax.
            DOC: Fix typo.
            COMP: Use and move ITK_DISALLOW_COPY_AND_ASSIGN calls to public section.
            ENH: Update the WikiExamples remote module commit hash.
            COMP: Bump the remote modules' versions.
            DOC: Fix miscellaneous typos.
            ENH: Add the ITK BoneMorphometry module as a remote.
            COMP: Bump remote modules versions.
            ENH: Clean up itkGrayscaleMorphologyImageFilter tests.
            ENH: Increase itk::OtsuMultipleThresholdsImageFilter coverage.
            COMP:  Use C++11 nullptr directly
            DOC: Fix incorrect class ref for Doxygen.
            ENH: Bump remote modules to their latest commits.
            ENH: Increase coverage for itk::GrayscaleFillholeFilterImage.
            DOC: Update the documentation concerning binary data.
            DOC: Format remote module documentation README to markdown.
            ENH: Update the SmoothingRecursiveYvvGaussianFilter remote module hash.
            DOC: Point to the ITK git cheat sheet in the repository.
            DOC: Fix the ITK Git cheat sheet file link.
            ENH: Add script to priviledge C++11 type alias over typedef.
            DOC: Advise users to delete the PR template in message.
            DOC: Move the issue and pull request templates to a specialized folder.
            ENH: Remove `FindITKPythonLibs.cmake` file.
            ENH: Follow remote repositories name changes.
            DOC: Adjust the CoC Committe to the 01/09/2019 meeting decision.
      
      KWSys Upstream (2):
            KWSys 2018-01-08 (f7990fc2)
            KWSys 2018-06-01 (8ef62b28)
      
      Kwame Kutten (2):
            BUG: Removed quotes from fftwf and fftwd hashes
            ENH: Make StatisticsImageFilter returns Sum Of Squares
      
      Lucas Gandel (2):
            ENH: include WrapITKConfig for external module
            ENH: Allow for itk::ImageSource wrapping override
      
      Marcus D. Hanwell (1):
            DOC: Add GitCheatSheet sources
      
      Marian Klymov (1):
            ENH: Mark copy constructor of ExceptionObject and derived classes noexcept.
      
      Martino Pilia (1):
            BUG: fix itkFormatWarning in Python wrapping
      
      Matthew McCormick (197):
            BUG: Remove ITKTubeTK remote
            ENH: Add PolarTransform remote module
            COMP: Do not use absolute path to TestBigEndian.cmake in GDCM
            COMP: Enable pthreads shim with Emscripten
            COMP: Specify OutputImageType for boundary conditions in FFTPadImageFilter
            COMP: Update DCMTK to 2018.01.16 and support Emscripten
            COMP: Fix cross compiling DCMTK
            BUG: Do not set DCMTK_WITH_XML to ON in DCMTK configuration
            COMP: itk::Math perfect forward return type
            BUG: Do not segfault when trying to use PDEDeformableRegistrationFilter
            COMP: Ensure CastXML uses C++11 with GCC or Clang
            COMP: Remove legacy BackTransform methods from Rigid3DTransform
            COMP: Explicitly add NumericTraits::max to the API
            COMP: Address SG line length warnings in DataRepresentation, Filtering
            DOC: Update README Software Guide link
            DOC: Update Discussion link in the README
            ENH: Add banner to the README
            COMP: Bump KWStyle to 2018-02-22 master
            COMP: Add missing wrapping for MultiThreaderBase
            COMP: Do not wrap methods with ?unknown? type
            COMP: Add missing itkSimpleFastMutexLock headers
            ENH: Import the ITKBridgeNumPy module
            BUG: GetArrayFromImage calls UpdateLargestPossibleRegion
            BUG: Add missing wrapping for PoolMultiThreader
            BUG: Exclude MultiThreaderBase from GetNameOfClass test
            COMP: Add SimpleFastMutexLock include to ESMDemonsRegistrationFunction
            BUG: Cast to correct iterator type in PeriodicBoundaryCondition
            BUG: Fix casting in PeriodicBoundaryCondition
            BUG: Bump KWStyle for C++11 brace list initialization support
            BUG: Fix MeshFileWriter export specification
            ENH: Create ITKIOMeshVTK module
            COMP: ExceptionObject declaration must come before usage
            ENH: Migrate BYU IO into ITKIOMeshBYU
            COMP: Bump ParabolicMorphology for MultiThreaderChanges
            COMP: Remove SmartPointer NULL initialization compatibility code
            DOC: Use http for issues.itk.org
            ENH: Migrate MultiScaleHessianBasedMeasureImageFilter out of ITKReview
            ENH: Move ContourExtractor2DImageFilter out of ITKReview
            DOC: Avoid Voronoi term when referring to the pixel center
            COMP: Wrap MultiResolutionPDEDeformableRegistration for Pyramid filter types
            ENH: Support Python snake case keyword arguments in object initializion
            PERF: Avoid extra condition check in itkBase.py
            COMP: Define ITK_DELETE_FUNCTION for backwards compatibility
            BUG: Fix bugs in ITKV4_COMPATIBILITY definition
            COMP: Do not disallow constructors in Python classes
            DOC: Add Mathieu Malaterre to GDCM copyright holders in NOTICE
            COMP: Address array initialization in itkShapedImageNeighborhoodRangeGTest
            COMP: ShapeImageNeighborhoodRange signed unsigned comparison
            COMP: Add missing itkViewImage.h include to itkViewImage.hxx
            COMP: Initialize CovariantVector in DeformableSimplexMesh3DFilter
            COMP: Update Unary and Binary filters for new generator class base
            COMP: Initialize DeformableSimpleMesh3DFilter displacement
            COMP: Suppress maybe-uninitialized in SimpleDataObjectDecorator Component
            COMP: Do not include itkMultiThreader.h in the header tests
            COMP: Fix Python wrapping of MultiThreaderBase
            COMP: Reduce example line lengths for inclusion in the SG
            COMP: Remove duplicate InPlaceImageFilter wrapping for RGB -> UC
            BUG: Do not copy workbox files when BUILD_DOCUMENTATION is OFF
            COMP: Remove duplicate BinaryGeneratorImageFilter class wrapping
            ENH: Remove itkzlib in preparation for subtree update
            ENH: Add ZLIB UpdateFromUpstream.sh
            BUG: Do not use P-threads with Emscripten
            COMP: Remove extra argument from HoughTransform3DCircles wrapping
            ENH: Update testing data content links
            BUG: Correct Windows and macOS CastXML hashes
            BUG: Fix SLICImageFilter wrapping
            BUG: Improve backwards compatibility of BoxUtilities functions
            BUG: Remove commented, unused Python wrapping configuration
            BUG: Remove deprecated GetPointer wrapping method
            ENH: Python snake case functions
            BUG: Remove deprecated itk.write function
            BUG: Remove unmaintained itk.show, itk.show2D
            ENH: Add snake case function aliases for NumPy conversions
            DOC: ITK 5 now requires CMake 3.10.2
            BUG: Bump SplitComponents remote module to 2018-07-18
            BUG: Remove TBBImageToImageFilter remote module
            COMP: Set CMake project command VERSION
            COMP: Do not wrap itk::ThreadJob
            ENH: Add ParallelizeImageRegionRestrictDirection
            ENH: Bump pygccxml hash to 2018-08-07 develop branch
            ENH: Update pygccxml git subtree version
            BUG: Remove ArchiveTestingDataOnMidas.py
            BUG: Avoid symlink issues in UpdateThirdPartyFromUpstream.sh
            DOC: Additional information and updates on bug fix release process
            COMP: Prevent duplicate wrapping ouput file specification
            COMP: Support instantiation of a 1D TranslationTransform
            DOC: Update how to reference a GitHub issue in the commit-msg hook
            DOC: ITK 5 Migration Guide grammar tweaks
            ENH: PEP8 for itk.Extras arguments
            ENH: Synchronize testing data content links
            DOC: Updates and improvements on the release process
            COMP: Address empty _FILE_OFFSET_BITS in tif_config.h with MinGW64
            BUG: Do not warn about FFTW GPL license when using Intel MKL
            DOC: Improve ITK_USE_MKL description
            BUG: Mark MKL CMake configuration options as advanced
            ENH: Add support for NVidia CUDA FFTs via cuFTTW
            COMP: Fix HDF5 CMAKE_CROSSCOMPILING_EMULATOR support
            COMP: Fix HDF5 itk_h5CX_set_apl implicit declaration
            COMP: Use the Platform Threader by default with Emscripten
            COMP: Set CMP0074 to NEW
            COMP: Fix HDF5TransformIO compatibility with HDF 1.8
            COMP: Set CMP0074 in third party libraries
            COMP: Do not mark itk::FloatingPointExceptions constructor as deleted
            COMP: Define TransformBaseTemplate constructor / destructor
            COMP: DataObject InvalidRequestedRegionError unused parameter
            COMP: Remove unused orig parameters in DataObject
            BUG: Remove unused itk_minc2 imported library statement
            BUG: Skip MINC static library build when building shared libraries
            COMP: Suppress undefined public symbol warnings in third party libs
            BUG: Remove duplicate ITK version number
            COMP: Do not install HDF5 static library with BUILD_SHARED_LIBS enabled
            COMP: Add override to TransformBaseTemplate destructor
            COMP: Avoid GCC 4.8 default destructor internal compiler error
            BUG: Import zlib1.rc from ZLib subtree
            BUG: Use GlobalDefaultNumberOfThreads for FFTW plans
            BUG: Simplify specification of greatest prime factor with cuFFTW
            ENH: Add Azure Pipelines configuration
            BUG: Remove ResampleImageFilter duplicate number of pixels check
            COMP: Avoid Intel compiler warning on unknown deprecated attribute
            ENH: Ensure that .sha512 content links have LF newlines
            ENH: Configure .gitattributes for ghostflow-director CheckSize
            DOC: Update ITK Git Reference for GitHub
            DOC: Update CONTRIBUTING.md for GitHub
            COMP: Address ITKReview module wrapping following migration of ITKIOJPEG2000
            BUG: Migrate Python tests into their modules
            ENH: Use Release CMAKE_BUILD_TYPE for macOS Python CI builds
            BUG: Remove apt-get install's from macOS Azure Pipeline's configuration
            ENH: Update Git client side hooks for GitHub
            ENH: Add UploadBinaryData.sh script
            COMP: Remove vcl_complex.h from Python builds
            BUG: Remove vcl_complex support from itkTemplate.py
            BUG: Disable PythonGetNameOfClass test
            BUG: Enable ITKIOJPEG2000 by default
            DOC: Add Test a Topic to overview section
            DOC: Organize code of conduct sub-documents into a folder
            DOC: Update Documentation/Introduction.md for GitHub migration
            DOC: Fix spelling of "individual" in CONTRIBUTING.md
            DOC: Add CI status badges to the README
            COMP: Add missing mutex include to itkImageToHistogramFilter.h
            PERF: Use initializer list in ShapedImageNeighborhoodRange operator*
            DOC: Fix UploadBinaryData.sh link
            BUG: Run apt-get update for Linux Azure configuration
            COMP: Wrap InPlaceImageFilter for complex float to complex double
            BUG: Do not gpg sign third party updates
            DOC: Note that a pull request has to be explicitly opened
            DOC: Suggest using 72 characters or less in commit hooks
            ENH: Ensure NumPy is available for Python tests
            BUG: Add missing export specification for XMLReader, XMLWriterBase
            BUG: Remove invalid ShapeDetectionLevelSetFilter arguments
            COMP: Remove Doxygen \ref, \copydetails commands
            STYLE: Improve readability of HexadedronCell::EvaluatePosition.
            COMP: Fix IsFloatingPoint concept check for VariableLengthVector
            BUG: Set up wrapping options for use in modules
            ENH: Add PhaseSymmetry remote module
            ENH: Download ExternalData cache for CI builds
            DOC: Remove the convention that release branches start with "release"
            ENH: Run content link synchronization script
            ENH: Add setup-girder-api-key Git Setup script
            BUG: Remove ExternalData MD5 content link generation
            ENH: Move FreeSurfer Mesh IO into a separate module
            DOC: Add missing CONTRIBUTING.md link in UploadBinaryData.md
            ENH: Add regression test for reading legacy multi-frame DICOM
            COMP: Float narrowing conversion in BSpline class initialization
            DOC: Move maintainer documentation into Documentation/Maintenance
            DOC: Import release archive notes from the Wiki
            DOC: Improve 4.13, 5 release notes from GitHub Releases
            ENH: Update Azure Pipelines CI testing cache to 5.0b03
            DOC: Releasing ITK updates for 5.0b03
            BUG: Exercise BinaryMaskToNarrowBandPointSetFilterTest
            BUG: BinaryMaskToNarrowBandPointSetFilter GenerateData protected
            BUG: Remove unused FixedDensityFunction in JensenHavrdaChatvatTsallis
            BUG: Do not build/use PoolMultiThreader without WinThreads or PThreads
            BUG: ShapeDetectionLevelSetFilter outputs
            BUG: ShapeDetectionLevelSetFilter outputFileName
            COMP: Remove itk::ThreadPool::GetGlobalDefaultNumberOfThreadsByPlatform
            DOC: Add 5.0 Beta 3 release notes
            DOC: Fix link to UpdatingThirdParty.md in CONTRIBUTING.md
            ENH: Add wrapping for BinaryMaskToNarrowBandPointSetFilter
            COMP: Mark DCMTKImageIO::CanWriteFile argument as unused
            COMP: Fix Software Guide line length too long warnings
            COMP: Fix Software Guide line length too long warnings
            ENH: Use CompensatedSummation in point set metrics to improve robustness
            COMP: ShapedImageNeighborhoodRangeGTest array initialization
            ENH: Move Gifti Mesh IO into a separate module
            ENH: Consistency in wrapped mesh types
            PERF: Parallelize ManifoldParzenWidnowsPointSetFunction::SetInputPointSet
            ENH: Move OBJ Mesh IO into a separate module
            ENH: Migrate OFF IO into ITKIOMeshOFF
            ENH: Update IOSTL to 2019-01-16 master
            COMP: Do not use readNoPreambleDICOM with Emscripten
            BUG: Fix Azure Pipelines commit checkout
            BUG: Fix Azure Pipelines master checkout on Windows
            BUG: Default MeshIOBase PointDimension is 3
            ENH: Update IOMeshSTL remote module and update name
            ENH: Improve loading to help pyinstaller can analyze module dependencies
            COMP: Wrapping of VectorContainer and DefaultStaticMeshTraits
            ENH: Add legacy multi-frame DICOM MD5 content links
      
      MetaIO Maintainers (1):
            MetaIO 2018-07-17 (6328f544)
      
      Niels Dekker (103):
            PERF: Improved speed of copying and resizing NeighborhoodAllocator
            STYLE: Removed 'char(255)' casts from NumericTraits min() and max()
            STYLE: Removed assignments from Neighborhood copy constructor
            BUG: Fixed semantics NeighborhoodAllocator operator== and operator!=
            BUG: GaussianDerivativeImageFunction should use image spacing consistently
            PERF: NeighborhoodOperatorImageFunction avoids copy ConstNeighborhoodIterator
            PERF: Removed blurring from GaussianDerivativeImageFunction
            ENH: Added GetCenterPoint and SetCenterPoint to EllipseSpatialObject
            DOC: Explained calling GetCenterPoint() when using Hough filter->GetCircles()
            ENH: IsInside(point) made easier, especially for HoughTransform circles
            STYLE: Using C++11 auto in HoughTransform2DCirclesImageFilter
            PERF: GaussianDerivativeImageFunction now reuses NeighborhoodIterator objects
            PERF: GaussianDerivativeImageFunction constructor, RecomputeGaussianKernel()
            COMP: ITK_DISALLOW_COPY_AND_ASSIGN now unconditionally does '= delete'
            COMP: Moved ITK_DISALLOW_COPY_AND_ASSIGN calls to public section
            COMP: Manually moved ITK_DISALLOW_COPY_AND_ASSIGN calls to public section
            COMP: Moved ITK_DISALLOW_COPY_AND_ASSIGN calls in *.cxx to public section
            ENH: Added Compute member functions to NeighborhoodInnerProduct
            STYLE: Added DISALLOW_COPY_AND_ASSIGN(GaussianDerivativeImageFunction), etc.
            ENH: Added ShapedImageNeighborhoodRange for modern C++ style iteration
            STYLE: Removed '&' from pixelPointer param of NeighborhoodAccessorFunctor::Set
            PERF: Removed virtual ~NeighborhoodAccessorFunctor() and made class final
            COMP: Fixed ShapedImageNeighborhoodRange doxygen + signed/unsigned warning
            BUG: Dropped OffsetTable assumptions from ShapedImageNeighborhoodRange
            PERF: Made HoughTransform2DCircles GaussianDerivative call non-virtual
            COMP: Workaround Clang range-loop-analysis warning NeigborhoodRange test
            ENH: Added class to create offsets for a hyperrectangular neighborhood shape
            ENH: Random access support for ShapedImageNeighborhoodRange iterators
            DOC: Fixed \code sections ShapedImageNeighborhoodRange and added \author
            STYLE: Renamed RelativeIndices to ShapeOffsets in ShapedImageNeighborhoodRange
            ENH: Added ConnectedImageNeighborhoodShape, for N-connected neighborhoods
            ENH: Added operator[] to ShapedImageNeighborhoodRange
            ENH: Documented + tested order offsets ConnectedImageNeighborhoodShape
            COMP: Fixed conversion to PDFValueType in MattesMutualInfo...Threader
            ENH: Added reverse iterators to ShapedImageNeighborhoodRange
            STYLE: Removed HoughTransform2DCircles default for TRadiusPixelType
            ENH: Changed type float data members HoughTransform filters to double
            ENH: Added Functor::CoLexicographicCompare
            ENH: Made Functor::LexicographicCompare more generic and easier to use
            BUG: Added default-constructor iterator ShapedImageNeighborhoodRange
            ENH: Added ImageNeighborhoodPixelAccessPolicy for custom border extrapolation
            STYLE: Removed LinearInterpolateImageFunction::m_Neighbors
            PERF: Made ResampleImageFilter::CastPixelWithBoundsChecking faster
            STYLE: NumericTraits::NonpositiveMin() using numeric_limits::lowest()
            BUG: Fixed casts to int64_t and double in ResampleImageFilter
            ENH: Tested ResampleImageFilter preserves 'double' and int64_t pixels
            STYLE: Replaced 'bool pre = 0' by 'bool pre = false'
            STYLE: Declared "IsAt" iterator member functions 'const'
            DOC: Replaced leading stars ('*') by spaces in Doxygen code blocks
            STYLE: Replaced "Hyperrect..." by "Rect..." in class + function names
            BUG: Removed underscores from GTest test names
            STYLE: Shortened itkShapedImageNeighborhoodRangeGTest test names
            STYLE: Declared VerifyPreconditions() member functions 'const'
            STYLE: Replaced star ('*') by space in front of Doxygen \code tags
            PERF: Made ConstNeighborhoodIterator::GetPixel(i) much faster
            ENH: Added GradientNormThreshold to HoughTransform2DCirclesImageFilter
            STYLE: Removed unused ShapedImageNeighborhoodRange::m_Image
            ENH: Added ConstShapedNeighborhoodIterator::ActivateOffsets(offsets)
            DOC: Replaced leading stars ('*') by spaces in indented Doxygen code
            ENH: Added GenerateConnectedImageNeighborhoodShapeOffsets()
            COMP: Fixed GDCM OpenJPEG name mangling
            ENH: Added ShapedImageNeighborhoodRange::SetLocation(index)
            COMP: Fixed GDCM OpenJPEG name mangling
            ENH: Added HoughTransform2DCirclesImageFilter::UseImageSpacing
            ENH: Added IndexRange for efficient region and grid space iteration
            COMP: Fixed IndexRange warnings -Wshadow -Wmissing-field-initializers
            PERF: unsharpenedImage iterator in N4Bias...Filter is now "WithIndex"
            BUG: Avoid premature GaussianDerivative kernel computation HoughCircles
            BUG: ShapedImageNeighborhoodRange should not try to avoid rvalue offsets
            ENH: Added policy for constant NeighborhoodRange values outside image
            STYLE: AccessorFunctor::SetPixelAccessor parameter reference to const
            PERF: Removed 'virtual' from Default Pixel Accessor destructors
            ENH: Added ImageRange: a range of iterators to the pixels of an image
            STYLE: ImageHelper now doing '+=' and using C++11 std::integral_constant
            BUG: Fixed ShapedImageNeighborhoodRange copying pixel access parameter
            COMP: Fixed ImageRange warning, passing object to variadic constructor
            DOC: Did #136 Update migration guide with Hough transform changes
            ENH: Added default-constructor and empty() to ImageRange
            ENH: ShapedImageNeighborhoodRange now supports any buffered region index
            PERF: Defining ImageRange iterator as raw pixel pointer, when possible
            ENH: Added Experimental::MakeImageRange(TImage*)
            PERF: Replaced postfix ++ calls on ITK iterators by the prefix ++ calls
            PERF: Small improvements to equality operators of Image Region classes
            PERF: Added C++11 final, noexcept, default, initializers to ImageRegion
            DOC: issue #273: SyNImageRegistrationMethod default member initializers
            STYLE: Small improvements ImageBase constructor, SetRequestedRegion, '\'
            COMP: Fix "unreachable code" MakeOutput RegistrationMethods
            PERF: N4BiasFieldCorrectionImageFilter implementation using ImageRange
            STYLE: Renamed ImageRange to ImageBufferRange
            PERF: Remove SystemInformation data from ResourceProbe, fix issue #350
            STYLE: Remove dynamic_cast from CastToSTLContainer(), add noexcept
            PERF: N4BiasFieldCorrectionImageFilter adds points + weights ~20% faster
            PERF: Fast assign point data, weights BSplineScatteredData filter
            COMP: ImageBufferRange iterator same as const_iterator, for const image
            PERF: BSplineDecompositionImageFilter now calls ImageAlgorithm::Copy
            ENH: Add default-constructor and empty() to ShapedImageNeighborhoodRange
            ENH: Made ShapedImageNeighborhoodRange assignable and tested copy + move
            STYLE: C++ "Rule of Zero" for iterator classes of Range types
            PERF: Add fast noexcept move semantics to Neighborhood and its Allocator
            BUG: ResourceProbe::Reset() should set m_MaximumValue to lowest value
            BUG: Fixed MoveAssignedRangeHasSameIterators GTest of two range types
            STYLE: Move test utils default-constructed ranges to RangeGTestUtilities
            ENH: Add default-constructor and empty() to IndexRange
      
      Pablo Hernandez-Cerdan (47):
            STYLE: Add script Move_DISALLOW_COPY_to_public
            ENH: Add stateless viewer ViewImage with Python wrap.
            DOC: Add docs to ViewImage.
            COMP: Fix catch by value warning in SpatialObject.
            COMP: Remove ignored const qualifier in template.
            COMP: Fix warnings -Wcatch-value
            ENH: Update isotropic wavelets module.
            ENH: Add frequency iterators and band pass filter.
            COMP: Update IsotropicWavelets, remove FrequencyIterators
            STYLE: Remove comment in ITKImageFrequency cmake
            BUG: Fixes generating floating point exceptions
            COMP: Fix warnings in cdash introduced after FPE.
            DOC: Add example using std::atomic for multithreading.
            COMP: Avoid extra point copy in MetaTube
            COMP: Fix hdf5 warning missing perl script
            COMP: Fix HDF5 CMake warning policy CMP0075
            ENH: Tweak constructors, Ro5 in FixedArray, Point
            ENH: Add Ro5 to FixedArray and derived classes
            COMP: Fix warnings related to Ro5 changes in FixedArray
            ENH: Add Ro5 constructors to SymmetrySecondRankTensor
            ENH: Add Ro5 to classes derived from Point
            ENH: Initialize SecondRankTensor and RGBPixelType
            ENH: Print direction in ImageIOBase
            ENH: Add HalfHermitianFrequencyIterator
            ENH: Use variadic templates for SetPosition
            ENH: Add ThirdParty module Eigen3
            COMP: Add CONFIG to find_package(Eigen3)
            COMP: Add missing headers SymmetricEigenAnalysis
            COMP: Use the right constructors for fixed eigen3 matrix
            COMP: Reorder variables associated find_package in Eigen3
            ENH: Update external module ITKIsotropicWavelets
            DOC: Fix doxygen in SymmetricEigenAnalysis
            ENH: Python, wrap complex in NumericTraits
            ENH: Update IsotropicWavelets module
            BUG: Fix failure of ITK_EIGEN macro expansion
            ENH: Add test checking noexcept moves in FixedArray
            STYLE: Change EXPECT_EQ to EXPECT_TRUE|FALSE in CommonTypeTraitGTest
            ENH: Add python wrapping for std::pair and other int containers
            ENH: Add internal/external eigen3 libraries
            ENH: Update IsotropicWavelets
            ENH: Add new c++11 member functions of std::vector to itk::VectorContainer
            ENH: Simplify specialization of NumericTraits<std::complex<TComponent>>
            BUG: itkMatrix: Use NumericTraits::Zero instead of literal 0
            DOC: SoftwareGuide: improve TransformIndexToPhysicalPoint notation
            COMP: Fix multi-line comment warning generated by latex notation
            [Backport] BUG: Fix OFFIS_DMCTK_VERSION_NUMBER where wrunlock was introduced
            [Backport] BUG: Fix export for ITKDeprecated classes
      
      Rashad Kanavath (1):
            COMP: fix linking on OpenBSD
      
      Roman Grothausmann (3):
            DOC: adjusted to fit more general case n != m
            DOC: corrected description of the output
            BUG: avoid overwriting output in 2nd run used for comparison in test:
      
      Sean McBride (29):
            STYLE: Fixed up confusion between base 2 and base 10 prefixes
            STYLE: arranged/alphabetized things to make subsequent changes reviewable
            COMP: Fixed some missing name mangling of libTIFF symbols
            BUG: fixed crash on macOS under guardmalloc from RunOSCheck()
            BUG: don't use double underscore, which is reserved in C++
            STYLE: fixed some spelling, spacing, and comments
            DOC: Fixed comment about LegacyAnalyze75Mode default value
            BUG: Some minor cleanup and improvement after itkNiftiImageIO code review
            BUG: Analyze 7.5 fixes/improvements
            COMP: Mangle HDF5 symbol names
            COMP: Fixed clang Wrange-loop-analysis warnings
            DOC: fixed minor typo in comment
            BUG: Revert part of f38b1dd4, which caused a regression
            ENH: Added new DetermineFileType() API to NiftiImageIO
            COMP: fixed clang warning about unnecessary copy in for loop
            COMP: -Wunused-template & -Winconsistent-missing-destructor-override warnings
            COMP: Exercise dead code, fixing -Wunused-template
            COMP: Removed dead code, fixing -Wunused-template
            COMP: Fixed -Winconsistent-missing-destructor-override warnings
            BUG: Don't force GDCM_USE_COREFOUNDATION_LIBRARY to OFF
            COMP: Suppress some warnings in ThirdParty/DoubleConversion
            BUG: fixed null access found by UBSan
            BUG: removed illegal int to enum conversion
            COMP: fix warning about implicit double to bool conversion
            COMP: Fixed warning about missing case label in public header
            COMP: Fixed three misc clang warnings
            COMP: Added additional HDF5 symbols for mangling
            DOC: improved comments about HDF5 symbol mangling
            COMP: fixed some -Wunused-template warnings by adding private namespaces
      
      Simon Rit (6):
            BUG: fix deadlock in FFTW for windows shared libs
            COMP: missing include path for FFTW
            ENH: allow wrapping of XML writers
            BUG: fix NumPy bridge for itk::Image with PixelType itk::Vector
            ENH: improve automatic Python ImageFileReader for non-scalar pixel types
            BUG: python itk.Image returned by GetImageFromArray now manages its own buffer
      
      Taylor Braun-Jones (2):
            BUG: Handle single-component PLANARCONFIG_SEPARATE TIFF images (#ITK-3518)
            COMP: Fix clang diagnostic: case value cannot be narrowed
      
      Tobias Wood (1):
            BUG: Swapped int to SizeType to prevent overflow errors
      
      VXL Maintainers (15):
            VNL 2018-01-25 (ed159d55)
            VNL 2018-01-31 (39559d06)
            VNL 2018-03-04 (09a097e6)
            VNL 2018-05-16 (26628604)
            VNL 2018-07-26 (2a77e40b)
            VNL 2018-08-04 (3dafea87)
            VNL 2018-09-05 (fc0c9043)
            VNL 2018-11-04 (ea3a2cc9)
            VNL 2018-11-08 (88b72533)
            VNL 2018-11-14 (ee083096)
            VNL 2018-11-15 (4fe68119)
            VNL 2018-11-18 (fa7c7abd)
            VNL 2018-11-23 (cb6f5dcb)
            VNL 2018-11-29 (f6e20c3c)
            VNL 2018-12-15 (bb0d2eb6)
      
      Vladimir S. FONOV (1):
            MINC 2018-08-09 (ce4333ca)
      
      Yann Le Poul (4):
            BUG: make sure the palette is empty when m_IsReadAsScalarPlusPalette is false
            DOC: fix rotation spelling issue in some versor related files
            STYLE: IsReadAsScalarPlusPalette already printed in parent class
            BUG: unnecessary call to GetExpandRGBPalette
      
      Ziv Yaniv (1):
            ENH: Adding user set min and max values for noise.
      
      Zlib Upstream (2):
            zlib 2018-06-11 (355d8648)
            zlib 2018-06-11 (355d8648)
      
      allywarner (1):
            BUG: CMake build errors
      
      ihnorton (1):
            COMP: use HDF5 library names only to avoid abspaths w/ SYSTEM_HDF5
      
      pierre33 (1):
            ENH: Update itkNaryFunctorImageFilter
      ```
      
      List of BRAINSTools changes:
      
      ```
      $ git shortlog --no-merges b045970..ac4dafaa
      
      Alexander Leinoff (1):
            COMP: Allow cmake generation on OSX without XCode
      
      David Ellis (2):
            ENH: Adds logismosb interfaces and workflows
            ENH: Nipype recon-all workflow added
      
      Hans J. Johnson (196):
            ENH: Prefer to build everything as static to avoid libary dependancies.
            ENH: Force the NO_MODULE for RTK.
            ENH: Resyncronized with Slicer packages.
            ENH: Update Opencv
            ENH: Propagate CXX settings to all sub-projects
            ENH: ITK Intermediate update.
            STYLE: Name ITKv5 as target name for dependancies
            ENH: Turn off ITK_LEGACY to prep for ITKv5
            ENH: Update ANTS,RTK and SlicerExecutionModel checkout tags
            COMP: Set VTK version identifier.
            ENH: Updated VTK with C++11 override instrumentation.
            BUG: UseImageSpacing should be defaulted to On
            ENH: Add github templates for PR and ISSUES
            COMP: Disable floating point exceptions checking
            BUG: New ITK enhanced random needs consistency in test.
            ENH: Set random number generated to historical ITK values
            COMP: Make tests pass
            BUG: Fix incorrect DATA{} syntax.
            ENH: Fix pre-mature exit when writing debug image
            STYLE: Minor code organization
            ENH: Setting min cmake version number.
            STYLE: Remove CMake-language block-end command arguments
            STYLE: Convert CMake-language commands to lower case
            COMP: Use recommended const interfaces
            ENH: Explicitly use parameters instead of defaults.
            ENH: Instrument to identify test failures
            COMP: Link to correct version of zlib
            COMP:  Use C++11 nullptr directly
            COMP: Identify null pointer assignments
            COMP:  Use C++11 override directly
            STYLE: Setting override for overriden member functions.
            BUG: Missing data dependancies for test suite
            COMP:  Remove compiler warnings from cnpy
            COMP: BRAINSSurfaceTools are not compiling currently.
            COMP: Remove outdated policies for CMP0017.
            STYLE: Use override statements for C++11
            ENH: Change to https from git download.
            ENH: Set BRAINSABC to always build.
            COMP: Update to new version of tbb
            ENH: Use C++ headers instead of C headers.
            COMP: Missing dependancy on ITKv5
            ENH: Setting deployment target to 10.9 for mac
            ENH: Put BRAINSSuperResolution code together.
            COMP: Attempt to build BRAINSTools for redistribution.
            STYLE: Push parts of codebase into an ARCHIVE dir
            BUG: Provide mechanism to move some modules to the ARCHIVAL status.
            COMP: Remove outdated cmake policy behavior
            ENH: Move old programs to an archive directory
            COMP: Remove shadowed typedefs by using explit namespaces
            ENH: Move BRAINSTalairach to the ARCHIVE Directory.
            ENH: Move BRAINSRefacer to the archive directory.
            ENH: Set ARHIVE project to on if ARCHIVE builds choosen.
            ENH: Add old DicomSignature program to archive
            COMP: Fix building against new GDCM version.
            Update NOTICE
            ENH: Use file introspection to determine BVec file format
            ENH: Remove unnecessary manual read file type flag
            ENH: Add thicknes from spacing when converting from FSL to NRRD.
            ENH: use constant scale factor initialization
            BUG: ITK_VERSION_MAJOR version checking
            ENH: Remove redundant ExternalData.cmake that overrode CMake version.
            STYLE: Prefer constexpr for const numeric literals
            STYLE: Replace itkStaticConstMacro with static constexpr
            STYLE: Prefer constexpr for const numeric literals
            STYLE: Do not use itkGetStaticConstMacro in ITK
            ENH: Update to ITKv5 with using over typedefs.
            ENH: Update dependancies for BRAINSTools.
            COMP: Wrong name specified for target_properties.
            BUG: regex substitution failure for const
            COMP: Silence build warning about unused CMAKE_EXPORT_COMPILE_COMMANDS
            COMP: Cleanup build options for BRAINSTools
            ENH: Organized for project name setting.
            ENH: Improve CXX_STANDARDS checking logic
            ENH: Remove outdated ITKv3 configuration checking.
            ENH: Set GENERATECLP_USE_MD5 unconditionally.
            STYLE: Organize build default settings.
            ENH: Use explicit named mark_as_superbuild parameters.
            ENH: Add better debugging to version checking.
            ENH: Improve version settings for BRAINSTools
            ENH: Use MultiThreaderBase to get GlobalVariables.
            ENH: Provide new baseline for BRAINSFitTest_RigidRotGeomNoMasks
            ENH: Prevent constant changes as patches are added
            BUG: Prevent constant changes as patches are added
            ENH: Fixed tests failures due to incorrect testing environments
            ENH: Syncronized external superbuilds with Slicer.
            ENH: Convert BRAINSCut python to python 3
            ENH: Convert all python code to python 3 conformance
            ENH: Version 5.0.0 of BRAINSTools
            ENH: Allow for compressed transform files.
            ENH: Reorganize python code to be compliant with Python3 modules
            BUG: New versions of ANTs have slightly different options
            BUG: Fix new nipype behavior of data sink with missing values.
            ENH: Consolodate duplicate functions
            ENH: Fix simple itk usage failure.
            STYLE: Update comments.
            BUG: Nipype needs OrderedDict for hash consistency
            ENH: Passing dict() or OrderedDict() through pipeline causes hashing issues
            BUG: Incorrect debugging option retained for None images
            ENH: Allow for possiblility of compiling with ITKv4
            ENH: Update ITKv5 to version with UseCompression for transforms.
            ENH: Update to latest version of boost.
            BUG: Fix bug in mark_as_superbuild PROJECT->PROJECTS
            BUG: Error in caused mark_as_superbuild items to be missed
            ENH: Sync with slicer mark_as_superbuild options.
            ENH: Re-organize build option settings
            STYLE: Reviewed and cleaned up superbuild
            ENH: Updated  static version string setting.
            COMP: Add quick -march=native compiler flag adding
            ENH: Remove unnecessary build code for superbuild.
            ENH: Syncronized with NAMICExternalProjects build.
            ENH: Propogate default /lib /bin directories to all projects
            BUG: Bad hash for scan3Mask1.nii.gz.md5.
            ENH: Unlink ITK from VTK GUI build.
            COMP: HD5 changed API for printing Errors.
            COMP: Remove unused variables.
            COMP: ITKv5 updates for JPEG2000.
            ENH: Updated packages for improved C++11.
            ENH: Add azure testing scripts.
            COMP: Fix KWStyle compilation fixes.
            BUG: Mismatch type for CovariantVector initialization.
            COMP: virtual designation is redundant with override designation.
            COMP: ITKv5 multi-threading model compatibility.
            COMP: ITKv5 uses std::mutex directly.
            COMP: Only configure inner BRAINSTools
            COMP: Fix function signature for override
            COMP: Future proof vnl_math_XXX function usage.
            COMP: Replace vcl_XXX items with std::XXX
            COMP: Remove unused variable.
            ENH: ITKv5 itkMultiThreader.h -> itkMultiThreaderBase.h
            STYLE: Replace itkStaticConstMacro with static constexpr
            STYLE: Use "typename" for template parameters
            STYLE: Prefer error checked std::sto[id] over ato[if]
            COMP: Prefer C++ headers to C99 headers.
            COMP:  Use C++11 nullptr directly
            COMP: Use and move ITK_DISALLOW_COPY_AND_ASSIGN calls to public section.
            ENH: Update external packages C++11 compliance
            ENH: ITKv5 Threading Model changes needed for testing
            STYLE: Prefer C++11 type alias over typedef
            DOC: Add documentation for newer OS versions.
            ENH: Comment out tests that do not work due to missing data
            ENH: Disable building of BRAINSSurfaceTools
            COMP: Remove compiler warnings.
            COMP: Make VerifyInputInformation a const function (ITKv5)
            ENH: Update to 2019_U2 to fix TBB issues with mac min version compilations.
            ENH: Propagate MAC_OS_X_VERSION_MIN_REQUIRED to TBB build.
            ENH: Improve TBB versioning selection.
            COMP: Update new reference data after VXL ITKv5 updates.
            ENH: Updated BCD baselines for ITKv5
            COMP: ITKv5 backward compatibility fixess.
            ENH: Update BRAINSFit baselines for ITKv5
            ENH: Try to make random number generation consistent.
            ENH: Update ANTs and ITKv5 for more test coverage.
            ENH: Update data regression.
            COMP: Remove compiler warnings.
            ENH: Duplicate names for testing
            BUG: Failing test updated after visual review
            COMP: Cleanup compiler warnings.
            ENH: UPdate ITK to include vxl explicit instantiations.
            COMP: Remove deprecated SetUseFixedSampledPointSet
            COMP: SetNumberOfThreads -> SetNumberOfWorkUnits
            ENH: Update reference data to sha512 on new data source.
            ENH: Remove duplicate md5 signatures.
            BUG: Failed uploads fixed for sha512
            COMP: Valgrind un-initialized memory reads
            STYLE: Prefer error checked std::sto[id] over ato[if]
            ENH: Adding an editor config for BRAINSTools.
            ENH: Add extra landmark Eye sanity checking for BCD.
            ENH: Add component testing for valid values to workflow running.
            STYLE: Remove trailing whitespace from files
            COMP: Add missing iostream header.
            STYLE: Remove unused file and directory ExternalSources.
            ENH: Fix dependency ordering for new project() syntax.
            ENH: Use range of new CMake features.
            ENH: Update to latest TBB build 2019_U3 for 10.14 compatibility.
            ENH: Update to latest version of packages
            ENH: Temporary ITK branch for dcmtk api compatibility.
            ENH: Add Travis pull request builds.
            ENH: Add helper file for configuring BRAINSTools for IDE.
            COMP: Errors with VTK TBB building in superbuild mode.
            STYLE: Fix naming of variables for DWIConverter class.
            ENH: Force clean ITKv5 building, remove legacy modes.
            ENH: ITKv5 const fix for duplicater image filter.
            ENH: ITKv5 fix for duplicater image filter.
            COMP: Allow building with C++ > 11
            ENH: Fix failing CI .travis.yml syntax.
            ENH: Add diagnostics for failed TBB download.
            ENH: Test for extra long test times.
            COMP: Moved my.cdash.org only supports https now.
            ENH: The maximum cmake version is only for policies
            ENH: Fix backward compatibility with OpenCV4.
            COMP: Match types for loops.
            BUG: Python set inclusion syntax error fixed.
            ENH: The maximum cmake version is only for policies
            ENH: Update wts reference file to have comment line.
            ENH: Wts file has header line to be ignored.
            BUG: Simple ITK does not currently expose SetNumberOfWorkUnits
      
      Hui-Xie (6):
            COMP:  change VTK min version
            ENH: Add support for r/w Dicom, FSL, Nrrd formats
            BUG: erase unnecessary cmake config
            BUG: erase unnecessary lib in CMake file
            ENH: add DWI file convert utility interfaces
            BUG: stat uses ITK KWSys wrapper interface
      
      Isaiah Norton (4):
            BUG: DWIConverter hard-coded transpose/FSLBy3Rows setting
            ENH: don't allow matching bvec and bval file names
            ENH: DWIConvert, Philips: also check supplement 49 b value field
            Bump ITK to v5b1 to resolve FFTW broken download
      
      Jean-Christophe Fillion-Robin (4):
            Add License file
            STYLE: Add Notice file
            ENH: Improve build targets organization in IDE that support folders
            ENH: Use a single data management target and support customizing its name
      
      Johan Andruejol (1):
            BUG: Add try/catch around BrainsFitHelper update
      
      Regina EY Kim (2):
            BUG: Add a missing header
            ENH: fix the probabilityMap RegistrationToSubject option
      
      azure-pipelines[bot] (1):
            Set up CI with Azure Pipelines
      ```
      
      List of SimpleITK changes:
      
      ```
      $ git shortlog --no-merges v1.1.0..dc5c1a1d
      
      ASVBPREAUBV github_user (1):
            Update DicomSeriesReadModifySeriesWrite.R
      
      Bradley Lowekamp (164):
            Bumping version to 1.2 for development
            Adding Python wheel downloads for v1.1.0 from SourceForge
            Fix template generator custom method with multiple parameters
            Add docs for set methods
            Add SetRegionOfInterest method
            Document conventions for Image Regions
            Add GetRegion method to LabelMap based statistics filters
            Correct RegionOfInterest doxygen from proper ITK class
            Adding wrapping for filters from remote LabelErodeDilate module
            Use named inputs for the paste image filter
            Adding wrapping for StochasticFractalDimensionImageFilter
            Add names inputs for FFTConvolutionImageFilter
            Update JSON python scripts to end files with newline
            Add ExternalData step to building Sphinx documentation
            Adding Readme for Sphinx images directory
            Adding Readme to white list of files
            Correct code-block indentation
            Add overflow and underflow count to ShiftScaleImageFilter
            Adding wrapping for the BSplineDecompositionImageFilter
            Add interpolator enum for the BSplineResampleImageFunction
            Fix documentation for GetCoefficientImages method
            Adding test for resampling with the BSplineResampler iterpolator
            Add specification of ITK ImageIO used to read image
            Use return self macro
            Adding testing for setting ImageIO
            Adding baseline hash for LabelSetErode filter
            Update require CMake version to 3.10
            Remove CMake version checks for version before required version
            Remove local CMake GTest module, use gtest_discover_tests
            Set pointer to null after deleting
            Correct interpolate for ruby bspline_resample test
            Only label unstable on apple systems
            Correct capitalization style for ruby enum
            Update SimpleITK Version in Sphinx
            Adding support for ImageBase types to ImageTypeToPixelIDValue
            Add a descriptive error message for image casting failure
            Add propagation of CMake job pool variables in Superbuild
            Remove deprecated midas3 from external download URLs
            Remove unused variable value
            Remove imported CMake ExternalData module
            Update referenced json
            Update name field and reference script used for doc fields
            Add doc for itk_module json field
            Adding R language to CircleCI testing
            Only add R dependencies for R job
            Adding R Unit tests when R is built as a project
            Add junit test formatting for python and R
            Make and use separate environment anchor
            Update documented CMake required version
            Add wrapping for Toboggan filter
            Update ITK superbuild version along ITK v41.3 release
            Make variables, functions, and structs local scope
            Add support for VectorImages to the Tile filter
            Specifying Toboggan output types as uint32_t for portability
            Just link the SimpleITK on Sourceforge, not the versioned sub-directory.
            Reduce CircleCI dependencies, and use system SWIG
            Correcting link to Java visual guide
            Improve doxygen documentation for the Image class
            Fix tense per code review
            Use standard find_package for ITK in SimpleITK Config
            Use modern CMake IN_LIST if operator
            Remove legacy BasicFiltersN loop code
            Correct variable name used to disable building documentation
            Update Superbuild ITK version along 4.13 release branch
            Set CircleCI to use Github for ITK repo
            Add wrapping for SLICImageFilter from SimpleITKFilters module
            Correct Github ITK repo in CircleCI CMake configuration
            Specify data root as SimpleITK root project
            Add BUILD_EXAMPLES option to standalone language builds
            Enable CircleCI testing of examples when language is built
            ENH: Support passing ITKV4_COMPATIBILITY to ITK superbuild
            Enable ITK_LEGACY_REMOVE to be overridden
            Explicitly specify stretch docker image add python 3.6 for testing
            Explicitly use python to invoke pip, print python version
            COMP: Lengthen GTest discovery timeout
            Adding Java build to CircleCI
            Add testing for Java stand-alone project
            No CI for languages on next branch
            Remove BUILD_DOCUMENTS CMake option
            Exclude files leading with a '.' from globs
            Add Update data link for R man documents
            Add TransformVector method to Transform class
            Update Superbuild ITK version to 4.13.1
            This data file hash is neither used nor does it exit
            Update links for downloads in tarball generation
            Adding data links from ContentLinkSynchronization.sh execution
            If ITKv5 map number of threads to number of "Work Units"
            Add access to number of valid point used during registration
            Fix Python index test with empty comparison
            Fix recursive option with GetGDCMSeriesFileNames
            Adding Transform method to flatten composites transforms
            Add mirror of SimpleITK External Data repository
            Documentation tweaks
            Remove dimension limitations form GetImageFromNumpy
            Improve exception for unsupported Image size
            Use baseline images for testing
            Set the default CMake policy to 3.10
            Adding request of IO region to ImageFileReader
            Adding testing for reading an extraction region
            Update ITK superbuild along 4.13 release branch
            Adding vector image support to Mean and Sum projection image filters
            Improve documentation for SetExtractSize
            Add new 5d test image
            Add IO extract direction matrix behavior documentation
            Add IO extraction test with 5d file
            Fix size shortening warning
            Remove uint64 to uint copy to avoid warnings
            Add Doxygen grouping to ImageReaderBase::Set/GetImageIO
            Create common method to create ImageIO by string name
            Fix indentation in ImageFileWriter
            Add SetImageIO method to ImageFileWriter
            Add option to set ImageIO to the series writer
            Add debugging information to ReadInformation
            Remove typename outside of template
            Add support for vector images to the clamp image filter
            Improve documentation of some RegistrationMethod methods.
            Add method to access the metric's sampling percentage.
            Add testing for GetMetricSamplingPercentagePerLevel method
            ITK superbuild version along the 4.13 release branch
            Address implicit conversion warnings from float to double
            Adding construction of BSpline transform from coefficient images
            Add testing of constructing BSpline Transform from images
            Add methods to transform class to get number of parameters
            Improve image registration per level documentation
            Add registration support for multi-resolution bspline transform
            Add unit testing of BSpline parameters
            Fix reassigning initial transform issue
            Adding testing of BSplineTransform registration in place
            Update the ITK superbuild version along release-4.13
            ENH: Adding example of multi-resolution bspline registration
            Adding prose document to BSpline3 example
            Adding C++ BSpline3 example
            Add labels to docs referenced from BSpline3
            Quote function name and remove extraneous prose fragment.
            Use the official ITK Github repo
            Restore needed storage option to increase default size
            Update manylinux to use CMake 3.11.4
            Update manylinux openssl to 1.0.2q
            Create wheel even when tests fail
            Update JSON documentation from ITK release-4.13
            Updating Java and Python docstrings from current build
            Updating ITK version with BSpline mesh parameter fix
            Add test for BSplineTransform copy on write
            Add multi-resolution BSpline registration test non-inplace
            Adding option to procedure ReadImage to specify the ImageIO
            Sort the json descriptions to maintain order
            Update Sphinx filter descriptions via script.
            Fix conversion warning
            Update the FAQ
            Fix up in wording in FAQ
            Update SwigDocStrings for Python and Java
            Update R documentation files
            Add missing parameter documentation to the ReadImage method
            Update from SwigDocUpdate.sh with latest changes
            Update R documentation archive
            Change broken quote to bash code block.
            Update R Rd document files with manual fix
            Applied correction to escape % in R documentation.
            Apply escape sequence to all occurrences of %
            Add isysroot as require flag in non-cmake superbuild projects
            Don't use CMAKE_OSX_SYSROOT is empty string
            Update ITK Superbuild version along 4.13 release  branch
            Remove extraneous CMake message statement
            Adding Azure Pipelines configuration from master branch
      
      Dave Chen (11):
            Large refactor of GenerateDoc.py
            Ran JSONBeautify.py
            Ran new GenerateDoc.py on JSON files
            GenerateDoc.py fixed to handle Unicode input
            Added test of default ResampleImageFilter params
            Fixed wrong method.
            Missing '&' on Windows
            Fixed memory leak
            Improved testing of the ImageViewer class
            Modified test to improve code coverage
            Fix for hang in Show function on Windows
      
      David T. Chen (19):
            Fixed some formatting, adjusted a few other things.
            Use TextOutput for OutputWindow
            Fix string comparison bug
            ENH: Initial check-in of the ImageViewer class
            Use ImageViewer class
            Fix for ITK code style
            More code fixes
            Print more defaults it ToString
            Added SetGlobalDefaultDebugOn/Off methods
            Fix type warning on Windows
            Added 'command' param to SetApplication.
            Fix for Show w/o ImageJ or Fiji
            Improve test coverage for ImageViewer class.
            Removed ImageJ stuff from Installation doc
            Updated the building.rst doc
            A few small fixes
            Updated for Python 3
            Re-run for SimpleITK v1.2rc1
            Fix R documentation warning
      
      Jean-Christophe Fillion-Robin (2):
            circleci: Fix and simplify install of CMake
            circleci: Install scikit-ci-addons to ensure ctest_junit_formatter is available
      
      Kasper Marstal (2):
            ENH: Use return instead of raising StopIteration (PEP 479)
            ENH: Add empty image Python indexing test
      
      Richard Beare (25):
            Vignette update
            R package DESCRIPTION update
            moved methods import to namespace and referenced the dll
            Modified generation of namespace file
            R version check during configuration
            Installation of R from CRAN for circleci testing
            R package rules don't allow non standard file formats in the data directory.
            Add index entry to latex preamble of vignette
            Update formatting of license field in R DESCRIPTION file
            use Rd note section instead of usage as the latter requires R code
            Formulas processed to avoid breaking latex after conversion
            place holders in empty sections for procedural interface
            tidied up testing for missing fields
            importFrom for utils package in NAMESPACE file
            updated instructions for documentation
            Add as.image to index entry
            Add text to empty fields and allow additional sectiondef
            Modified creation of filenames of R documentation
            Add documentation file for S4 methods.
            Add replacement R functions.
            Add better support for R namespaces and documentation
            Fix: spurious bracket in script
            ENH: Improving formatting of DESCRIPTION file according to --as-cran checks
            Fix: C++11 style init causing problems with RTools(windows) c++
            Modified functions exported by R package.
      
      Seungkyoon Bong (24):
            Updated tutorial link for SimpleITK
            Translated the common conventions page from the Doxygen
            Deleted the .rst change
            Added hyperlinks and inline markups for code
            Created a page with SimpleITK Filters
            Changed the HTML template of the documentation
            Added Relevant Resources and link to paper to index.rst
            Corrected LaTeX notation in Registration Overview
            Create image and transformation IO page
            Translate and Update Page for Eclipse Set Up
            Translate and Update Visual Studio Set Up
            Convert pngs to web-optimized jpgs
            Restore simpleitk_logo.png.md5
            Translate N4BiasFieldCorrection R Example
            Create filter and slicing operator comparison
            Translate DemonsRegistration1 R Example
            Translate DemonsRegistration2 R Example
            Translate DicomSeriesFromArray R Example
            Translate ImageRegistrationMethodBSpline1-2 R Example
            Fix spelling error in N4BiasFieldCorrection
            Translate 2 ImageRegistrationMethod R Examples
            Translate ImageRegistrationMethod2-4 R Example
            Remove internal function in ImageRegistrationMethod1
            Remove internal functions in DemonsRegistration1-2
      
      Ziv Yaniv (18):
            Adding support for vector images in as.image conversion.
            Adding test to the patch (moving between R array 2 image 2 R array).
            Adding read the docs sphinx fundamental concepts documentation.
            Adding concepts of channels and resampling.
            Adding section on resampling and updating the images location.
            Adding reference to image md5 for download.
            Typo in example, comma instead of bar in the specification of Instance Number.
            ImageJ not found in expected location FAQ information.
            Updatind publication citation list.
            Adding the tutorials and course page to the documentation.
            Adding introductory information with respect to tutorials.
            Corrected backslash not visible in documentation of windows path.
            Renamed the example to reflect its content.
            Adding image viewing example.
            ENH: Adding new example illustrating new SimpleITK IO.
            ENH: separated the example in two based on code review.
            Upadated readme file to match our current state (rc1.2).
            Adding the SPIE course to the tutorials' list.
      ```
      
      From: Hans Johnson <hans.j.johnson@gmail.com>
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@28016 3bd1e089-480b-0410-8dfb-8563597acbee
      bb4e7bb9
  2. 08 Mar, 2019 2 commits
  3. 06 Mar, 2019 1 commit
    • jcfr's avatar
      BUG: Fix linux package removing dependency to GLVND libraries · 245097a6
      jcfr authored
      By setting OpenGL_GL_PREFERENCE to LEGACY, this commit ensures that
      the applications and libraries are linked against libGL.so (legacy) instead
      of libOpenGL.so and libGLX.so (GL Vendor Neutral Dispatch library). It allows
      to run the application on system where only libGL is available.
      
      It fixes a regression introduced in r27988 (COMP: Update CMake minimum required
      version from 3.5 to 3.13) after which one CMP0072 was set to NEW and led to
      have the GLVND libraries being used by default.
      
      Detailed explanation about GLVND (thanks @chuckatkins):
      libOpenGL.so and libGLX.so are actually just the stub GLVND interface
      libraries with no implementation behind them. GLVND uses a config file
      to locate and dlopen the implementation at runtime like a plugin
      (/usr/lib64/libGLX_nvidia.so.418.39 for instance).
      So it's not really suitable for redistribution unless an implementation
      like a glvnd-enabled mesa and associated config files are also packaged.
      For broad redistributability, it is preferable to use use the legacy libGL
      for now so at runtime it will be available on most systems.
      That will likely need to be the case for the next few years until
      the non-glvnd implementations are much less common.
      Co-authored-by: Chuck Atkins's avatarChuck Atkins <chuck.atkins@kitware.com>
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27996 3bd1e089-480b-0410-8dfb-8563597acbee
      245097a6
  4. 04 Mar, 2019 1 commit
    • jcfr's avatar
      COMP: Update CMake minimum required version from 3.5 to 3.13 · 2ba0c4d3
      jcfr authored
      Discourse post:
      https://discourse.slicer.org/t/updating-minimum-required-version-of-cmake-to-3-13/6012
      
      // ----------
      Update MultiVolumeExplorer:
      
      ```
      git shortlog --no-merges 0bca789..16180487
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      // ----------
      Update MultiVolumeImporter:
      
      ```
      git shortlog --no-merges   e1c1cd8..ce324adb
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      // ----------
      Update SimpleFilters
      
      ```
      git shortlog --no-merges   dd1e8be5..8c27c74b
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      // ----------
      Update OtsuThresholdImageFilter
      
      ```
      git shortlog --no-merges  cf39e506..c14d5b8e
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      // ----------
      Update DataStore
      
      ```
      git shortlog --no-merges  8053b028..5fcf3b64
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      
      // ----------
      Update CompareVolumes
      
      ```
      git shortlog --no-merges b2a9a0d9..34f1b3da
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      
      // ----------
      Update LandmarkRegistration
      
      ```
      git shortlog --no-merges 837e5edf..6569f69e
      Pablo Hernandez-Cerdan (1):
            Update cmake_minimum_required to 3.13
      ```
      Co-authored-by: Hans Johnson's avatarHans Johnson <hans-johnson@uiowa.edu>
      Co-authored-by: Jean-Christophe Fillion-Robin's avatarJean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
      
      From: Pablo Hernandez-Cerdan <pablo.hernandez@kitware.com>
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27988 3bd1e089-480b-0410-8dfb-8563597acbee
      2ba0c4d3
  5. 12 Dec, 2018 1 commit
  6. 19 Nov, 2018 1 commit
  7. 16 Nov, 2018 2 commits
    • jcfr's avatar
      ENH: Support excluding bundled extension external projects. · e09865bc
      jcfr authored
      Setting the variable <extension_name>_EXTERNAL_PROJECT_EXCLUDE_ALL to TRUE
      prevents Slicer build system from considering the extension dependencies.
      
      This is particularly useful when (1) an extension support to be built as
      both a standalone project or a Slicer extension and (2) external projects
      from the extension are either not needed when bundled into Slicer or conflicting
      with Slicer ones.
      
      Here is an example of output reported when configuring a custom application
      setting the variable ShapePopulationViewer_EXTERNAL_PROJECT_EXCLUDE_ALL to TRUE
      
      [...]
      -- SuperBuild - GROUPS extension => LAPACK;MeshLib;RigidAlignment;SurfRemesh
      -- SuperBuild - ShapePopulationViewer extension => ignore(ITK);ignore(Qt4);ignore(Qt5);ignore(SlicerExecutionModel);ignore(VTK)
      -- SuperBuild - First pass
      -- SuperBuild - First pass - done
      [...]
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27559 3bd1e089-480b-0410-8dfb-8563597acbee
      e09865bc
    • jcfr's avatar
      STYLE: Document support for "SuperBuild-type" extension in CMakeLists.txt · 92951c8b
      jcfr authored
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27557 3bd1e089-480b-0410-8dfb-8563597acbee
      92951c8b
  8. 12 Nov, 2018 1 commit
  9. 17 Oct, 2018 2 commits
  10. 15 Oct, 2018 1 commit
  11. 13 Oct, 2018 3 commits
  12. 11 Sep, 2018 1 commit
  13. 03 Sep, 2018 1 commit
  14. 10 Aug, 2018 1 commit
    • jcfr's avatar
      COMP: Fail early building script with PythonQt disabled · c88b17d3
      jcfr authored
      Add error message in cmake to fail early when trying to build a scripted
      python package but the option Slicer_USE_PythonQt is OFF.
      
      ```bash
      CMake Error at Software/Slicer/SlicerCustomAppTemplate/build-SlicerSALT/slicersources-src/CMake/SlicerMacroBuildScriptedModule.cmake:94 (ctkMacroCompilePythonScript):
        Unknown CMake command "ctkMacroCompilePythonScript".
      Call Stack (most recent call first):
        Software/Slicer/SlicerCustomAppTemplate/build-SlicerSALT/Sequences/SequenceSampleData/CMakeLists.txt:17 (slicerMacroBuildScriptedModule)
      ```
      
      This is caused because the cmake macro `ctkMacroCompilePythonScript` is only included when PythonQt is on.
      The macro is moved to the top folder to make it available early.
      
      From: Pablo Hernandez-Cerdan <pablo.hernandez@kitware.com>
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27345 3bd1e089-480b-0410-8dfb-8563597acbee
      c88b17d3
  15. 31 Jul, 2018 1 commit
    • jcfr's avatar
      BUG: Introduce application properties, differentiate Slicer and main app version · 8af26f65
      jcfr authored
      This commit improves how custom application specify there version.
      Previously, custom application were overriding variables like Slicer_VERSION_MAJOR
      and this was causing build error because the #ifdef" using these variables
      were not correct anymore.
      
      With this change custom Slicer application can have their own metadata
      (version number, description, ...) in addition of the Slicer ones.
      
      To address this, this commit introduces application properties file and
      its companion CMake function "SlicerReadApplicationProperties". This allows
      to read the properties of a "Slicer application" before having to process
      the corresponding sources. By using this new CMake function in the SlicerApplicationOptions
      module included early in the custom application CMakeLists.txt, this
      allows to display the application metadata without duplicating much code.
      
      The vtkSlicerVersionConfigure.h was extented to include include these new
      macros:
      * Slicer_MAIN_PROJECT_VERSION
      * Slicer_MAIN_PROJECT_VERSION_FULL
      * Slicer_MAIN_PROJECT_BUILDDATE
      * Slicer_MAIN_PROJECT_WC_URL
      * Slicer_MAIN_PROJECT__WC_REVISION
      
      when building Slicer, these macros are equivalent to Slicer_VERSION,
      Slicer_VERSION_FULL, ...
      Reviewed-by: Csaba Pinter's avatarCsaba Pinter <csaba.pinter@queensu.ca>
      Reviewed-by: Andras Lasso's avatarAndras Lasso <lasso@queensu.ca>
      Tested-by: 's avatarPablo Hernandez <pablo.hernandez@kitware.com>
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27316 3bd1e089-480b-0410-8dfb-8563597acbee
      8af26f65
  16. 04 Jun, 2018 1 commit
  17. 25 May, 2018 1 commit
  18. 09 Apr, 2018 1 commit
    • lassoan's avatar
      ENH: Added option to use TBB as SMP backend in VTK · e44903fb
      lassoan authored
      TBB (Threading Building Blocks) provides tools for writing parallel C++ programs. VTK can use TBB to improve efficiency of execution of many filters.
      
      Using TBB over default multi-threading (Sequential), multi-threaded image filter execution is typically improved by 20-30%. In cases where many threads are created (e.g., pipeline updates performed 10-100 per second, on an 8 or more core machine) and the computation load is very small, the speed may be improved by a factor of 10-20x. On some systems image reslicing performance is increased from 10fps to 130fps by switching from Sequential to TBB.
      
      TBB is now enabled by default on Windows. Slicer with TBB has not been tested on Linux and MacOSX yet (probably building and packaging need some fixes).
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27132 3bd1e089-480b-0410-8dfb-8563597acbee
      e44903fb
  19. 22 Mar, 2018 1 commit
  20. 13 Mar, 2018 1 commit
    • jcfr's avatar
      ENH: BuildSystem: Subversion not required anymore to configure Slicer · 8434e2e4
      jcfr authored
      Notes:
      
      (1) If Subversion is not found, EMSegment module will not be built
      because its sources are still hosted on SVN.
      
      (2) while this commit removes the Subversion requirement to
      configure Slicer, Subversion is still needed to build:
       * the official Slicer installers
       * as well as the extension index (indeed few extensions still host their
       source code using SVN)
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@27060 3bd1e089-480b-0410-8dfb-8563597acbee
      8434e2e4
  21. 08 Mar, 2018 1 commit
  22. 06 Mar, 2018 1 commit
  23. 04 Mar, 2018 1 commit
    • jcfr's avatar
      ENH: Update dynamic analysis infrastructure · 3d663f34
      jcfr authored
      Summary of changes
      ==================
      
      * Update Slicer valgrind suppressions file and remove obsolete Slicer3 files.
        Updates were done based on build done with Qt5.10 and VTK9.
        See section below for the approach used to craft the .supp file.
      
      * Update relevant external projects to pass a variable <projectName>_VALGRIND_SUPPRESSIONS_FILE
        to Slicer inner build.
      
      * Update valgrind scripts:
      
        -> remove hardcoded path using "<projectName>_VALGRIND_SUPPRESSIONS_FILE" variable
      
        -> support executing Slicer or any other executable. This means that the
           script runValgrindFoOneModule.sh is not needed anymore.
      
        -> help is displayed if no argument is passed. For convenience, the
           path to the current Slicer executable is displayed too.
      
        -> set local ivar allowing to easily change the default options passed
           to valgrind
      
      * Update slicerMacroBuildApplication macro to set the global property
        <Slicer_MAIN_PROJECT_APPLICATION_NAME>_EXECUTABLE
      
      * Slicer_LAUNCH_COMMAND: Remove unneeded "--launcher-no-splash" parameter,
        Using "--launch" already implies no splash-screen.
      
      Remaining work
      ==============
      
      * Update dashboard driver script to configure memcheck
      
      Approach to identify legitimate suppressions
      ===========================================
      
      * Environment used was:
      
        -> latest version of valgrind (3.13). Compiling it from source
           was straightforward. Older version (3.11) crash.
      
        -> Ubuntu 15.10  with g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
      
      * Step 1: Run Slicer with --help
      
        $ ./Utilities/Scripts/runValgrind.sh /path/to/bin/SlicerApp-real \
            --help
      
        Then, update SlicerValgrind.supp adding suppressions.
      
      * Step 2: Run Slicer with python *disabled* and all modules *disabled*
      
        $ ./Utilities/Scripts/runValgrind.sh /path/to/bin/SlicerApp-real \
            --disable-python \
            --disable-modules \
            --exit-after-startup
      
        Then, update SlicerValgrind.supp adding more suppressions and consolidating
        with existing one using '?', '*', '...'.
      
      * Step 3:
      
        Update SlicerValgrind.supp and copy commented python suppressions
        from Python-2.7.13/Misc/valgrind-python.supp
      
        -> these are the ones related to _PyObject_GC_*, PyObject_Free and PyObject_Realloc.
      
        -> This approach is sub-optimal but avoid to recompile python and prevent
           slowing down the application by using a less efficient but more valgrind
           friendly memory management model.
      
        -> To understand the rational, read Python-2.7.13/Misc/README.valgrind
      
      * Step 4:
      
        Run Slicer with python *enabled* and all modules *disabled* to identify
        remaining issues.
      
        $ ./Utilities/Scripts/runValgrind.sh /path/to/bin/SlicerApp-real \
            --disable-modules \
            --exit-after-startup
      
        Then, add relevant suppressions.
      
      * Step 5:
      
        Run Slicer with python *enabled* and all modules *enabled* to identify
        remaining issues.
      
        $ ./Utilities/Scripts/runValgrind.sh /path/to/bin/SlicerApp-real
      
        Then, add relevant suppressions.
      
      * Step 6:
      
        Remaining issues are legitimate problems that will be fixed in
        follow-up commits.
      
      List of CTK changes
      ===================
      
      $ git shortlog 59ad0ef..ca4c77b --no-merges
      Jean-Christophe Fillion-Robin (2):
            COMP: ctkFDHandler: Remove unused ivar, and initialize an other one
            COMP: Add CTK valgrind suppressions file
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@26993 3bd1e089-480b-0410-8dfb-8563597acbee
      3d663f34
  24. 03 Mar, 2018 1 commit
  25. 02 Mar, 2018 2 commits
  26. 28 Feb, 2018 1 commit
  27. 23 Feb, 2018 4 commits
  28. 09 Feb, 2018 1 commit
  29. 19 Jan, 2018 1 commit
  30. 08 Dec, 2017 2 commits