collaboration model

The project is maintain by volunteers and is open to anybody interested in contributing to the project. To contribute, you can write code, review code, report bugs, suggest ideas, propose design changes, write documentation, answer questions in the mailing list, and much more. The more you contribute the more you can make a difference.

version control

S4 sources are available through git. Most development is done on the piper branch

See a summary here.

access to the repository

  • as a committer:
    git clone
  • as a user or contributor:
    git clone
    (though since June 2012, you may have to try with https :
    git clone
    , even though this is not reflected yet on the Apache git documentation).

    For more information, have a look there:

    creating an eclipse project


    ./gradlew eclipse
    You can now import the project into Eclipse. To learn more, visit the Gradle website.

    submission guidelines

    Before you start, send a message to the S4 developer mailing list, or file a bug report in Jira. Describe your proposed changes and check that they fit in with what others are doing and have planned for the project.

    modifying the source code

    Here are a few things to keep in mind:

    1. All public classes, interfaces, and methods should have informative Javadoc comments.
    • BAD: getCondensedLength(): Gets condensed length.
    • BETTER: getCondensedLength(): Number of characters in the string, excluding non alpha-numeric characters.
  • Do not use @author tags.
  • Code should be written according to Java's conventions.
  • Formatting: (from S4 0.5, see "automatic formatting" below)
    • Indent four spaces per level, not two or six or eight, etc... four.
    • No tabs for indentation, spaces only.
  • Contributions should pass existing unit tests.
  • New unit tests should be provided to demonstrate bugs and fixes. Junit is our test framework.
  • automatic source code formatting

    You must configure your IDE to follow the formatting guidelines. This is needed to get clean diffs.

    To automatically format code in Eclipse:

    1. preferences --> Java --> Code style --> Formatter , then import s4/config/eclipse/s4-eclipse-format.xml
    2. preferences --> Java --> Editor --> Save actions --> format source code, format all lines

    If you don't use Eclipse, you may still use Eclipse's code formatter in a standalone mode.