Alite

Alite [’eilait] is a software toolkit helping with particular implementation steps during construction of multi-agent simulations and multi-agent systems in general. The goals of the toolkit are to provide highly modular, variable, and open set of functionalities defined by clear and simple API. The toolkit does not serve as a pre-designed framework for a complex purpose, it rather associates number of highly refined functional elements, which can be variably combined and extended into a wide spectrum of possible systems. Alite is licensed under LGPL3.

Documentation

Alite Main

Core

Modules

Experimental:

Conventions

Feature Acceptance Process

  • docs - javadoc, usage examples
  • tests - testing usage examples, testing complete documented functionality
  • design compliance - loosely coupling, API centric

Code (Eclipse Formatter)

  • indentation: 4 spaces
  • no trailing whitespaces
  • coding style: http://java.sun.com/docs/codeconv/
  • maximum line width: 100
  • no standard Eclipse warnings and errors in cz.agents.alite package
  • no standard Eclipse errors in experimental modules (warnings are tolerated in experimental modules)

Committing

  • small atomic commits (logically bounded change)
  • commit whole branch
  • for larger changes in cz.agents.alite package do special branch
  • always use commit message
  • commit message has format:
    One line of commit summary (fixes #XYZ)
    
    Optionally explanation of the commit details.
    
  • if a commit fixes a redmine issue, add (fixes #XYZ) and redmine will automatically mark it as fixed (if the commit does not fix anything in redmine do not add (fixes #XYZ) into commit message)
  • in case of (fixes #XYZ), the commit summary should copy the title of the issue #XYZ
  • do not commit any commented-out code

Version Schema

major.minor(.revision|-SNAPSHOT)

  • major = complete redesign (major API changes - no backward compatibility)
  • minor = larger changes/cumulated changes (minor API changes - as most as possible of backward compatibility, simply describable code migration process, e.g. method naming)
  • revision = fixes, new features (only compatible API changes - full backward compatibility)
  • SNAPSHOT = newest snapshot of major.minor version

Repositories

On Mercurial (Mercurial on Smith tutorial):

Blueprints

Strategic areas of development:
  • Reporting and Visualization -- post-analysis, replay, debugging support etc.
  • Communication -- low-level (transport etc.) vs. high-level (protocols etc.)
  • Agent Control (behavior modularization) -- activities vs. actions, agent memory etc.
  • Graph/Network Environments -- representation of graph-based environments (streetnetworks etc.)