Skip to content

Include standard on recommending XDG Base Directory Specification for storing data #28

@namurphy

Description

@namurphy

After exceeding the quota for my network home directory several times 🎉💾🥦, I learned about the XDG Base Directory Specification. This specification defines locations where programs should store and look for user-specific data and configuration files.

Probably the two most relevant environment variables would be:

  • $XDG_DATA_HOME defines the base directory relative to which user-specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.
  • $XDG_CONFIG_HOME defines the base directory relative to which user-specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.

My inclination would be for data files for a package to be located in $XDG_DATA_HOME/<package>, where <package> is replaced with the package name as it would be imported. For example, data for PlasmaPy would be in $XDG_DATA_HOME/plasmapy.

Some packages already have environment variables that define where to place stored data (like $SPEDAS_DATA_DIR). For backward compatibility, the existing variables should be given priority.

The benefits would be that users would only need to define this location once for all packages, and that it would be more convenient to find where the stored data files from all packages are.

This could be a standalone PHEP, or perhaps included in a standards doc.

See also: PlasmaPy/PlasmaPy#2600

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions