Please store data in XDG directories instead of ~/.winboat
There is enough software that already clutter home folder with dot files.
$XDG_CACHE_HOME for cache (default: ~/.cache)
$XDG_DATA_HOME for data (default: ~/.local/share)
$XDG_CONFIG_HOME for configs that for user to edit (default: ~/.config)
$XDG_STATE_HOME for history and logs (default: ~/.local/state)
But even dumping everything in ~/.local/share or ~/.config is good enough.
Hey, I see what you mean however the current approach seems to work well enough on every distro. Don't forget that any similar change we do now that affects thousands existing users with existing installations will need a migration step which increases complexity and pollutes the code.
Not only that, but suddenly any person viewing GitHub issues here or on Discord wanting to follow steps to fix their problem, will fail at Navigate to ~/.winboat since it won't exist anymore. I'm sure hundreds of conversations won't be edited to include the new path.
I don't like to reject suggestions with improvements, but I think we're too late in the dev cycle now to change this safely and without negative impact, sorry about that.
Make it an option in form of an environment variable at least. Like bash and zsh define their history file location with HISTORY variable. Something like WINBOAT_DATA that'll point to a folder.
@TibixDev You don’t need to perform any complex migration steps, and this kind of changes are ok for beta and you will not need to worry about it later when stable. This is an issue that will impact many people, and it will come up again in the future, as it has for other programs listed here: https://wiki.archlinux.org/title/XDG_Base_Directory
I’m not a fan of introducing another environment variable for another program that did not follow the specification initially, but even that is ok.
The solution I prefer is to make app check your default location and use it if present. If user moves the directory to ~/.config/winboat manually, use that one instead. I think that is a harmless change and every user that moves the configs already knows the custom location and documentation referencing default location is not an issue.
So basically:
- Check if it is in home -> set as config dir if it is
- Otherwise check if in .config -> set as config dir if it is
- Otherwise make in home a directory and use it as config dir value
I think instead of using home as last fallback, it should use .config. Or to be specific, try using $XDG_CONFIG/winboat and if the variable is ~~empty~~ not a valid directory or permissions denied, use $HOME/.config/winboat. So old users won't use their config and new will get it in proper location.
I can also add that delaying this change will only make the migration harder and people will continue complaining about the lack of compliance with XDG spec.
the XDG spec defines what directories you should fall back on
It's embarrassing in these days for linux software not to follow xdg spec. At the very least offer an environment variable that can look at where the data should be, instead of filling up the home directory and making a mess.
GNU Emacs managed to add support for XDG Base Directories 50 years into its development without breaking anyone's setup, but you guys can't? Very embarrassing, might run WinBoat in a fake home directory so it stops littering my home directory. You guys actually use Linux, or just wanted to port Windows to it?
@TibixDev this is an unacceptable stance for a software developer to take. You've made a terrible mistake, and that's okay, but now you have to fix it. It's not "too late", you're just lazy.
It is quite clear to me that this discussion has devolved into something very unprofessional and honestly outright insulting. This request will likely be addressed in the next major release, so stay patient. In the meantime I'm locking this issue, we got all the feedback needed to handle it.
As a sidenote, the way some of you conduct yourselves is an excellent way to burn out open source developers & maintainers. Please remember that open source maintainers owe you nothing.