Skip to content

Refactor Layout Rendering #624

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

Open
1 task
rmorshea opened this issue Jan 27, 2022 · 0 comments
Open
1 task

Refactor Layout Rendering #624

rmorshea opened this issue Jan 27, 2022 · 0 comments
Labels
priority-2-moderate Should be resolved on a reasonable timeline. type-revision About a change in functionality or behavior

Comments

@rmorshea
Copy link
Collaborator

rmorshea commented Jan 27, 2022

Current Situation

The logic inside layout.py is becoming increasingly convoluted. Special edge case logic is starting to be introduced in order to handle bugs that should, in reality be handled more generally. I doubt that a new contributor would be able to groc the logic and make a contribution to this area of the code-base without a great deal of effort.

Proposed Actions

The complexity of the logic has stemmed from the increased usage of model states mutations throughout the rendering process in order to handle unforeseen cases. We should take an approach where every function which results in a new model state, instead of attaching it to the tree, returns that new model state.

Thankfully the large library of tests we've built up over time will aid in this process. I think we should be able to make these refactors with minimal impact to users as a result.

Work Items

  • clean up layout.py
@rmorshea rmorshea added priority-2-moderate Should be resolved on a reasonable timeline. type-revision About a change in functionality or behavior labels Jan 27, 2022
@rmorshea rmorshea added this to the 2.0 milestone Jan 27, 2022
@rmorshea rmorshea removed this from the Luxury milestone Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority-2-moderate Should be resolved on a reasonable timeline. type-revision About a change in functionality or behavior
Projects
None yet
Development

No branches or pull requests

1 participant