Settings are stored in gsettings. This goes back to the "pathless" thing I was talking about. Basically, when you tell gsettings what your settings are like (boolean, with this name, etc), you can also assign it a standard path like "/org/gnome/deja-dup/automatic-backup".But if we did profiles, we'd need to rejigger that to not have a standard path but be assigned dynamic paths like "/org/gnome/deja-dup/profile1/automatic-backup" or some such. And then probably one standard path like "../deja-dup/profiles" to list the profile names so we knew which paths to examine.All that isn't particularly hard. But it would need doing and migration from old to new would need to be done.
We used to have complicated/clever logic for this. But I ended up just simplifying it to ~3 months (84 days really). Configurable by a non-advertised gsettings key.
GLib will tell us if a path is mounted or not. I don't think the user would need to think about how best to choose a location. I think this would fall under the "seamlessly do what is right" column.
ASSUMING that all modern distros automount using the UUID in the path, normal users that haven't touched anything would get historic, normal behavior. Only users that have futzed with fstab would get different behavior. And I think this different behavior would be what that class of users would expect/want.
So separately from the whole issue of profiles or not (which I'm still not sold on), I think this would be a good idea to implement. It lets us Do The Right Thing without any additional UI complexity (or really, much behind-the-scenes complexity).
So I think the tasks for this would be:1) Research state of art in modern distros regarding automount paths. We would ideally expect them all to use UUIDs in the default paths.
2) Change the BackupFile.vala file to drop all of its special UUID logic and just use the saved mount point. This should actually simplify logic!3) Test it and make sure it does what we expect.As an added bonus, this would be a relatively simple task to implement as a developer not used to the code base... :)