Skip to content

feat(QML): add checks to ensure user run with a dedicated test profile#15214

Merged
JoergAtGithub merged 1 commit into
mixxxdj:mainfrom
acolombier:feat/qml-prevent-user-setting-corruption
Sep 11, 2025
Merged

feat(QML): add checks to ensure user run with a dedicated test profile#15214
JoergAtGithub merged 1 commit into
mixxxdj:mainfrom
acolombier:feat/qml-prevent-user-setting-corruption

Conversation

@acolombier
Copy link
Copy Markdown
Member

This PR adds the safety mechanism we discussed during the monthly catchup.

It will prevent user from running the highly unstable QML interface, and allow us to continue with the fast iteration.

Here is the expected behaviour when running on QML:

  • User starts with a new profile -> All good, starting
  • User starts with an existing profile from a stable version -> User is presented with an error box and Mixxx stops
  • User starts with an existing profile from a stable version but has given their consent to break things -> All good, starting with a critical message in the logs

In the case no 3, a log message and a key will be persisted in the user profile, which might be helpful to track future issues report on 2.x, tho user can easily remove it.

@acolombier acolombier added this to the 3.0-beta milestone Aug 17, 2025
@github-project-automation github-project-automation Bot moved this to In progress in QML GUI Aug 17, 2025
@acolombier acolombier force-pushed the feat/qml-prevent-user-setting-corruption branch 2 times, most recently from eef1177 to 18a69a0 Compare August 17, 2025 22:38
Comment thread src/qml/qmlapplication.cpp
Copy link
Copy Markdown
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

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

I really don't think this is super necessary, but I wasn't in the meeting this was agreed upon, so LGTM I guess?

@acolombier
Copy link
Copy Markdown
Member Author

I really don't think this is super necessary, but I wasn't in the meeting this was agreed upon, so LGTM I guess?

To give some context, we've noticed some user are keen to try the QML instance as we are progressing, but the risk on corrupting existing user profile is large, since we are committing on a fast iterative set of many big changes for 3.0 (as opposite to a few small carefully measured and tested changes in 2.x).
This does shift the responsibility to our user being extra careful with their user profile, as this allows us to cut some corners and get rapid progress, but we still want to protect our user as much as we can. Does that make sense?

@Swiftb0y
Copy link
Copy Markdown
Member

Yeah, I would've just been even more blunt with it and put no protections in place. IMO If a user is using a pre-alpha version, they are lucky they don't accidentally get their harddrive reformatted 😜

@acolombier
Copy link
Copy Markdown
Member Author

I agree with you! But you need to remember that we are developing 3.0 in place, meaning that somebody installing 2.7-alpha will still be able to run it with --qml :)

Copy link
Copy Markdown
Member

@ywwg ywwg left a comment

Choose a reason for hiding this comment

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

Just a couple of wording comments. I have not QAed the actual flow

Comment thread src/util/cmdlineargs.cpp Outdated
Comment thread src/qml/qmlapplication.cpp Outdated
@acolombier acolombier force-pushed the feat/qml-prevent-user-setting-corruption branch from 18a69a0 to 82cd64b Compare August 20, 2025 19:29
@acolombier
Copy link
Copy Markdown
Member Author

Thanks @ywwg - I amended the commit

@JoergAtGithub
Copy link
Copy Markdown
Member

LGTM! Thank you!

@JoergAtGithub JoergAtGithub merged commit 4d598c5 into mixxxdj:main Sep 11, 2025
16 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in QML GUI Sep 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants