[MonoDevelop] Feedback wanted: Settings and data storage locations
Martin Olsson
mnemo at minimum.se
Sat Jan 23 11:58:07 EST 2010
I didn't read the original post, but I hope you read and
considered these:
http://brainstorm.ubuntu.com/idea/6557/
http://live.gnome.org/GnomeGoals/XDGConfigFolders
Also please partition preferences etc so that multi machine
cloud synchronization becomes easy.
Martin
Michael Hutchinson wrote:
> Hi all,
>
> I'm seeking feedback on a proposal to change the locations in which
> MonoDevelop stores data. This affects all users, so please have your
> say!
>
> Historically MonoDevelop has stored all data, cache, settings, etc. in
> a subdirectory of
> Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData).
> Typically on Linux/Mac this is /home/$USER/.config/MonoDevelop/ and on
> Windows Vista/7 it's C:\Users\$USER\AppData\Roaming\MonoDevelop\. The
> path has been accessible via PropertyService.ConfigPath, for addins to
> determine where to store their own data.
>
> There are a few problems here. Firstly, it's not clear to the user
> which data need to be backed up and which can be regenerated. It's not
> particularly well-structured if one ever needs to look in the
> directory and find things. On Windows, all data is in the roaming
> profile, which is inefficient with network logins. And on Mac, this
> doesn't match the standard ~/Library subdirectories for caches, prefs,
> etc.
>
> I therefore propose that we add more granular locations for different
> types of data. Since the migration will be a pain and we will have to
> review and set up migrations for all current uses, we may as well get
> it *right* first time so it only needs to be done once.
>
> * UserPreferencesPath: current preferences/settings
> Lin: ~/.config/MonoDevelop/Preferences
> Mac: ~/Library/Preferences/MonoDevelop/
> Win: ~\AppData\Roaming\MonoDevelop\ Preferences
>
> * UserDataRoot: Root location for data files created or modifiable by
> the user, such as templates, snippets and color schemes.
> Lin: ~/.config/MonoDevelop/
> Mac: ~/Library/MonoDevelop/
> Win: ~\AppData\Roaming\MonoDevelop\
>
> * UserCachePath: cached data that can be regenerated
> Lin: ~/.share/local/MonoDevelop/Cache
> Mac: ~/Library/Cache/MonoDevelop/
> Win: ~\AppData\Local\MonoDevelop\Cache
>
> * UserLogsPath: MD log output and anything similar from addins
> Lin: ~/.share/local/MonoDevelop/Logs
> Mac: ~/Library/Logs/MonoDevelop/
> Win: ~\AppData\Local\MonoDevelop\Logs
>
> * UserAddinsPath: addin registry and user-installed addins
> Lin: ~/.share/local/MonoDevelop/Addins
> Mac: ~/Library/Application Support/MonoDevelop/
> Win: ~\AppData\Local\MonoDevelop\Addins
>
> In summary, the contents of UserPreferencesPath and UserDataRoot
> should be backed up.
>
> I also intend to add FileService.MigratePath (string
> oldRelativeConfigPath, string newFullPath, bool removeEmpty) call that
> can be used to migrate files and folders from an old path to a new
> path. This can be used to move files and directories to the new
> locations.
>
> There is also the question of whether some of these directories should
> be versioned so that multiple MD versions can be used in parallel on
> one user profile. I don't think it's worth the maintenance burden; in
> general we've only ever supported forward migrations properly. Perhaps
> we should have an error message if you try to run MD with too-new
> settings/data formats, or alter all the location properties to point
> to some dummy temp location so you can run the older version without
> corrupting your newer settings.
>
> You can see the current patch at http://monobin.com/__d215cffd5 if
> you're curious.
>
More information about the Monodevelop-list
mailing list