ITK/Release 4/Wrapping/Tasks: Difference between revisions

From KitwarePublic
< ITK‎ | Release 4‎ | Wrapping
Jump to navigationJump to search
Line 92: Line 92:


=Pending Tasks =
=Pending Tasks =
== Ready for Alpha ==


* [GL-01] - [100%] - migrating to WrapITK 0.3  
* [GL-01] - [100%] - migrating to WrapITK 0.3  
 
* [GL-06] - [100%] - Default wrapped types [...],
Depends on GL-01
* [GL-02] - [--%] - Add support for C#,
* [GL-03] - [--%] - Port the SWIG interface gen. to C++,
* [GL-04] - [--%] - Add support for Python 3,
* [GL-06] - [--%] - Default wrapped types [...],
* [GL-08] - [33%] - Wrapping coverage,
* [GL-08] - [33%] - Wrapping coverage,
** metadata dictionary
** macro moved to swig


depends on other groups
== ready for Beta ==
* [GL-05] - [ONGOING] - Redefine the WrapITK libraries, (follow modular, no need monolithic anymore)
* [GL-05] - [75%] - Redefine the WrapITK libraries, (follow modular, no need monolithic anymore)
* [GL-07] [--%] - Extend support to more types,
* [GL-14] - [--%] - Automatic type selection in Python,


depends on GL-02 and GL-04
== Ready for Meeting MICCAI ==
* [GL-03] - [--%] - Port the SWIG interface gen. to C++,
* [GL-09] - [--%] - Binary distribution,
* [GL-09] - [--%] - Binary distribution,
* [GL-10] – [--%] - language specific array conversion, (NOTE: simple itk did it for C# and java, we have it in python)
** one full build, sub package ( python, java, tcl, dev (cmake, swig interfaces, ...) ) independently installable, possible to distribute
* [GL-12] - [--%] - Automatic Inline documentation,
** generation with CPack
* [GL-13] - [--%] - Target language inheritance,
* [GL-14] - [--%] - Automatic type selection in Python,
 
depends on GDCM
* [GL-11] - [--%] - GDCM wrapping compatibility,
* [GL-MM] - [--%] - ITK-GDCM Wrapping,


last items
== Ready for Dec - end of contract ==
* [GL-02] - [--%] - Add support for C#, => ashish
* [GL-04] - [--%] - Add support for Python 3, => gaetan
* [GL-07] – [--%] - Extend support to more types, (unsigned long for win 64 ) => Alex, replace all unsigned long by SizeValueType (done in ITK but not WrapITK)
* [GL-10] – [--%] - language specific array conversion, (NOTE: simple itk did it for C# and java, we have it in python) => gaetan (python almost done, java and C# is being worked out in simpleITK, wait for them)
* [GL-12] - [--%] - Automatic Inline documentation, done in python, prototype existing in Java. all is done in python, so we need to port it to C++ (see GL-03)
* [GL-13] - [--%] - Target language inheritance, swig expertise, all languages => ashish
* [GL-17] – [--%] - Documentation (user guide)
* [GL-17] – [--%] - Documentation (user guide)
* [GL-18] – [--%] - Documentation (dev. Guide)
* [GL-18] – [--%] - Documentation (dev. Guide)

Revision as of 09:02, 22 June 2011

Current Tasks

Build WrapITK with ccache

included in ITK v4.alpha

Build WrapITK with WRAP_ITK_EXPLICIT

included in ITK v4.alpha

Move the customization code from python's main CMakeLists.txt to swig macros in pyBase.i

  • GitHub Commits
    • dd04a6e ENH: Code cleanup in CMakeLists.txt. Swig customization for python is now moved to the file pyBase.i
    • c1526cb ENH: Code cleanup for python customization
    • 5c1ef5f ENH: Cleanup for python customization in CMakeLists.txt
    • 6772f83 ENH: Cleanup of CMakeLists.txt, fix for a warning in ITKMetaDataObject.wrap
    • c1d4b4c BUG: Fixes for Python customization cleanup
  • pushed to gerrit here

included in ITK v4.alpha

Warning messages for TCL, Ruby, Perl support in WrapITK

    • 9d9215c DOC: Shorten the message for TCL support in WrapITK
    • d9bc5a2 ENH: TCL support in WrapITK is marked as unstable
  • pushed to gerrit here

Included in ITK v4.alpha

MetadataDictionary access from target languages

  • modify itkMetaDataDictionary.h to add those methods:
 + MetaDataObjectBase::Pointer & Get(const std::string &) const;
 + void Set(const std::string &, MetaDataObjectBase * );
 + std::vector< std::string > Keys() const;
  • add a specific language customization for python, to make the metadata accessible in a more usual way.
 + a __setitem__() method to add/modify a metadata in the dictionary
 + a __len__() method to return the number of metadata in the dictionary
 + a __getitem__() method - this one should take care to down cast the object to its real type
 + a __str__() method to print the content of the dictionary
 + a __iter__() method to return every elements in the dictionary one by one
  • github commits
    • a6ac0ee ENH: Throw an itkGenericException if the key does not exist
    • 627088b ENH: Throw an itkGenericException if the key does not exist
    • f20d82f ENH: Changes to the itkMetaDataDictionary Get function
    • fc86b99 ENH: Added more types that can be held in MetaDataDictionary
    • 6348f2d ENH: Put the Get function call for an inavid key inside the try/catch block
    • 3632b44 ENH: Changes for adding default types in the ITKMetaDataObject.wrap and CMakeLists.txt for new test in Python to check the MetaDataDictionary
    • 6d07367 ENH: Added new python test for MetaDataDictionary
    • 9a3fe08 ENH: Suppress sswig warning for %extend directive
    • a101ed3 ENH: Added functions __str__, __itr__, __setitem__ and __len__ to make the metadata accessible in a more usual way
    • ec3eb48 BUG: Fixed the spurious comma which generated the incorrect code
    • ce6ecfb ENH: Modified the setitem function to support the array notation at the python interface, and, added code to the test file for MetaDataDictionary

included in ITK v4.alpha

Tcl SmartPointers

Look at how SmartPointers are replaced by swig proxy objects in python and java and explore the possibility to do the same in Tcl to decrease the build time of WrapITK.

not ready for beta.

Fix Installation

  • They are currenly in /usr/local/lib/cmake/ITK-4.0/WrapITK -- that's not good
  • Option ${CMAKE_INSTALL_PREFIX}/lib/ITK-4.0/ accepted in the ITK developers list
    • Put all wrapITK libraries here along with libraries of other packages. We won't require versioned names.
  • Gerrit-Push

Ready for Beta

Remove the USE_WRAP_ITK option

  • Enabling a language in cmake should be enough.

Not for Beta.

Build swig as an external project

  • As it's done for gccxml.
  • If you look in the gerrit abandoned patch, you will find a change proposed by Kent Williams which can be partially reused.
  • ONGOING

Ready for Beta

Integrate WrapITK in the ITK modularization

  • First step - Restructure the WrapITK Libraries directory to look it similar to the Modules directory here
  • ONGOING

Ready for Beta

Pending Tasks

Ready for Alpha

  • [GL-01] - [100%] - migrating to WrapITK 0.3
  • [GL-06] - [100%] - Default wrapped types [...],
  • [GL-08] - [33%] - Wrapping coverage,
    • metadata dictionary
    • macro moved to swig

ready for Beta

  • [GL-05] - [75%] - Redefine the WrapITK libraries, (follow modular, no need monolithic anymore)
  • [GL-14] - [--%] - Automatic type selection in Python,

Ready for Meeting MICCAI

  • [GL-03] - [--%] - Port the SWIG interface gen. to C++,
  • [GL-09] - [--%] - Binary distribution,
    • one full build, sub package ( python, java, tcl, dev (cmake, swig interfaces, ...) ) independently installable, possible to distribute
    • generation with CPack

Ready for Dec - end of contract

  • [GL-02] - [--%] - Add support for C#, => ashish
  • [GL-04] - [--%] - Add support for Python 3, => gaetan
  • [GL-07] – [--%] - Extend support to more types, (unsigned long for win 64 ) => Alex, replace all unsigned long by SizeValueType (done in ITK but not WrapITK)
  • [GL-10] – [--%] - language specific array conversion, (NOTE: simple itk did it for C# and java, we have it in python) => gaetan (python almost done, java and C# is being worked out in simpleITK, wait for them)
  • [GL-12] - [--%] - Automatic Inline documentation, done in python, prototype existing in Java. all is done in python, so we need to port it to C++ (see GL-03)
  • [GL-13] - [--%] - Target language inheritance, swig expertise, all languages => ashish
  • [GL-17] – [--%] - Documentation (user guide)
  • [GL-18] – [--%] - Documentation (dev. Guide)