From e9bd9568db6b627155664090ea39a1b6ece0af47 Mon Sep 17 00:00:00 2001 From: Benjamin Tan Date: Fri, 9 May 2025 21:27:49 +0800 Subject: [PATCH] jujutsu: store configuration in $XDG_CONFIG_HOME for all platforms (#6994) Following https://github.com/jj-vcs/jj/pull/6300, Jujutsu has deprecated support for configuration files in `~/Library/Application Support` for darwin. The XDG-standard configuration location can be used instead, for all platforms. --- modules/programs/jujutsu.nix | 9 +++++++-- .../modules/programs/jujutsu/empty-config.nix | 18 +++++++++++++++--- .../programs/jujutsu/example-config.nix | 18 +++++++++++++++--- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/modules/programs/jujutsu.nix b/modules/programs/jujutsu.nix index 330b7d7f9..7a4a9af3a 100644 --- a/modules/programs/jujutsu.nix +++ b/modules/programs/jujutsu.nix @@ -9,9 +9,14 @@ let cfg = config.programs.jujutsu; tomlFormat = pkgs.formats.toml { }; + packageVersion = lib.getVersion cfg.package; - configDir = if pkgs.stdenv.isDarwin then "Library/Application Support" else config.xdg.configHome; - + # jj v0.29+ deprecated support for "~/Library/Application Support" on Darwin. + configDir = + if pkgs.stdenv.isDarwin && !(lib.versionAtLeast packageVersion "0.29.0") then + "Library/Application Support" + else + config.xdg.configHome; in { meta.maintainers = [ lib.maintainers.shikanime ]; diff --git a/tests/modules/programs/jujutsu/empty-config.nix b/tests/modules/programs/jujutsu/empty-config.nix index d3bd44343..3594574d3 100644 --- a/tests/modules/programs/jujutsu/empty-config.nix +++ b/tests/modules/programs/jujutsu/empty-config.nix @@ -1,7 +1,19 @@ -{ pkgs, ... }: - +{ + config, + lib, + pkgs, + ... +}: let - configDir = if pkgs.stdenv.isDarwin then "Library/Application Support" else ".config"; + cfg = config.programs.jujutsu; + packageVersion = lib.getVersion cfg.package; + + # jj v0.29+ deprecated support for "~/Library/Application Support" on Darwin. + configDir = + if pkgs.stdenv.isDarwin && !(lib.versionAtLeast packageVersion "0.29.0") then + "Library/Application Support" + else + ".config"; in { programs.jujutsu.enable = true; diff --git a/tests/modules/programs/jujutsu/example-config.nix b/tests/modules/programs/jujutsu/example-config.nix index 37705a152..35498315a 100644 --- a/tests/modules/programs/jujutsu/example-config.nix +++ b/tests/modules/programs/jujutsu/example-config.nix @@ -1,7 +1,19 @@ -{ pkgs, config, ... }: - +{ + config, + lib, + pkgs, + ... +}: let - configDir = if pkgs.stdenv.isDarwin then "Library/Application Support" else ".config"; + cfg = config.programs.jujutsu; + packageVersion = lib.getVersion cfg.package; + + # jj v0.29+ deprecated support for "~/Library/Application Support" on Darwin. + configDir = + if pkgs.stdenv.isDarwin && !(lib.versionAtLeast packageVersion "0.29.0") then + "Library/Application Support" + else + ".config"; in { programs.jujutsu = {