While the path certainly makes sense for this application, the personal-files interface is typically about importing files from a traditionally installed application into the snapās $HOME (ie, $SNAP_USER_DATA/.config/guvcview2). What guarantees does guvcview provide for not breaking a traditionally installed guvcview or vice versa?
+1 for read-only access for install and auto-connection. Deferring vote on write until more information is gathered.
Yes, but as snap packagers and reviewers we donāt want to break existing environments. Having the snap import and operate independently will be more robust and completely avoid the problem.
As @Lin-Buo-Ren alluded to, I believe that guvcview already has to deal with this problem and will need to solve it even if config lived in $SNAP_USER_DATA.
Any issues that crop up will have to be addressed by upstream, and can be dealt with as bugs in the project.
I donāt think itās our responsibility to protect users from software which breaks backwards compatibility.
@sparkiegeek - note that upstream is not handling this and your point is accurate for SNAP_USER_DATA: a snap is free to break itself and these are just bugs in the snap.
However, my point is different and I disagree with your assessment as it pertains to personal-files: ~/.config is where apps installed by traditional package managers and āmake installā will look at configuration. We set $HOME to $SNAP_USER_DATA and donāt expose ~/.config/snapname by default for precisely the reason that we donāt want the snap to break the application installed via other means and vice versa (consider a happy user of guvcview that tries the snap, which upgrades the ~/.config dir incompatibly: the user canāt go back to the deb). This is why there is the question of how the software deals with forward and backward compatibility when granting write access for personal-files/system-files, especially since the snap is not coming from upstream (as is this case).
There seems to be confusion on what personal-files and system-files are meant for so I updated the descriptions: