getting started developing
THESE INSTRUCTIONS ARE DEPRECATED! PLEASE SEE http://trac.openplans.org/openplans/wiki/GettingStarted INSTEAD!
This page is a resource under construction (being built in part by mchua while getting started) but is intended to be a portal to help incoming developers get on their feet - the goal is to have something usable by external volunteer developers with previous open-source development experience but who may not have access to the 20-some brilliant coders in the TOPP office walking them through every step.
We assume readers of these pages will:
- Be hackers, or in the process of becoming such. ;-) There's a good essay on howto become a hacker by Eric S. Raymond if you're trying to get into the mindset we share. Raymond's other writings, notably The Cathedral and the Bazaar, may also prove illuminative.
- Like open source software and be willing to adhere to its community's principles. If you're unfamiliar with open source, here are some resources on what open source is, why people use it, and how contributing to them usually works.
- Run some flavor of Unix. Here in the office, we prefer to do our development in Linux, mainly Ubuntu and Gentoo. Some TOPP coders use Mac OSX as well. Windows is highly not-recommended; theoretically, it might be possible with Cygwin, but none of us have been masochistic enough to try it.
- Be willing to learn, ask a lot of questions, make mistakes, and teach others. Asking questions is a particularly important skill of hackerdom; here's how to do it. In particular, see the section on what to do before you ask.
- Have some basic familiarity with the openplans software as a user. If not, go to http://openplans.org, create an account and join/add a test project, and play around for a few days. You will need an openplans.org account to access most of the information the development community uses anyhow. Also, write down your impressions if you're a first-time openplans user; they make valuable fodder for feature requests, bug reports, and project ideas later on.
- Know how to code, preferably in Python. If you're new to programming, Python, or both, work through the here to install and go through your first tutorials (my personal favorites: Dive Into Python for experienced programmers, How To Think Like A Computer Scientist for beginning ones.) If you're a beginning coder, expect a steep learning curve.
- Know how to use SVN (Subversion, our version control system), IRC (Internet Relay Client, our chat system) and Trac (our ticketing system). You can learn these by using our systems as you go along in development, but it's good to know what they are.)
Projects, or: What We're Doing
Setting up your development machine
(This section is from the perspective of an Ubuntu user running Gutsy, the latest release as of this writing on 2/6/08.)
see http://www.openplans.org/projects/opencore/getting-started and http://www.openplans.org/projects/opencore/building-opencores-notes - the latter is commentary on the former. This is messy and needs much clean-up.
Making accounts and getting information
Make accounts on the following sites:
- http://www.openplans.org - you will probably want to join several projects:
- opencore (main development project)
- opencore-devtest (software testing and QA)
- user-test (user testing of the openplans software suite)
- operations (engineering milestones and deployments of specific sites such as openplans.org)
- projects for any specific components you're interested in developing (such as deliverance or fassembler)
- If you're working at the TOPP office, talk to some of the other developers, Jackie, and Vanessa, and they'll show you internal projects and lists you should be on.
This section is very, very much under construction.
<insert section on who to ask about what here>
Testing: rmarianski and funky_c
The development process
Er... coming soon?
Upcoming Big Goals
The Big Big Goal is woonerf, code for the Big Integration Release that will tie together streetfilms, streetsblog, and openplans.org. This is slated to happen in mid-March 2008, with an invite-only Beta for a week or so beforehand.
Picking a project
More to come on this.
More to come on this.