wiki:NewbieDeveloperSetup

Version 14 (modified by amontero, at 2013-09-02T16:39:59Z) (diff)

minor typo

Attention: this page is for Tahoe-LAFS developers. If you are not a Tahoe-LAFS developer, then the page you want is quickstart.rst.

see also wiki:Installation, wiki:Dev, wiki:Doc, wiki:Manual, and wiki:CompileError

Newbie Developer Setup

As I'm progressing my first steps in hacking tahoe-lafs I thought it might help others and this is what you're reading now. Be bold editing and improving this doc, since I'm not even familiar with Python and lots of you can document your own 'best practices' for other newbies.

I will use Eclipse IDE because of wide use and availability. But just because I'm used to it. You might have your preferred tools. I'm on Ubuntu.

The easiest workflow you can use is by working using Github's Pull Requests. Tahoe-LAFS's code has automated test coverage and each PR you will send will be tested automatically. However, if you want tests to be run even before sending a PR, set up Travis CI on your own GitHub forked repo. This way, each commit you'll make, will have tests run on it.

  1. Set up your OS. (I tinker a lot with mine so I maybe miss some). You have to install python in your OS for tahoe to run. Most Linux distributions have it in their software repositories.
  1. tahoe-lafs source code is hosted in git repositories on github. Get git running in your machine. For Ubuntu just do this from a shell: sudo apt-get install git
  1. Get the code from the main repo this way
  1. IDE: Install Eclipse + PyDev in your platform. You can start from a "classical" Eclipse install and add the "Software sites" URL http://pydev.org/updates. You can then go to 'Install new software' menu item and add PyDev? from there.

(to be continued...)

  1. (ToDo?) Run the tests
  1. ...
  1. Learn to use the logging system
  1. Learn how to submit patches
  1. Dive into the code! See some tips for diving into Tahoe's source code and follow the coding standards when you're ready to code.
  1. Learn how to write tests. Patches and new code should pass the automated testing before being eligible to be merged (see this comment). There is a list of patches needing tests if you want to get your feet wet.