Antonino Ingargiola Gone through coding style section.  about 8 years ago

Commit id: 172e44f2b6ed8a19d34e0e21c8d676457ca4daf7

deletions | additions      

       

Bugs are an inevitable reality in any reasonably complex software. It is   therefore critical to implement countermeasures measures which  minimize the probability of introducing bugs and their potential impact~\cite{Prli__2012}. impact~\cite{Prli__2012, Wilson_2014}.  We strive to follow moder best-practices in software development which are summarized   below. 

reduce the number of bugs by facilitating understanding and verifying the code.  For this puporpose, FRETBursts code-base is well commented (more that 35\%  of source code),   follows the \href{https://www.python.org/dev/peps/pep-0008/}{PEP8 PEP8  python code style rules}. rules (\href{https://www.python.org/dev/peps/pep-0008/}{link}),  and has docstrings in \href{http://sphinxcontrib-napoleon.readthedocs.org/}{napoleon format}. napoleon format (\href{http://sphinxcontrib-napoleon.readthedocs.org/}{link}).  Reference documentation is built with \href{http://sphinx-doc.org/}{Sphinx} Sphinx (\href{http://sphinx-doc.org/}{sphinx-doc.org})  and all the API documents are automatically generated from docstrings. On each commit, documentation is automatically built and deployed on  \href{https://readthedocs.org/}{ReadTheDocs.org}.  Unit tests cover most of the core algorithms, ensuring consistency and  minimizing the probability of introducing bugs.   The \href{http://travis-ci.org}{Travis CI} TravisCI (\href{http://travis-ci.org}{link})  continuous integration service, executes the full test suite on each commit, timely reporting errors.  As a rule, whenever a bug is discovered, the fix also includes a new test  to ensure that the same bug cannot happen in the future.  In addition to the unit tests, we include a \href{https://github.com/tritemio/FRETBursts/blob/master/notebooks/dev/tests/FRETBursts\%20-\%20Regression\%20tests.ipynb}{regression-test notebook} regression-test notebook  (\href{https://github.com/tritemio/FRETBursts/blob/master/notebooks/dev/tests/FRETBursts\%20-\%20Regression\%20tests.ipynb}{link})  to easily compares numerical results between two versions of FRETBursts.   Additionally, the tutorials themselves are executed before each release as  an additional test layer to ensure that no errors or regressions are introduced.  Finally, FRETBursts is openly developed using  the full set GitHub platform.  Contributors  of notebooks used any level of expertize are welcome  in the multi-spot paper analysis,  including notebooks for extensive µs-ALEX analysis are periodically  re-executed projects  and results compared across executions publically acknowledged.  Contributions can be as simple as pointing out deficiencies in the   documentation but can also be bug reports or corrections  toensure that  they agree within  the floating point tolerances.  Code readability, best-practice development style documentation or code. Users willing to implement  new features are encouraged to open an Issue on GitHub  andextensive testing  contribute  to minimizing the presence submit  a Pull Request. The open source nature  of bugs in FRETBursts. FRETBursts guarantees that  contributions will remain available to the entire single-molecule   community.