Home

Awesome

ELK Models Repository

This repository holds test models for the Eclipse Layout Kernel project. These test files are used while developing our layout algorithms, to reproduce and fix bugs, and to run automated tests to ensure the bugs remain fixed.

Repository Layout

On the top level, the repository contains the following folders:

FolderDescription
testsTest graphs written or generated by us.
realworldGraphs obtained by converting examples from the real world into formats we can use.
ticketsGraphs that reproduce problems described in GitHub tickets.
examplesExample graph specifications that illustrate common ELK layouter configurations.

Both tests and tickets are further subdivided into folders specific to layout algorithms (layered, force, etc) or applicable to all algorithms (common). In the test tree, these folders may contain further folders specific to the respective tickets, if more than one file is produced for a given ticket.

File Types

The file types we use are the following:

TypeDescription
.elktTextual ELK graph language. See the specification.
.elkgEMF's XMI-based representation of ELK graphs.
.json JSON files. See the specification.
.mdReadme files can be placed in folders to describe their purpose.

License Headers

All files except for the JSON files must contain a proper licence at the file header. The license.py script in the repository's root folder can help (requires Python >= 3.5). Common use cases:

# Ensure all files have licence headers
python3.6 license.py --verbose --company "Your company's name"

# Add licence headers to files staged for commit
python3.6 license.py --verbose --staged --company "Your company's name"

# Also update existing licence headers to include the current year
python3.6 license.py --verbose --staged --update --company "Your company's name"

To see what the script would do, add the --dry-run option (or -n for short).

See the command-line help for more options (--help).