Flamenco
About Download Documentation FAQ Get Involved Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Generating Code

Some code (Go, Python, JavaScript) is generated from the OpenAPI specs in pkg/api/flamenco-openapi.yaml. There are also Go files generated to create mock implementations of interfaces for unit testing purposes.

Installing the Code Generators

There are three code generators used by Flamenco:

Go code generators

The first two generators can be installed with either of these commands:

# Simplest way to install the Go generators:
$ go run mage.go installGenerators

# Faster to re-run than the above, but does require Make:
$ make install-generators

Python and JavaScript code generators

openapi-codegen is bundled with the Flamenco sources, but does need a Java runtime environment to be installed.

On Ubuntu Linux this should be enough:

$ sudo apt install default-jre-headless

Other Linux distributions very likely have a similar package.

Option 1 (Native install)

Use the official Java installer.


Option 2 (Homebrew)

Install Java via homebrew:

brew install java

Note that this requires XCode to be installed.

Committing Generated Code

Generated code is committed to Git, so that after a checkout you shouldn’t need to re-run the generator to build Flamenco.

The following files & directories are generated. Generated directories are completely erased before regeneration, so do not add any files there manually.

  • addon/flamenco/manager/: Python API for the Blender add-on.
  • pkg/api/*.gen.go: Go API shared by Manager and Worker.
  • internal/**/mocks/*.gen.go: Generated mocks for Go unit tests.
  • web/app/src/manager-api/: JavaScript API for the web front-end.