lmms icon indicating copy to clipboard operation
lmms copied to clipboard

Journalling UUIDs

Open irrenhaus3 opened this issue 3 years ago • 3 comments

Implements a UUID utility class and uses it to provide the type of jo_id_t. The intent is to remove any realistic possibility of collision between JournallingObject IDs.
This addresses issue #4736 and supersedes PRs #2875 and #4723.

What's been tested to work so far?

  • Saving and loading a new project file with automation.
  • Saving and loading a new project file with a LFO Controller connection.

What doesn't work?

  • ~~RemotePlugin~~ fixed with b1c205c
  • Loading project files created with any previous version of LMMS (no update function for replacing int32-IDs with UUIDs).

TODOs?

  • Remove workarounds from #4723
  • Test more thoroughly (ideally automated)
  • Fix anything that doesn't work, obviously.

irrenhaus3 avatar Jun 26 '22 16:06 irrenhaus3

:robot: Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! :tophat:

Linux

Windows

macOS

:robot:
{"platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://output.circle-artifacts.com/output/job/16f63bbb-e1c5-41dd-bff6-37fa3a734b09/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17601?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Windows": [{"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://output.circle-artifacts.com/output/job/e350ca33-ed24-4088-939b-336e930589fc/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17604?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://output.circle-artifacts.com/output/job/f1a22c3a-9769-4173-9be4-b8b91d9976aa/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17605?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/8igbqeygbg5gtw1u/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/43991481"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/vceoc04g1hg41ddm/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/43991481"}], "macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://output.circle-artifacts.com/output/job/4e93d6aa-b6c7-4b74-956c-290ef266f699/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17603?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "1b4d2f88112ff08d1c7cbe3c3838092767b87aee"}

LmmsBot avatar Jun 26 '22 17:06 LmmsBot

I like the concept of removing possibilities of collision bw ids (though i don't understand anything about uuids). But since the plan is to get rid of qt, my question is - is it doable without using qt? If not qt, what's the way?

Rossmaxx avatar Aug 22 '22 13:08 Rossmaxx

Does this fix the bug of restoring ID of objects when undoing?

Steps to reproduce:

  1. Create notes (you can undo each note)
  2. Create a new clip on the same track (track is journalled as a whole)
  3. Undo create clip (whole track is reloaded, clip gets new ID)
  4. Unable to undo individual notes now (ID of clip does not match journal, so checkpoints are skipped)

allejok96 avatar Aug 25 '22 19:08 allejok96