Skip to content
Juanlu edited this page Dec 22, 2015 · 65 revisions

Philosophy

AML developers focus efforts on two goals: simplicity (so people can actually use the platform) and robustness (so they create things that work). They also attempts to provide a well-designed, maintainable, and stable library for the future.

This means:

  • focusing on official standards
  • emphasizing API design
  • emphasizing real use cases over theoretical possibilities

For those people who want to help to improve this project, we propose the development policy presented below.

AML uses git-flow philosophy. Please, read these guides carefully: git-flow cheatsheet and A successful Git branching model. We recommend you to use SourceTree to handle repositories.

Reporting bugs

If you’ve found a bug, please add it to the issue tracker. The more specific you can be about the steps that lead to the problem, the better.

If a bug has been reported in the forums, feel free to copy it into the issue tracker. Summarize the issue and link to the original forum posting.

Style guidelines

Please, follow these rules in order to make your code easy to read and understand by everybody.

  • Comments and logs should be in English
  • Remove unuseful comments
  • Use Logger instead of System.out.print
  • Fully qualify imports
  • Remove unused imports
  • Try to keep your code without warnings
  • Don’t ignore exceptions
  • Don’t catch generic exception

More about java code style here

Policies

First of all, read the style guidelines carefully. We recommend you to read the documentation and the javadoc before start to develop.

First steps

If this is your first time working with AML, clone the AML repository:

  • HTTPS: https://github.com/isa-group/aml.git
  • SSH: git@github.com:isa-group/aml.git

Developers

  1. Open a new issue in GitHub and describe the feature that will be available. Link this issue to the current milestone. Copy the #id of the issue (i.e. #224). If you decide to work on this feature/bug, assign it to you.
  2. Use SourceTree to create a new feature branch or use the following git flow command:
    git flow feature start “#featID-title”

  3. While you are developing, be aware of develop remote branch updates by pulling them into your branch. If there is any conflict, resolve it.
  4. Create a new test in the test.core folder to test the new feature of fix.
  5. Run mvn test command with the “aml-developer” profile:
    mvn test -Paml-developer
  6. Create file #featureName.testresult under QA directory with the result of the tests
  7. Create the pull request.

The following keywords will close an issue via commit message:

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

Release Manager

  1. Create Milestone in GitHub
  2. Verify all QA tests submitted by developers
  3. Review and merge all pull requests. Resolve conflicts if necessary
  4. Run and verify tests with the pull requests merged
  5. Resolve possible conflicts
  6. Update version in AgreementManagementLibrary/pom.xml
  7. Run mvn test command with the “core-tests” profile
    mvn test -Pcore-tests
  8. Add test results to QA directory
  9. Update CHANGELOG.txt with the latest features/bugfixes
  10. Generate JAVADOC
  11. Add JAR to “releases” folder in gh_pages branch
  12. Inform developers about a new version of AML was released

Diagram files:
Developers diagram details
Release Manager diagram details

Roles

Role Responsability Assignee
AML Maintainer Coordinates the development Juan Luis de la Fuente
(jdelafuente@us.es)
AML Developer Development tasks Carlos Müller
(cmuller@us.es)
AML Developer Development tasks Antonio Gámez
(antgamdia@us.es)
AML Developer Development tasks Manuel Arenillas
(marenillas@us.es)

Supported features

Model

Operation