# 0.9.0

- Release log
- Documentation
- Update site
- Zipped update site (for offline use)
- Maven central (for building pure Java projects that use ELK)

## Details

This is mainly a bugfix release. See GitHub for the full list of resolved issues.

### New Features and Enhancements

- #962, #914: Added an experimental Depth-First and Breadth-First model order layerer.
- #867, #902: Added a model order layering by node promotion.
- #956, #942, #927, #926, #921, #893, #892, #886: Added libavoid for standalone edge routing.
- #945, #941: Added option for initial rotation of radial layout.
- #947, #951, #940, #936, #932, #843: Added topdown layout and top-down rectangle packing algorithm.
- #939, #930: Added port model order.
- #922: KVectors now have a rotation utility method.
- #406, #884: MrTree edge routing options + interactivity and model order.
- #889: Added experimental bendpoints to force layout.
- #877: Added new model order strategy.
- #834, #833, #855, #843: Support for fixed graphs for mrtree, force, stress, radial, and rectpacking.

### Changes

- #973, #702, #794, #900, #807: Moved from Java 8 to Java 11 while testing compliance with Java 17.
- #876: Renamed and reworked FORCE_MODEL_ORDER component ordering strategy to MODEL_ORDER and GROUP_MODEL_ORDER component ordering strategy.
- #651, #885: Report invalid hierarchical cross min configuration instead of fixing it.
- #865, #835: Restructure and improve rectpacking. This includes a lot of renaming. `optimizationGoal` is renamed to `widthApproximation.optimizationGoal`, `lastPlaceShift` is renamed to `widthApproximation.lastPlaceShift`, `onlyFirstIteration` is deleted, `rowCompaction` is now the default `packing.strategy` `COMPACTION`, `packing.compaction.rowHeightReevaluation` and `packing.compaction.iterations` are added to further improve the packing compaction, `expandNodes` and `expandToAspectRatio` have been reworked into `whiteSpaceElimination.strategy`s `EQUAL_BETWEEN_STRUCTURES` and `TO_ASPECT_RATIO`, `targetWidth` is now set via `widthApproximation.targetWidth`and is enabled by setting the `widthApproximation.strategy`, the `inNewRow` option can constrain the packing, and the `tryBox` option may be set to try whether the rectangles are stackable and in the case they are not use the simpler `box` layout algorithm.

### Bugfixes

- #957: Corrected node node spacing usage for radial layout. The node node spacing is now halved and used as a padding around the nodes.
- #946, #944: Fix hyper edge segment splitter to actually save the best area after finding it.
- #850, #938: Port labels no longer overlap with self loops.
- #918, #933: Fix port model order comparator.
- #923: Wrapping strategies do now correctly work together with model order.
- #906, #905, #913: Fix tail edge labels.
- #869, #911, #868: Model order bug fixes.
- #870: Fixed NoSuchElementException in network simplex node placer.
- #890: Correctly check whether the layered algorithm is set.
- #852, #841: Inline edge labels are now correctly centered (hopefully).
- #887: Miscellaneous bug fixes.

### Cleanup

- #924: Corrected pom license for maven central.

- Releases
- 0.9.1
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0