haskell / haskell/cabal

Complete migration guide to XDG directory layout

Open
#8,859 2 comments 1 reaction 0 assignees View on GitHub
documentation re: xdg
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

Lifted from @mouse07410 's comment:
- https://github.com/haskell/cabal/pull/7386#issuecomment-1286189184

@athas, could we please get a complete migration guide to XDG?

We currently have:
- https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.10.1.0.md#significant-changes
- https://cabal.readthedocs.io/en/3.10/config.html#directories

I would like the table that @mouse07410 requested:

| Legacy | XDG |
| --- | --- |
| `~/.cabal/config` | `~/.config/cabal/config` |
| `~/.cabal/bin` | `~/.local/bin` |
| `~/.cabal/store` | `~/.local/state/cabal/store` (?) |
| `~/.cabal/lib` | ? |
| `~/.cabal/share` | ? |
| `~/.cabal/packages` | ? |

Also, the docs talk about variables like `XDG_CONFIG_HOME` but not what their value would be on different systems. E.g. on macOS, these variables seem undefined:
```shell-session
$ echo $XDG_CONFIG_HOME

$
```

N.B.: I would also be good to get some advice what to cache in CI. E.g. the whole `~/.local/state/cabal` or just `~/.local/state/cabal/store` (considering that the previous advice was to cache `/.cabal/store`).

Contributor guide

Open the contributing guide

Research direction

Start with the release-notes section and the Cabal documentation's directories section linked in the issue, then compare them with the requested legacy-to-XDG table. Document the remaining directory mappings, platform-specific XDG variable guidance, and CI cache recommendation; done means the migration and caching guidance is complete and consistent across both references.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
ci-cd, documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.