Skip to content

feat: persist ids and components order when saving#498

Open
FelipeDefensor wants to merge 2 commits into
devfrom
cleanup/persist-ids
Open

feat: persist ids and components order when saving#498
FelipeDefensor wants to merge 2 commits into
devfrom
cleanup/persist-ids

Conversation

@FelipeDefensor

@FelipeDefensor FelipeDefensor commented May 3, 2026

Copy link
Copy Markdown
Collaborator

Saved files now preserve component IDs and ordering, so reloading produces a deterministic structure. This is fundamental for tidy version control of TiLiA files.

@FelipeDefensor FelipeDefensor force-pushed the cleanup/persist-ids branch from 0356194 to ef90488 Compare May 4, 2026 07:32
Adds tests/timelines/test_serialize.py with serialize-sorting checks,
in-memory and on-disk round-trip tests for marker, beat, harmony, pdf,
audiowave and score timelines, undo/redo id transmission tests, and
broader score coverage (full piece, sorted ids, non-sequential ids,
staff_index references).
@FelipeDefensor

Copy link
Copy Markdown
Collaborator Author

Closes #384

@FelipeDefensor FelipeDefensor requested a review from azfoo May 4, 2026 14:16
@FelipeDefensor FelipeDefensor marked this pull request as ready for review May 4, 2026 14:16
@FelipeDefensor FelipeDefensor added this to the 0.7.0 milestone May 4, 2026

@azfoo azfoo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approving, but I still think there must be a better name to describe what we're testing

assert set(result.keys()) == {m1.id, m2.id}


class TestSerializeDeserializeRoundTrip:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

maybe TestSequentialSerializeDeserialize?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants