Personal tools

Difference between revisions of "Mohid's wishlist"

From MohidWiki

Jump to: navigation, search
(Technical aspects)
(Technical aspects)
Line 8: Line 8:
 
== Technical aspects ==
 
== Technical aspects ==
 
Some features should be in place from inception:
 
Some features should be in place from inception:
* unit tests;
+
* unit tests:
* integration and acceptance tests;
+
: testing is an integral feature of modern development, a unit test framework will be selected ([http://fortranwiki.org/fortran/show/Unit+testing+frameworks here is a list of Fortran unit tests frameworks]);
 +
* integration and acceptance tests:
 +
: [http://fortranwiki.org/fortran/show/Unit+testing+frameworks Jenkins] is an open source continuous integration tool;
 
* separate core functionality from pre- and post-processing:
 
* separate core functionality from pre- and post-processing:
 
: currently most of Mohid is not the core functionality, is is stuff like importing data form external sources, interpolation and other spatial and temporal treatment of input data and writing results to several formats.
 
: currently most of Mohid is not the core functionality, is is stuff like importing data form external sources, interpolation and other spatial and temporal treatment of input data and writing results to several formats.
Line 15: Line 17:
 
: for instance HDF should be pushed to pre- and post-processing. Compiling the core should only need a Fortran compiler with MPI and OpenMP capabilities;
 
: for instance HDF should be pushed to pre- and post-processing. Compiling the core should only need a Fortran compiler with MPI and OpenMP capabilities;
 
* JSON input:
 
* JSON input:
: data input is done using Mohid's DSL (Domain Specific Language), developed in the '90s (it is strongly influenced by XML). Using JSON would increase interoperability with other languages and tools.
+
: data input is done using Mohid's DSL (Domain Specific Language), developed in the '90s (strongly influenced by XML). Using JSON would increase interoperability with other languages and tools;
 +
* GIT:
 +
: V5 should use a modern version control system, what about GIT?

Revision as of 15:49, 15 September 2014

Mohid V5 is now taking momentum. This is now in very early stages but since it already started rolling, it is unstoppable. Here you may find V5's aspirations and guidelines and V4's week points are highlighted (lets avoid them).

Clean slate

Mohid V5 is starting with a clean slate, our main golas are:

  • develop with paralelization in mind; and
  • contributions should be simplified.

Technical aspects

Some features should be in place from inception:

  • unit tests:
testing is an integral feature of modern development, a unit test framework will be selected (here is a list of Fortran unit tests frameworks);
  • integration and acceptance tests:
Jenkins is an open source continuous integration tool;
  • separate core functionality from pre- and post-processing:
currently most of Mohid is not the core functionality, is is stuff like importing data form external sources, interpolation and other spatial and temporal treatment of input data and writing results to several formats.
  • avoid external dependencies in the core:
for instance HDF should be pushed to pre- and post-processing. Compiling the core should only need a Fortran compiler with MPI and OpenMP capabilities;
  • JSON input:
data input is done using Mohid's DSL (Domain Specific Language), developed in the '90s (strongly influenced by XML). Using JSON would increase interoperability with other languages and tools;
  • GIT:
V5 should use a modern version control system, what about GIT?