Joplin Portable should have everything in the same place

It seems (correct me if this is wrong), that "JoplinPortable.exe", each time you run it, extracts the actual application files in the Temp folder of your user.
This is bad for several seasons, many of which have been already pointed out by other users:

  • it is not really clear (and documented) how it then links the actual "Joplin.exe" executable to the "JoplinProfile" folder (see thread "ist-there-an-overview-of-commandline-parameters-joplin-supports/8126")
    • related to this there is the problem that even if you want to properly run in a portable way, you are not allowed to (since some parameters are "used internally by the portable app or for development, but it’s not meant for users as improper use can lead to data loss")
  • it is extremely bad for performance to extract the actual application each time you run Joplin (see thread "can-i-pre-extract-and-use-the-portable-version-without-losing-portable-functionality/6582")
    • related to this there is also the problem that extracting multiple times exactly the same file is a total waste of resources (in term of disk usage, energy consumption, emissions, etc.)
  • it cannot really be considered "portable" and leaves traces in each machine it is used (see thread "problems-with-joplin-portable/1344")
    • related to this there might be other considerations on the privacy side

Therefore, I argue that "JoplinPortable.exe" should extract the application files in the same folder where it is placed (i.e., extract them next to the executable file), just like it does for the "JoplinProfile" folder, and not in the Temp folder. Then, when it is executed, it can extract the application files if they are not there yet, otherwise it can simply go to the step where it runs "Joplin.exe" (in whatever way it is doing it at the moment).
This will solve all the problems mentioned above.

2 Likes

Note that this could also help with false positives, since malware often uses the Temp folder.

Here is the scan of "JoplinPortable.exe" on VirusTotal containing what I think is a false positive:

EDIT: since I cannot include the link, here is the hash (you simply need to search it on VirusTotal):
e8ad1532f5478095881af1eeb5107baed4978cf2dfb1b75acee67cb09c04d349

I have just noticed that when you run "JoplinPortable.exe" one of the parameters that it uses to run "Joplin.exe" is:

--user-data-dir="C:\Users\USERNAME\AppData\Roaming\Joplin"

This is extremely bad because it means that it is not portable at all (besides leaving possible sensitive information on the machines where you use it).

This folder as well should be in the same folder of the "JoplinPortable.exe" file.

Here is the link to the VirusTotal scan:

It also does not seem very difficult to customise

If it's easy to add we'd accept a pull request. We won't put resources into this at this point since it works well enough for most people, although I understand part of the portable app behaviour is not ideal

If it's easy to add we'd accept a pull request.

I wrote "does not seem" because I am not sure about that (and surely not able to fix it in such a complex project).

We won't put resources into this at this point since it works well enough for most people, although I understand part of the portable app behaviour is not ideal

Given all the comments there are in this forum about the portable app (for instance, those mentioned in my first message), I would say that "it does not work well enough for most people who are using the portable app".
Please note that I might agree that they (i.e., those who are using the portable app) are a minority of the total number of people using the project (you surely know this better than me) and therefore it is better to prioritise other activities for the sake of project.

However, I was suggesting to fix this for the reasons mentioned above (above all because this is how a portable app should work) and it is misleading to define it as a "portable app" (those who are not checking how the app really works, will wrongly assume that it is really "portable").

1 Like

It is worth noting that, at the moment, "JoplinPortable.exe"

  • installs Joplin in a folder of the OS, just like the "normal setup" (it is just in a different folder), but it does it each time you run it (which is much worse for performance and for your disk)
  • is that it writes some files in the folder where you have the executable, instead of USERNAME\.config\joplin-desktop (which is the one used by the "normal setup")

Therefore, one could say that they are pretty similar...