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 :-)

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

Subversion directory layout:

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.

To obtain a local copy of the Subversion repository:

$ 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/

Once you've checked out the repo, see the DeveloperGuide.

You may also want to see Setting Up a Development Environment