Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Send the following information to cwilper (at) fedora-commonsduraspace.org:
    • Your fedora-commons.org userid (If you don't have one, create one here).  This is used to grant you committer-level permission on the resources hosted on our main website (JIRA, Confluence, Bamboo, etc)
    • Your sourceforge.net userid (If you don't have one, create one here).  The code repository is currently hosted at sourceforge.net, so we need your userid there in order to grant you write access.
    • If you're a Skype user, your Skype userid.  If you don't use Skype, please provide a phone # and/or Instant Messaging info.
  2. Sign up to the Fedora Development list.
  3. Sign up to the Fedora Codewatch list using your userid@sourceforge.net address.  This is a public list that all committers subscribe to.  It's used solely for automatic notification of Subversion commits and automated test results.  It is necessary to sign up using your sourceforge.net id; commit notification will not work otherwise.  Make sure you have set up your Sourceforge account so that emails to userid@sourceforge.net are forwarded to your usual address.
  4. Get familiar with compiling and testing Fedora.

...

  • Code Style
    The project's coding style is currently best described by the Eclipse settings in src/build.  Here are the major rules:
    • Four space indents for Java, and 2-space indents for XML. NO TABS.
    • K&R style braces:
      Code Block
      
      if (code) {
        // code
      } else {
        // code
      }
      
    • Dont use wildcard imports
    • Write Javadocs for public methods and classes.  Keep it short and to the point.
    • Avoid public instance variables; use accessors.
    • Use public methods sparingly; implementation details are not public.
  • Logging
    We currently use Log4J for logging.  This may change in the future, but until it does, please be consistent.  When writing log messages (especially INFO, FATAL, and WARN), consider your audience.  Don't over-use INFO; these messages are always logged by default.
  • Testing
    Use JUnit for unit, integration, and system tests.  When making changes, please take the time to write tests as needed.  We are not looking for 100% coverage here, but the developers will have a lot more confidence in your code if you can show that it works.  See the readme.txt in the root of the source tree as a jumping-off point for adding your tests to one of the suites.  Here's a brief description of the basic types of tests we run:
    • Unit - Tests a single class.  These tests are typically very quick to run, and therefore get the most use by developers.  Unit tests don't touch the disk or interface with classes other than mocks.  If you can cover a scenario adequately in a unit test, you should prefer implementing it as such (and not as an integration or system test)
    • Integration - Tests multiple classes working together.  May touch disk or interact with a "test" database.
    • System - Works against a running Fedora server in a given configuration.  These are "block box" style tests against the public APIs of Fedora.  These take much longer to run than unit or integration tests because they require significant setup.

...