Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[KED-2212] Improve graph layout code quality, performance and docs #347

Merged
merged 6 commits into from
Feb 12, 2021

Conversation

bru5
Copy link
Contributor

@bru5 bru5 commented Jan 11, 2021

Description

Pure refactor to improve graph layout code quality, performance and docs.

Development notes

Inverts control of solver.js to make constraints easier to understand and increase their flexibility.

Splits the graph layout.js further into more functions with improved comments for clarity.

There will be some performance improvement from reduced function calls, memory usage and garbage collection (most noticeable in graphs with a high number of edges).

There is still some way to go in fully documenting the graph engine but this will be a gradual process.

QA notes

There should be no change in results, this is a pure refactoring.

Test all features that trigger graph layout, on various graphs, compare with the previous release.

Checklist

  • Read the contributing guidelines
  • Opened this PR as a 'Draft Pull Request' if it is work-in-progress
  • Updated the documentation to reflect the code changes
  • Added new entries to the RELEASE.md file
  • Added tests to cover my changes

Legal notice

  • I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":

  • I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.

  • I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorised to submit this contribution on behalf of the original creator(s) or their licensees.

  • I certify that the use of this contribution as authorised by the Apache 2.0 license does not violate the intellectual property rights of anyone else.

@bru5 bru5 changed the title [KED-2212] Refactor to tidy, improve comments on graph layout code [KED-2212] Improve graph layout code quality, performance and docs Feb 3, 2021
Copy link
Contributor

@richardwestenra richardwestenra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one! Approved with caveats - it might be worth adding a little more documentation if you don't mind!

src/utils/graph/constraints.js Show resolved Hide resolved
src/utils/graph/constraints.js Show resolved Hide resolved
@@ -1,4 +1,4 @@
import { distance1d, greaterOrEqual, equalTo, subtract } from './common';
import { Constraint, Operator, Strength } from 'kiwi.js';

/**
* Constraint base definitions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mind expanding on this comment a little to explain what this means?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There will be some follow up work coming soon which might change this up a bit, but then I think it will be stable enough to get documenting, if that's reasonable?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, but it might be worth adding a JIRA ticket for these subsequent documentation improvements if they're out of scope for this PR

# Conflicts:
#	src/utils/graph/constraints.js
#	src/utils/graph/graph.test.js
#	src/utils/graph/layout.js
#	src/utils/graph/solver.js
@bru5 bru5 merged commit ff9057f into main Feb 12, 2021
@bru5 bru5 deleted the refactor/tidy-graph branch February 12, 2021 15:16
@richardwestenra richardwestenra mentioned this pull request Feb 17, 2021
1 task
richardwestenra added a commit that referenced this pull request Feb 19, 2021
# Release 3.9.0

## Major features and improvements

- Add code panel (#346)
- Improve view panning behaviour when a node is selected (#356, #363, #370, #373, #374)
- Improve layout performance for large graphs (#343)
- Save tag state to localStorage (#353)

## Bug fixes and other changes

- Improve graph layout code quality, performance and docs (#347)
- Update docs to remind on compatibility of Kedro-Viz 3.8.0 with Kedro 0.17 (#367)
- Update dependencies (#360, #364, #369)
- Fix failing CircleCI build on Windows (#365, #366)
- Refactor node-list-row CSS, fixing hover and focus states (#355, #358, #362)
- Update iconography (#357, #359)
- Fix missing indicator Chrome zoom bug (#349)
- Fix sidebar border/box-shadow CSS rules (#351)
- Fix server.py to work with versions >0.17 and update contributing docs (#348)
- Fix errors when scrolling with empty pipeline (#342)
- Ignore coverage on some branches and fix e2e tests (#345)
- Fix icon-button tooltips on mobile (#344)
- Update SVG-Crowbar to fix errors (#339)
- Update contributing docs for new dev server (#341)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants