see also wiki:Installation, wiki:Dev, wiki:Doc, and wiki:Manual = 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. 1. Set up your OS. (I tinker a lot with mine so I maybe miss some). You have to [http://python.org/download/ install python in your OS] for tahoe to run. Most Linux distributions have it in their software repositories. 2. tahoe-lafs source code is hosted on darcs repositories (will [ticket:1644 move to git] at some point). Get darcs running in your machine. For Ubuntu just do this from a shell: sudo apt-get install darcs 3. Get the code from the main repo [wiki:Dev#SourceCodeviarevisioncontrol this way] 4. IDE: Install [http://eclipse.org Eclipse] + [http://pydev.org 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...) 5. (ToDo) Run the tests 6. ... m. Learn to use the [https://tahoe-lafs.org/trac/tahoe-lafs/browser/trunk/docs/logging.rst logging system] n. Learn [wiki:Patches how to submit patches] o. Dive into the code! See some [https://tahoe-lafs.org/pipermail/tahoe-dev/2012-May/007337.html tips for diving into Tahoe's source code] and follow the [wiki:CodingStandards coding standards] when you're ready to code. p. Learn [wiki:HowToWriteTests how to write tests]. Patches and new code should pass the automated testing before being eligible to be merged (see [ticket:68#comment:88 this comment]). There is a [https://tahoe-lafs.org/trac/tahoe-lafs/query?status=!closed&keywords=~test-needed list of patches needing tests] if you want to get your feet wet.