Tuesday, October 13, 2009

Robocode Project Hosting: "You've got mail!"

As the final element to the Robocode battle-robot building project that I have been working on for the past month for my software engineering course, I utilized Google Project Hosting to make my code easily available for revision. Throughout all of the assignments, my classmates and I have run into problems accessing eachother's code, and it has been an inconvenience to make a small change to a file, re-package the file, and then upload it again. This assignment sought to solve some of these problems.

I began working on the assignment by downloading a Subversion client. Subversion (SVN) is an open-source version control system, which manages files and directories over time. It keeps track of files and directories, allowing for multiple users to edit a file system, and to make it possible to always go back to a previous version of the system. The advantage to this in terms of working on programming projects is that Subversion will allow multiple programmers to work on a set of files, while doing the work to keep all of the files for all of the programmers up to date.

I chose to download TortoiseSVN, which is a version control software for Windows. It uses subversion to manage files that can be downloaded from a repository like the one available through Google Code. After downloading and installing TortoiseSVN, I was able to use it to log in and checkout a sample project from my instructor. This process means that I downloaded the code for the project with the ability to update the files in the original repository. (On the other hand, if I had merely wanted to view the source code, I could have checked it out anonymously.) I made a small edit to the downloaded code, then comitted my change so that it would be made publicly available for future users.

After getting the hang of using TortoiseSVN, I then endeavored to create my own project on Google Code, to make the code for my Robocode robot, PacerEvader, easily available for other programmers. I also created a Google group to discuss the project. In practice, this was not particularly necessary, as my robot is more or less completed, and it was an individual project. However, I can see many advantages if a programming project was worked on by a group of programmers. This is because it would be easy for all members of the group to maintain an up-to-date file set and to distribute any changes that he or she made.

I ran into one major problem while using the Google tools to manage my project, and that was in linking my Code project with the related Group. The Google Code site has the ability to send an e-mail to a single specified e-mail address whenever a change is made to the site, and the Google Group has the ability to receive posts via e-mail. Together, they seem to match up perfectly, except that I have not yet been able to link the two together. This is due to a reported bug that exists, where Google Groups does not allow the e-mail address that Google Code uses to send e-mails (more information on the issue here). New projects have an updated, working address that is used, and I have currently filed a request for the e-mail address used by my Google Code project to be updated, but as of now (October 13 at approximately 12:30pm HST), this issue has not been resolved. I have verified the set-up of both my Google code project and my Google group, so the e-mail notifications should work once the project is updated. (10/13, 4:30pm edit: My project was updated so that it sent from a new e-mail address accepted by Google Groups. I have since verified that the Google Code project will post to the discussion group when changes are made to the code.)

No comments:

Post a Comment