Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 21st, 2012  |  syntax: None  |  size: 2.45 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. ================================================
  2. Bootstrapping a SciPy-related community project
  3. ================================================
  4.  
  5. This document is a lightning talk: it only gives pointers, you need to
  6. Google and read references
  7.  
  8. Goal
  9. =====
  10.  
  11. Creating a community-driven project in Scientific Python. For the success
  12. of the project, garnering good developers is critical.
  13.  
  14. Preliminaries
  15. ==============
  16.  
  17. * Join an existing project rather than creating one, if one exists in
  18.   the scope that you are interested in.
  19.  
  20. * Discuss your project on the scipy-dev mailing list
  21.  
  22. Ingredients for success
  23. ========================
  24.  
  25. * Success with developers == Success with users
  26.  
  27. * Bootstrap with the right people and grow
  28.  
  29. * Documentation is key for end-users and developers
  30.  
  31. * Tests are necessary
  32.  
  33. * Well defined goal and scope
  34.  
  35. * Keep bounds on technical difficulty
  36.  
  37. * Short release cycles
  38.  
  39. * Focus on not *owning* the project
  40.  
  41. * Communicate a lot (blog, twitter, mailing lists), but with a good
  42.   signal-to-noise ratio
  43.  
  44. Technical recipe
  45. ==================
  46.  
  47. * Use git + github:
  48.     - Create an organization on github http://github.org
  49.     - Learn git (large investment, you'll struggle).
  50.     - Host the website on github
  51.  
  52. * Create a mailing-list (host it on http://librelist.com or google
  53.   groups)
  54.  
  55. * Use Sphinx (http://sphinx.pocoo.org/) for the documentation and website
  56.  
  57. * Do many tests with nosetests
  58.  
  59. * Do a lot of code review using github pull request mechanisms. Try to
  60.   have people reviewing your own code. Value criticism. Give positive and
  61.   polite criticism.
  62.  
  63. * make a setup.py, package your code (see distutils documentation,
  64.   http://packages.python.org/an_example_pypi_project/index.html and
  65.   example packages listed below).
  66.  
  67. * Separate the code from the examples. Ideally generate documentation
  68.   from examples (as in scikit-learn/scikit-image)
  69.  
  70. * start with pure Python code (after a year and some community building,
  71.   you can introduce Cython).
  72.  
  73. Examples project
  74. =================
  75.  
  76. Inspect the social dynamics and technical choices of successful projects
  77. (list below reflects personal bias)
  78.  
  79. * Joblib (http://packages.python.org/joblib/)
  80.   Very simple example of a project with tests, packaging and
  81.   documentation
  82.  
  83. * scikit-learn (http://scikit-learn.org) and scikit-image
  84.   (http://scikits-image.org/): mature projects with a striving social
  85.   dynamic. In particular, read the developer guidelines for the
  86.   scikit-learn:
  87.   http://scikit-learn.org/dev/developers/index.html