Metasploit Developer Introduction

This document is intended for developers that already have a user account. User accounts are provided to frequent contributors and core feature developers. If you don't have an account, you probably don't need one :-)

For a quick review of Trac features, please see TracIndex.

If this is the first time you have accessed this Trac install, please click on the Settings link and enter your real name and email address. If you have not changed your password yet, please do so at https://metasploit.com/dev/passwd.html.

Feel free to (ab)use this Wiki and the ticket tracking system for any development-related task. I don't trust Trac enough to open the bug database up to the unwashed masses yet, but this may change in the future.

The framework and rubyhacks CVS repositories have been converted to subversion. If you are the maintainer of another module and would like to see it imported into SVN, please let me know (hdm@metasploit.com).

Subversion project structures are a little different from CVS. Each project has three subdirectories (trunk, branches, tags):

project_name/trunk  == HEAD
project_name/branches/branch_name == Feature development
project_name/tags/tag_name == Milestones and releases

Creating a new branch:

$ svn copy trunk branches/my_branch

Creating a release:

$ svn copy branches/release_dev_branch tags/release_name

Copies are cheap in Subversion (copy-on-write/hardlink), so go crazy with branches if you are working on something that will break trunk.

The old CVS trees have been imported as 'framework2' and 'framework3'.

To obtain a local copy of the Subversion repository:

$ svn co svn+ssh://USERNAME@metasploit.com/home/svn/framework2
$ svn co svn+ssh://USERNAME@metasploit.com/home/svn/framework3

Permissions, keyword substitutions, and many other things are bit different with SVN, check out the online guide for more info: http://svnbook.red-bean.com/