App Naming Convention?

This is my phone’s ~/.config directory (a little small: I recently reflashed to SFOS 4):

[...]
drwxrwxr-x    3 defaultu defaultu      4096 Feb 27 20:10 bat
drwxrwx---    2 defaultu defaultu      4096 Feb 27 20:10 coinfest
drwxrwxrwx    2 defaultu defaultu      4096 Feb 28 11:05 harbour-fernschreiber
drwxrwxrwx    2 defaultu defaultu      4096 Feb 27 21:26 harbour-file-browser
drwxrwxrwx    2 defaultu defaultu      4096 Feb 28 16:39 harbour-laufhelden
drwxrwxrwx    2 defaultu defaultu      4096 Feb 27 18:45 harbour-ownkeepass
drwxrwxrwx    2 defaultu defaultu      4096 Feb 28 16:42 harbour-pure-maps
drwxrwxrwx    2 defaultu privileg      4096 Mar  2 18:51 harbour-storeman
drwxr-xr-x    2 defaultu privileg      4096 Feb 28 01:11 lipstick
drwxr-xr-x    2 defaultu privileg      4096 Feb 27 18:50 nemo
drwx------    5 defaultu privileg      4096 Feb 27 21:46 org.sailfishos
drwxrwxr-x    2 defaultu defaultu      4096 Feb 27 20:10 pusfofefe
drwxr-xr-x    2 defaultu defaultu      4096 Feb 27 20:10 rclone
[...]

I left out some entries to save space. My apps are coinfest and pusfofefe. Should I just call them harbour-coinfest and harbour-pusfofefe?

Some of the above harbour-* files were downloaded from the Jolla store and others from OpenRepos. Why do the latter not have an openrepos- prefix? What is the significance of harbour-?

If I remember correctly, all apps that are published in Jolla Store must be named harbour-*. Except apps made by Jolla. Openrepos does not have such restriction, but people follow the guideline. And the reason is to reduce possible naming conflicts.

Please see https://harbour.jolla.com/faq#Naming

2 Likes

About the openrepos- prefix:

I don’t think this is a widely-used convention, basically I made it up for myself.

But I do name most of my packages openrepos-foo. Rationale being, if I ever submit an app to the official Store, I shall name it harbour-foo instead, and treat harbour-foo as stable/released/production-ready, and openrepos-foo as experimental/beta/… versions.

This enables users to choose to enable my repo on Openrepos, but NOT get “updates” for experimental packages which have the same name as in the store, by installing harbour-foo but not openrepos-foo. Or the other way around…

At the moment this is rather pointless as I do not have an application published in the official Store but the concept remains.

Now, I believe there is a way of using Zypper to “pin” packages and repos, but as zypper is not installed by default I prefer not to rely on users having it.

2 Likes

uhm… so what happens if I first use an experimental version and then want to stay with the stable version? Do I have to manually move the .config, .local/share, etc.?

I think a program has to be uniquely installed, whether it comes from openrepos or the Jolla Store is up to the user. Modrana does this - obviously the openrepos version is always a little bit ahead of the Jolla Store one, but I can choose to install whatever I want, without moving config/preferences around.

In theory that is solvable using postinstall scripts, or in the app itself. I’ll tackle that one when the need arises.

Also, keeping these things separate can also be beneficial for experimental features which may come and go, and only “stable” and backward-compatible configs lang up in the harbour- variant of the config dirs.

I don’t think Harbour will let you touch other program’s config/storage directory (even if you claim it’s yours), but don’t quote me on this. I would find out before making this design decision, if I were you.
From openrepos, yeah, you can do pretty much anything as you don’t have QA, so in theory you could migrate all your users. I guess you can already imagine the logistics involved :slight_smile: