Add-on (extension) programmers should recognize that you only need to build it yourself instead of using a nightly if you have to call our APIs from C++ and need our headers. Or you might just be one of those crazy people like us who think this sort of thing is wild fun.
If, after those two paragraphs, you're still interested in hacking on the Core Songbird Player, then read on intrepid Birder, and soon you'll have your very own hatched Bird straight from our Nest. (and no, we never get tired of Bird word-play)
Songbird's source tree is segmented into two parts. The first contains all the Songbird source code, the second contains the dependencies for your paticular platform. Because we have a whole bunch of dependencies (XULRunner, libogg, VLC, sqlite, taglib, etc.) we make binaries for all the dependencies to lessen the pain of rebuilding Songbird.
If you wanna build stuff, you're gonna have to setup your build environment first. We use a few different build environments depending on what platform you use:
Congratulations that's it! You should now have a working Songbird binary. If you don't, then please let us know. Either file a bug, drop in IRC, or post a message in our forum so we can help you figure out what's b0rken.
Next thing you'll need is something to hack on. There are a few different ways. The first and easiest is to pick a bug off our list of bugs that we've flagged as being good starter bugs for new devs to bite into. The next way is to pop by our IRC channel. If you've got your own pet bug that is particularly bothering you, go file it and assign it to yourself!
Regardless of where you get your bug from, make sure you assign it to yourself and change the state to "ASSIGNED" (if you have edit-bugs privileges, or get someone in #songbird to do it for you).
As in any open source project, proven contributors will get privileges to edit bugs directly.
Start hacking away! We've got a ton of articles, references, sample code, etc. to help you get started. Got questions on anything? Definitely drop by our Developer Forums or IRC channel and ask!
As you can see, we're really big on using IRC. Please drop by and let us know what you're working on so we can point out any caveats and help out as much as we can. Also, if you're a new developer, you'll undoubtedly want someone to help mentor you through the process, assist with testing, and code review, and ultimately to sponsor your fix and commit it to the Subversion repository. IRC is currently the best way to achieve this. If you're out of sync with us in terms of time-zone, please add stevel@songbirdnest.com to the CC list of the bug you're working on and note that you're working on a community bug in the comments, and he'll make sure you're hooked up with someone to help out.
Part of testing Songbird often means wanting to clear and start Songbird with a clean profile. You can do this by either blowing away your current profile or creating new ones for testing & development. You can read more about either of these at our Uninstalling Songbird page.
In order to get your code integrated into Songbird's source, we need to have a contributor agreement/copyright assignment form filled out and signed by you. Grab one here, fill it out, sign it, and send it in! (You can send an electronic copy via email, fax, or mail it in old-school style)
IRC is a great way to get hooked up with code reviewers, but for folks who aren't synchronised on California time like the majority of Songbird developers, it can be a little hard. We've setup a Google Group (called sb_core) to help coordinate hooking people up with mentors, and code reviewers. Feel free to join up and request help however early on in the process, but definitely use it here in Step 7 to get code reviewers.
Next, create a patch (Run "svn diff" in the trunk directory), and add it as an attachment to the bug. To request a review set the review ? flag to the email address of your reviewer.
By this time hopefully you're already hooked up with someone who's helped you get code review, etc. Songbird's SVN obviously is not publicly commit-able, but any well-trusted Songbird developer should be able to help you commit your first few changes. Overtime, commit access is granted to contributors we know, trust, and love. :)
If you don't yet have commit access, you know the drill.... swing on by our IRC channel, or hit up sb-core and grab someone to help you commit your patch.
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |