Skip to content

Conversation

@AntonioBL
Copy link
Contributor

Resolves: https://musescore.org/en/node/281616
These should be the modifications needed to have a portable Windows version automatically done (and uploaded) when the "x86" option is uncommented in .appveyor.yml, e.g. for a new stable release

  • I signed CLA
  • I made sure the code in the PR follows the coding rules
  • I made sure the code compiles on my machine
  • [?] I made sure there are no unnecessary changes in the code (Actually, I am not really sure the crlf attributes for those files are exactly needed, but the target is a Windows machine)
  • I made sure the title of the PR reflects the core meaning of the issue you are solving
  • I made sure the commit message(s) contain a description and answer the question "Why do those changes fix that particular issue?" or "Why are those changes really necessary as improvements?"
  • I made sure the commit message title starts with "fix #424242:" if there is a related issue
  • I created the test (mtest, vtest, script test) to verify the changes I made (not needed)

Comment on lines +1 to +4
build/PortableApps/**/*.ini eol=crlf
build/PortableApps/**/*.txt eol=crlf
build/PortableApps/**/*.ini.in eol=crlf
build/PortableApps/**/*.html eol=crlf
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am not really sure these are needed, but the target is a Windows machine

IF "%BUILD_WIN_PORTABLE%" == "ON" (
CD C:\MuseScore

IF NOT EXIST portableappslauncher.zip (START " " /wait "C:\cygwin64\bin\wget.exe" --no-check-certificate "https://docs.google.com/uc?export=download&id=1hRaZTXY0ffm-TRLzu3a0_o77r3BEQcPf" -O portableappslauncher.zip )
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here the archive should be retrieved from MuseScore server, not my Gmail account.
It is simply a zip of the installation folder of PortableApps.com Launcher.

CD Launcher\App
CD C:\MuseScore

IF NOT EXIST portableappsinstaller.zip (START " " /wait "C:\cygwin64\bin\wget.exe" --no-check-certificate "https://docs.google.com/uc?export=download&id=1bWHoVig0EjZXQ5jJnUdnSDoEA_HyeDzH" -O portableappsinstaller.zip )
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same as above.
It is a zip of the installation folder of PortableApps.com Installer.

@AntonioBL
Copy link
Contributor Author

I inserted PortableApps.com "development build" splash screen:
build/PortableApps/App/AppInfo/Launcher/splash.jpg
If I understood correctly, we must have the permission from the people at portableapps.com to use the PortableApps.com logo in the splash screen, after their review of the package. But I fear that the review process has stalled ( https://portableapps.com/node/60879 ).
If no news come from their side, we could maybe create a custom splash screen for the portable version (without their logo).

@Jojo-Schmitz
Copy link
Contributor

I wonder whether this could be done for the development builds too, and either replace the nightly stuff (which is 64bit only) or sit alongside to it (as a 32bit option)? It might lower the bar for users willing to test.

@AntonioBL
Copy link
Contributor Author

In principle, both a 64bit and a 32bit portable could be done for the development builds. One main difference wrt to the current dev builds is the fact that I disabled the check for updates ( https://github.com/musescore/MuseScore/pull/5508/files#diff-3056168911c88e142262cb695efd9fdaR1843 ) since I couldn't manage to have it working properly.
Another important difference is that the portable version is, in principle, completely independent from the user preferences of other installations, so if a new portable development version is installed in a different folder, it will not read the preferences and personalizations of the old, already installed, portable development version. This could mask possible regressions that would appear only in the released not-portable package.

@AntonioBL
Copy link
Contributor Author

On second thought, maybe it could be useful to have debug portable development versions we could point at to possibly have more information in some cases (e.g. users experiencing bugs difficult to be reproduced). They would take a lot of disk space on the server side, though.

@riaanvn
Copy link
Contributor

riaanvn commented Dec 29, 2019

@AntonioBL

Do you consider this PR ready to be merged? If so maybe ping @anatoly_os on Telegram. If it is too late or difficult to get done fo 3.4 then maybe 3.4.1 or 3.5.

@Jojo-Schmitz
Copy link
Contributor

It needs a rebase first though

@AntonioBL
Copy link
Contributor Author

Well, the rebase was not easy, I hope I did everything correctly 😅

I still have a couple of open points I'd like to have help on them before considering this PR completely ready to be merged:

  • I inserted PortableApps.com "development build" splash screen: build/PortableApps/App/AppInfo/Launcher/splash.jpg should we keep it or replace with a custom MuseScore Portable splashscreen? In that case I think we should also modify the "publisher line" https://github.com/musescore/MuseScore/pull/5508/files#diff-398e13e22c8d6a0674b9d1839625b771R8 since it would not be an "official" PortableApps.com application (by the way, is the affiliation correct, or should I use "Musescore BVBA"?)
  • the two GDrive links should be replaced with archives on official MuseScore servers; they are simply zipped folders of PortableApps Launcher Generator and Installer Generator
  • I am not sure about the need for crlf ending in those Windows-only files
  • I didn't check if the new telemetry option leaves some files behind in user or system folders; the main guide line for PortableApps is that the application should not leave files behind except in its own folder.

@riaanvn
Copy link
Contributor

riaanvn commented Feb 13, 2020

@Jojo-Schmitz are you happy with the state of this PR?
@anatoly_os can this be merged?

3.x has been without a portableapp (lower-case intentional) for almost 14 months. (No pressure meant, just somewhat of a sense of urgency)

@Jojo-Schmitz
Copy link
Contributor

I for sure am happy with it

@dmitrio95 dmitrio95 requested a review from anatoly-os March 20, 2020 13:19
@Jojo-Schmitz
Copy link
Contributor

Rebase needed. And it'd be great to have this as part of 3.5, finally

@anatoly-os
Copy link
Contributor

@AntonioBL rebase is needed

@AntonioBL
Copy link
Contributor Author

I am currently working on this.
I also would like to check if telemetry is storing data in temporary folders.

What about the points I was raising in #5508 (comment) ?

@anatoly-os
Copy link
Contributor

@AntonioBL I need time to address the questions. Will postpone merging this PR to 3.5 Beta.

@anatoly-os anatoly-os added this to the MuseScore 3.5 Beta milestone Apr 29, 2020
@AntonioBL
Copy link
Contributor Author

Ok, fine. 👍
In the meantime, I am checking that everything still works fine after rebasing (see test #6013 )

@AntonioBL
Copy link
Contributor Author

Rebased and updated.
I checked the most obvious sources of leftover files (QWebEngine, workspaces, plaettes) and it seems it is not leaving any of them in the system.
So the open points are:

  • should we use the PortableApps.com "development build" splash screen or replace with a custom MuseScore Portable splashscreen?
  • should we modify the "publisher line" Publisher=Werner Schweer and Others & PortableApps.com? (by the way, is the affiliation correct, or should I use "Musescore BVBA"?)
  • the two GDrive links should be replaced with archives on official MuseScore servers; they are simply zipped folders of PortableApps Launcher Generator and Installer Generator.
  • is crlf ending needed for those Windows-only files?
  • I still don't know how to check for leftover for the telemetry option

@Jojo-Schmitz
Copy link
Contributor

Jojo-Schmitz commented May 1, 2020

  • should we use the PortableApps.com "development build" splash screen or replace with a custom MuseScore Portable splashscreen?

Why development build?

  • should we modify the "publisher line" Publisher=Werner Schweer and Others & PortableApps.com? (by the way, is the affiliation correct, or should I use "Musescore BVBA"?)

Yes, IMHO better use Musescore BVBA and Others, to be in line with the "Help > About" string.
Not sure about adding & PortableApps.com though.

  • I still don't know how to check for leftover for the telemetry option

Would you want to have telemetry disabled for the PortableApp, or just make sure it doesn't leave traces on the system? I don't think telemetry creates any files or registry entries on the machine.

@AntonioBL
Copy link
Contributor Author

AntonioBL commented May 1, 2020

Why development build?

It is not a true development build, but it is the PortableApps.com splash screen used for builds not yet officially approved by PortableApps.com (and hence hosted on their site). I understood that one has to submit a tentative build to them with that splash screen (to differentiate from an "approved" build) and wait for their approval, but my tentative MuseScore 3.2.3 portable, after some comments from Bart.S, is sitting there in their development forum since August 2019.

  • should we modify the "publisher line" Publisher=Werner Schweer and Others & PortableApps.com? (by the way, is the affiliation correct, or should I use "Musescore BVBA"?)
    Yes, IMHO better use Musescore BVBA and Others, to be in line with the "Help > About" string.
    Not sure about adding & PortableApps.com though.

It is a quick change. "& PortableApps.com" was added to MuseScore2 portable, and I think it is relevant if the portable package is delivered by their site.

Would you want to have telemetry disabled for the PortableApp, or just make sure it doesn't leave traces on the system? I don't think telemetry creates any files or registry entries on the machine.

I'd like to make sure it does not leave file or registry leftovers on the system, but I don't know how to check if it is actually working. To check leftover files/registry keys I use Regshot (portable) in a clean virtual machine.
I already disabled the check for updates/autoupdate package. I wanted to disable as little as possible with respect to the offical non-portable package.

@AntonioBL AntonioBL changed the base branch from master to 3.x May 6, 2020 19:24
@riaanvn
Copy link
Contributor

riaanvn commented May 27, 2020

@anatoly_os is this still on course for 3.5 Beta?

@anatoly-os
Copy link
Contributor

@AntonioBL I've replied to all your points mentioned above. Is there something I need to do to make it work? ( aside from merging this PR :) )

should we use the PortableApps.com "development build" splash screen or replace with a custom MuseScore Portable splashscreen?

I would use the actual splash screen and add the portableapps.com mention there if needed. As a raw text at the bottom left corner. Btw, current splash screen is generated on fly from svgs. We can use a .png specifically for portableapps, btw to simplify the process.

should we modify the "publisher line" Publisher=Werner Schweer and Others & PortableApps.com? (by the way, is the affiliation correct, or should I use "Musescore BVBA"?)

Yes, it should be "Musescore BVBA and others". "Others" includes portableapps.com.

the two GDrive links should be replaced with archives on official MuseScore servers; they are simply zipped folders of PortableApps Launcher Generator and Installer Generator.

I've put them to our S3 storage, so that you can update the links in the PR. The new links are:

is crlf ending needed for those Windows-only files?

Don't know. How can I help with that?

I still don't know how to check for leftover for the telemetry option

There are no files or data additionally stored on user's machine. Everything is processed on fly.

@AntonioBL
Copy link
Contributor Author

@anatoly-os : thank you for the feedback.
I hope I will have some time this evening (or maybe tomorrow) to deal with the remaining points.
I will change the zip links and the affiliation, use the native splash screen (I will try to add a "portable version" text somewhere; I will post here the resulting image). I think the crlf should not give problems (those are actually Windows files).
And thank you for the info about the telemetry code.

In principle it should then be ready for merging. 🤞

@AntonioBL
Copy link
Contributor Author

Ok. I think it is ready.
Here is how the splash screen appears for the portable version (and also development build, in this case):
splash_portable
The "Portable version (portableapps.com)" text is not translatable since strings are frozen at the moment.

@anatoly-os
Copy link
Contributor

anatoly-os commented Jun 22, 2020

@AntonioBL Why do you use the development build splash screen?

@Jojo-Schmitz
Copy link
Contributor

Because that is the one that shows on a self build?

@AntonioBL
Copy link
Contributor Author

AntonioBL commented Jun 22, 2020

Indeed, it is the one created when locally building 3.x branch.
I added the "Portable version (portableapps.com)" text to every kind of portable build (so in principle development build portable, or 64bit portable).

#if defined(WIN_PORTABLE)
// Additional text for Windows Portable version.
painter->setPen(textColor);
painter->drawText(_miscTextRect, Qt::AlignLeft | Qt::AlignBottom, "Portable version (portableapps.com)");
Copy link
Contributor

@Jojo-Schmitz Jojo-Schmitz Jun 23, 2020

Choose a reason for hiding this comment

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

Even with translations currently frozen that text should at least be translatable, shouldn't it?
tr("Portable version (portableapps.com)")

Copy link
Contributor

Choose a reason for hiding this comment

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

Please, address it in a separate PR

Copy link
Contributor

Choose a reason for hiding this comment

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

see #6252

@anatoly-os anatoly-os merged commit 199555f into musescore:3.x Jun 23, 2020
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jun 23, 2020
@AntonioBL AntonioBL deleted the winportable branch October 26, 2020 11:06
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.

4 participants