emacs-eldev / eldev

Elisp development tool

Home Page:https://emacs-eldev.github.io/eldev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is it possiable to support XDG Based Directory?

declantsien opened this issue · comments

Emacs itself has xdg support (~/.config/emacs/).

What do you mean by support here?

Then, you would be surprised if do this search q=+XDG+support&type=Issues on github.
For The Record, I don't want to push this change though. Feel free to close this issue if you are not into this idea.

In summary, instead of putting a .eldev in user Home directory, move eldev related config/data/cache to obey platform-specific directory standards? Cargo (Rust build tool) has a rfc for this.

Also, see a list of tools are supporting from Archlinux wiki

Currently, Eldev stores configuration mixed up with caches in ~/.eldev. I.e. there are file config, directories MAJOR.MINOR per used Emacs version (containing own bootstrapped Eldev package) and, finally, directory global-cache, containing packages downloaded from internet archives. What would be the correct setup according to XDG rules?

config: .config/eldev/config <-- ~/.eldev/config

For the cache/data
cache: .cache/eldev/
data: .local/share/eldev/

Maybe borrow some structure from straight.el.
Isn't the archives/package source version independent?
Seems to me, only the build output(elc,eln) depends on Emacs version

tree -L 3 .eldev/
.eldev/
└── 28.0
    └── bootstrap
        ├── archives
        ├── eldev-0.10.3
        └── gnupg
tree -L 1 straight
straight
├── build-27.2
├── build-27.2-cache.el
├── build-28.0.50
├── build-28.0.50-cache.el
├── build-28.0.60
├── build-28.0.60-cache.el
├── build-29.0.50
├── build-29.0.50-cache.el
├── build-wr
├── build-wr-cache.el
├── links
├── modified
└── repos

Isn't the archives/package source version independent?

It is, but ~/.eldev/MAJOR.MINOR contains byte-compiled installed Eldev package. Those are not version-independent. Just run with ELDEV_LOCAL set to an empty value and check directory contents afterwards.

Maybe borrow some structure from straight.el.

I don't plan to change the structure dramatically. I'm willing to follow XDG guidelines and get rid of (move) ~/.eldev (with backward compatibility: keep using it if already exists) to e.g. ~/.config/eldev or whatever. I'm rather asking if XDG mandates splitting it into several directories, or if I can preserve current layout, just move the containing directory to another place.

I'm willing to follow XDG guidelines and get rid of (move) ~/.eldev (with backward compatibility

👍

preserve current layout, just move the containing directory to another place.

Yeah, this should be enough

commented

I'm rather asking if XDG mandates splitting it into several directories

It's highly encouraged.

@ikappaki, @juergenhoetzel: do you have any comments on this regarding Windows? Does ~/.config normally exist because of other programs? Are variables such as $XDG_CONFIG_HOME set?

@ikappaki, @juergenhoetzel: do you have any comments on this regarding Windows? Does ~/.config normally exist because of other programs? Are variables such as $XDG_CONFIG_HOME set?

Hi @doubleb, I haven't seen it used by any native MS-Windows programs. The directory is likely to exist if one installs tools that were primarily developed for *nix, ported to Windows and are XDG compatible. Though I'd find it unlikely for a Windows user to be aware of the XDG concept in general and thus have any XDG_* variable set. On my Windows computer, i have a couple of apps that have created entries in ~/.config, thus it works fine, even without the user having knowledge this is happening in the background.

I can't see any issues on Windows if Eldev is to support the XDG spec. It should just work. Sounds like a good idea. Hope this helps.

@ikappaki, @juergenhoetzel: Can you please have a look at weird error on Windows after the commit? Apparently, bin/eldev.bat is now erroneous, but I haven't modified it directly, only bootstrap.el.part, and then regenerated the .bat file with the standard mechanism. Without Windows all tests run fine...

@ikappaki, @juergenhoetzel: Can you please have a look at weird error on Windows after the commit? Apparently, bin/eldev.bat is now erroneous, but I haven't modified it directly, only bootstrap.el.part, and then regenerated the .bat file with the standard mechanism. Without Windows all tests run fine...

HI @doublep, I've added > to the list of chars to escape in eldev-bat-quote with #66. It fixes the issue. Thanks

Fixed now, thank you.

XDG changes will be released as part of 0.11, likely soon.

Hi @doublep,

I've noticed that the default Eldev installation directory has changed from ~/.eldev/bin to ~/.local/bin but the documentation still refers to the old location. Not sure if there is more to update (e.g. config location)?

Thanks

Released 0.11.

@ikappaki: This must be fixed now that future-doc branch got merged. Or is it still the case somewhere?

Released 0.11.

@ikappaki: This must be fixed now that future-doc branch got merged. Or is it still the case somewhere?

@doublep, docs look good, thanks