summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Ericson <subscribe@JohnEricson.me>2018-09-24 18:04:18 -0400
committerGitHub <noreply@github.com>2018-09-24 18:04:18 -0400
commit22ce6141125760018ec525c7a6d8672604e0eddb (patch)
treee048fb6df861b6395e7e523d25715ac7c8b2ddaa
parent39443c6bb7f9ea3df4488b9e01eddd48317d1137 (diff)
parentb9dce11712d2bfc8cd367df5a7f737a5cec1e252 (diff)
downloadnixlib-22ce6141125760018ec525c7a6d8672604e0eddb.tar
nixlib-22ce6141125760018ec525c7a6d8672604e0eddb.tar.gz
nixlib-22ce6141125760018ec525c7a6d8672604e0eddb.tar.bz2
nixlib-22ce6141125760018ec525c7a6d8672604e0eddb.tar.lz
nixlib-22ce6141125760018ec525c7a6d8672604e0eddb.tar.xz
nixlib-22ce6141125760018ec525c7a6d8672604e0eddb.tar.zst
nixlib-22ce6141125760018ec525c7a6d8672604e0eddb.zip
Merge pull request #47238 from obsidiansystems/overrideScope-order
lib: Deprecate `overrideScope` in lieu of `overrideScope'` taking arguments in the conventional order
-rw-r--r--doc/package-notes.xml6
-rw-r--r--lib/customisation.nix10
-rw-r--r--pkgs/build-support/emacs/wrapper.nix2
3 files changed, 9 insertions, 9 deletions
diff --git a/doc/package-notes.xml b/doc/package-notes.xml
index 05e820bcabe5..d8f55ef0a856 100644
--- a/doc/package-notes.xml
+++ b/doc/package-notes.xml
@@ -643,15 +643,15 @@ cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
     required dependencies manually - but it's tedious and there is always a
     possibility that an unwanted dependency will sneak in through some other
     package. To completely override such a package you can use
-    <varname>overrideScope</varname>.
+    <varname>overrideScope'</varname>.
    </para>
 
 <screen>
-overrides = super: self: rec {
+overrides = self: super: rec {
   haskell-mode = self.melpaPackages.haskell-mode;
   ...
 };
-((emacsPackagesNgGen emacs).overrideScope overrides).emacsWithPackages (p: with p; [
+((emacsPackagesNgGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [
   # here both these package will use haskell-mode of our own choice
   ghc-mod
   dante
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 0107ed33d9e4..df9d977e9ec7 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -185,7 +185,7 @@ rec {
   /* Make a set of packages with a common scope. All packages called
      with the provided `callPackage' will be evaluated with the same
      arguments. Any package in the set may depend on any other. The
-     `overrideScope' function allows subsequent modification of the package
+     `overrideScope'` function allows subsequent modification of the package
      set in a consistent way, i.e. all packages in the set will be
      called with the overridden packages. The package sets may be
      hierarchical: the packages in the set are called with the scope
@@ -195,10 +195,10 @@ rec {
     let self = f self // {
           newScope = scope: newScope (self // scope);
           callPackage = self.newScope {};
-          # TODO(@Ericson2314): Haromonize argument order of `g` with everything else
-          overrideScope = g:
-            makeScope newScope
-            (lib.fixedPoints.extends (lib.flip g) f);
+          overrideScope = g: lib.warn
+            "`overrideScope` (from `lib.makeScope`) is deprecated. Do `overrideScope' (self: self: { … })` instead of `overrideScope (super: self: { … })`. All other overrides have the parameters in that order, including other definitions of `overrideScope`. This was the only definition violating the pattern."
+            (makeScope newScope (lib.fixedPoints.extends (lib.flip g) f));
+          overrideScope' = g: makeScope newScope (lib.fixedPoints.extends g f);
           packages = f;
         };
     in self;
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index 4e780b104b08..e161daffbd37 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -21,7 +21,7 @@ set which contains `emacsWithPackages`. For example, to override
 `emacsPackagesNg.emacsWithPackages`,
 ```
 let customEmacsPackages =
-      emacsPackagesNg.overrideScope (super: self: {
+      emacsPackagesNg.overrideScope' (self: super: {
         # use a custom version of emacs
         emacs = ...;
         # use the unstable MELPA version of magit