wiki:NewbieDeveloperSetup

Version 21 (modified by amontero, at 2013-12-12T20:57:12Z) (diff)

--

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, and if you're prepared to accept the security issue of Travis needing write access, see these docs for how to 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.
  1. Hack as if there was no tomorrow :)
  1. Run the tests (watch out #2129)
     $ python setup.py trial
    
  2. Build
    $ python setup.py build
    $ python setup.py --help-commands  # TIP: run this for a complete list of options
    
  3. You can run the resulting binary inside "bin" subdirectory. If you want to distinguish versions in a mixed grid, see ticket:2131#comment:7.
  1. Learn to use the logging system
  1. Help reviewing patches. It is a good way to familiarize yourself with Tahoe-LAFS code and a lot can be learnt from the reviews before writting a single line of code.
  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.