Building and Contributing

Building Adama requires

  • Java SDK 17+
  • Maven 3
  • Python 3
  • uglify-js ( npm install uglify-js -g )

build.py

Adama uses extensive code generation (however, there may be some platform unstable bugs), and code generation is required for:

  • adding/updating APIs to saas
  • building the error tables
  • introducing new messages between web client (i.e. the load balancer) to the adama service
  • regenerating and validating changes to the language and template (there are code generated tests that validate output is stable between check-ins)
  • updating gossip codec
  • enforcing copyright notice
  • regen the platform version

core workflow

While developing, regenerating is done via

./build.py --jar --fast --generate

where tests are skipped and generation marches onward. Caveat: this introduces some platform-specific noise which is not desirable, and we need to eradicate those differences.

Prior to checking in:

./build.py --clean --jar

The binary will be release/adama.jar which you can copy to your home or project path.