Initial idea from software carpentry: http://swcarpentry.github.io/slideshows/best-practices/index.html http://dx.doi.org/10.1371/journal.pbio.1001745
- Structure the project
###1.1 Structure your code###
- separate library from scripts
- separate GUI from calculation
- a word about licenses
###1.2 Coding convention###
- Introduction to PEP8
- Transition to Python3
###1.3 Use a version control system###
- Git version control
- Workflow enforced by GitHub
- Distribute the software
###2.1 setup.py and setuptools###
###2.2 Management of dependencies###
###2.3 Packages: wheels & deb###
###2.4 Fat binaries###
- Tests
###3.1 UnitTest module###
###3.2 Chain tests in testsuites###
###3.3 Continuous integration###
- Jenkins
- Travis-CI
- AppVeyor
- Documentation
###4.1 Different types of documentations###
- Abstract
- Installation
- Tutorial
- Generated API documentation
###4.3 ReStructuredText###
###4.2 Sphinx###
###4.3 Continuous documentation###
- ReadTheDocs.org