If you want to introduce the Dirs module only to have it shorter than StandardDirectories, it feels somewhat artificial, and using import StandardDirectories as XDG or import StandardDirectories as Dirs is an alternative.
Like it was mentioned, short package names with cryptic letters are generally not great, but I like XDG here, as afaict it’s much more known that its non-abbreviated form (and CrossDesktopGroup would be an horrible package name here), and any other name will not make me understand what this package does better than just XDG. And if I’m looking for this functionality, i would naturally search something like “julia XDG”.
The fact that this package doesn’t serve only a niche scientific discipline makes it even more acceptable to use a short name. Short names are precious, but only if they can be given to packages when they fit the name obviously, as is the case here I think.
Arguably this is bikeshedding, but I personally don’t like regretting naming decisions.
An alternative would be to export functions with prefixes, such as xdg_user_config() ?
This is short, and separates the package name from the API
(since we can’t do something like using XDGPaths as XDG).
I want to say that I just looked though the docs, and it looks to me like you have done really good and thurough work, both in implementation and documentation. Thank you!
In a bit (once General merges the PR) v1.1 will be released, which just adds the “make created bin files executable” behaviour discussed above, and removes the two sources of compilation at load-time.