• home
  • Hacker's guide to dradis

Hacker's Guide to Dradis

If you are contributing code to the Dradis Framework project, please read this first.

[ Note: there is lots to be added here regarding system design, architecture, dependencies, coding style, etc. The main reference creating this page has been: Hacker's Guide to Subversion. ]

Table of Contents

Participating in the community

Dradis is an open-source project published under a GPL v2.0 license.

The community exists mainly through mailing lists, a user forum and a Subversion repository. To participate:

  • Join the dradis-devel and dradis-svn mailing lists.

    The devel list is where almost all discussion takes place. All development questions should go there, though you might want to check the list archives first. The svn list receives automated commit emails.

  • Get a copy of the latest development sources from the repository.

    New development always takes place on trunk/. Bugfixes, enhancements, and new features are backported from there to the various release branches.

There are many ways to join the project, either by writing code, or by testing and/or helping to manage the bug database. If you'd like to contribute, then look at:

back to top

Contributing code

If you are considering contributing some code, please finish reading this guide (specially the coding style section).

Checkout the instructions on how to get the code from our subversion repository.

If you want your code to be included in the project please let us know. Please note that all contributed code will be distributed under the project's license. In order for your code to be included in the projects repository, you need to asign the copyright ownership of your code to the project.

To submit code, simply send your patches to the dradis-devel mailing list.

If you have created a plugin, consider posting in the User extensions and plugins forum to get some community feedback.

back to top

Subversion repository: Everything you need to know

The truth is that everything you need to know about the repository is captured in the README.svn file. However, there here are a few useful tips:

  • The repository is broken down in modules for the different Dradis components:
    • client: Console interface and wxWidgets GUI.
    • installer: Installer packages for different OS.
    • launcher: Helper application to configure and launch the Dradis components.
    • meta: Meta-information: license, release notes, README files, etc.
    • server: Ruby on Rails REST-enabled web application
  • If you want to learn how to work with the latest development release, read this.
  • We try to follow a Branch-When-Needed system.
  • Disruptive functionality and experimental branches are developed inside branches/experimental/.

back to top

Commit access to the Dradis repository

This is best explained in the How to become a committer page.

back to top

Coding style

The code in the Dradis Framework follows The Unofficial Ruby Style Guide coding guidelines. A brief summary:

  • Indent your code with two spaces per logical level. No tabs.
  • The maximum length of any line of your code should be 80 characters.
  • Use one whitespace around the assignment operator, except then assigning default values in method argument lists.
  • Stick to do and end, except when the entire iterator block fits on a single line.
  • Above all, be consistent.
  • Exercise common sense.

back to top