[emacs][wip] begin migration to straight.el
authorAmin Bandali <bandali@gnu.org>
Mon, 24 Dec 2018 17:50:44 +0000 (12:50 -0500)
committerAmin Bandali <bandali@gnu.org>
Mon, 24 Dec 2018 17:50:44 +0000 (12:50 -0500)
comment out just about all packages; will add them back gradually to
make sure everything works as expected

.gitignore
init.org
straight/versions/default.el [new file with mode: 0644]

index c5f850f..0a959bc 100644 (file)
@@ -3,6 +3,9 @@
 /early-init.el
 /init.el
 
+/straight/*
+!/straight/versions
+
 /var/*
 /var/eshell/history
 
index d8563fd..42fba09 100644 (file)
--- a/init.org
+++ b/init.org
@@ -184,9 +184,9 @@ but for now I've decided to keep them enabled. See documentation for
 
 *** No =package.el=
 
-I can do all my package management things with Borg, and don't need
-Emacs' built-in =package.el=. Emacs 27 lets us disable =package.el= in
-the =early-init-file= (see [[https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=24acb31c04b4048b85311d794e600ecd7ce60d3b][here]]).
+I can do all my package management things with =straight.el=, and
+don't need Emacs' built-in =package.el=.  Emacs 27 lets us disable
+=package.el= in the =early-init-file= (see [[https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=24acb31c04b4048b85311d794e600ecd7ce60d3b][here]]).
 
 #+begin_src emacs-lisp :tangle early-init.el
 (setq package-enable-at-startup nil)
@@ -197,12 +197,36 @@ right now), and even when released it'll be long before most distros
 ship in their repos, I'll still put the old workaround with the
 commented call to ~package-initialize~ here anyway.
 
-#+begin_src emacs-lisp
+#+begin_src emacs-lisp :tangle no
 (setq package-enable-at-startup nil)
 ;; (package-initialize)
 #+end_src
 
-*** Borg
+Update: the above is not necessary, since =straight.el= automatically
+does that (and more).  See =straight-package-neutering-mode=.
+
+*** =straight.el=
+
+#+begin_src emacs-lisp
+(setq straight-repository-branch "develop")
+
+(defvar bootstrap-version)
+(let ((bootstrap-file
+       (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
+      (bootstrap-version 5))
+  (unless (file-exists-p bootstrap-file)
+    (with-current-buffer
+        (url-retrieve-synchronously
+         "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
+         'silent 'inhibit-cookies)
+      (goto-char (point-max))
+      (eval-print-last-sexp)))
+  (load bootstrap-file nil 'nomessage))
+
+(setq straight-use-package-by-default t)
+#+end_src
+
+*** COMMENT Borg
 
 #+begin_quote
 Assimilate Emacs packages as Git submodules
@@ -244,7 +268,7 @@ packages (in our case especially the latter) in a neatly organized way
 and without compromising on performance.
 
 #+begin_src emacs-lisp
-(require 'use-package)
+(straight-use-package 'use-package)
 (if nil  ; set to t when need to debug init
     (setq use-package-verbose t
           use-package-expand-minimally nil
@@ -254,7 +278,7 @@ and without compromising on performance.
         use-package-expand-minimally t))
 #+end_src
 
-*** Epkg
+*** COMMENT Epkg
 
 #+begin_quote
 Browse the Emacsmirror package database
@@ -307,6 +331,7 @@ it it's own file. While at it, treat themes as safe.
 
 #+begin_src emacs-lisp
 (use-package custom
+  :straight nil
   :no-require t
   :config
   (setq custom-file (no-littering-expand-etc-file-name "custom.el"))
@@ -361,6 +386,7 @@ See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.htm
 
 #+begin_src emacs-lisp
 (use-package server
+  :straight nil
   :defer 1
   :config (or (server-running-p) (server-mode)))
 #+end_src
@@ -724,7 +750,44 @@ customizing it.
             'auto-compile-inhibit-compile-detached-git-head))
 #+end_src
 
-*** [[https://orgmode.org/][Org mode]]
+*** Org
+
+#+begin_src emacs-lisp
+  (use-package git)
+
+  (defun org-git-version ()
+    "The Git version of org-mode.
+  Inserted by installing org-mode or when a release is made."
+    (require 'git)
+    (let ((git-repo (expand-file-name
+                     "straight/repos/org/" user-emacs-directory)))
+      (string-trim
+       (git-run "describe"
+                "--match=release\*"
+                "--abbrev=6"
+                "HEAD"))))
+
+  (defun org-release ()
+    "The release version of org-mode.
+  Inserted by installing org-mode or when a release is made."
+    (require 'git)
+    (let ((git-repo (expand-file-name
+                     "straight/repos/org/" user-emacs-directory)))
+      (string-trim
+       (string-remove-prefix
+        "release_"
+        (git-run "describe"
+                 "--match=release\*"
+                 "--abbrev=0"
+                 "HEAD")))))
+
+  (provide 'org-version)
+
+  (use-package org
+    :defer 0.8) ; or org-plus-contrib if desired
+#+end_src
+
+*** COMMENT [[https://orgmode.org/][Org mode]]
 
 #+begin_quote
 Org mode is for keeping notes, maintaining TODO lists, planning
@@ -868,7 +931,7 @@ Not just how I do git, but /the/ way to do git.
   :custom-face (magit-diff-file-heading ((t (:weight normal)))))
 #+end_src
 
-*** [[https://github.com/abo-abo/swiper][Ivy]] (and friends)
+*** COMMENT [[https://github.com/abo-abo/swiper][Ivy]] (and friends)
 
 #+begin_quote
 Ivy - a generic completion frontend for Emacs, Swiper - isearch with
@@ -924,7 +987,7 @@ There's no way I could top that, so I won't attempt to.
   (defalias 'locate #'counsel-locate))
 #+end_src
 
-*** eshell
+*** COMMENT eshell
 
 #+begin_src emacs-lisp
 (use-package eshell
@@ -961,7 +1024,7 @@ There's no way I could top that, so I won't attempt to.
   (eshell-input-filter 'eshell-input-filter-initial-space))
 #+end_src
 
-*** Ibuffer
+*** COMMENT Ibuffer
 
 #+begin_src emacs-lisp
 (use-package ibuffer
@@ -1032,7 +1095,7 @@ There's no way I could top that, so I won't attempt to.
   :hook (ibuffer . (lambda () (ibuffer-switch-to-saved-filter-groups "default"))))
 #+end_src
 
-*** Outline
+*** COMMENT Outline
 
 #+begin_src emacs-lisp
 (use-package outline
@@ -1054,7 +1117,7 @@ There's no way I could top that, so I won't attempt to.
    ("s"   . outline-show-subtree)))
 #+end_src
 
-* Borg's =layer/essentials=
+* COMMENT Borg's =layer/essentials=
 :PROPERTIES:
 :CUSTOM_ID: borg-essentials
 :END:
@@ -1175,7 +1238,7 @@ TODO: break this giant source block down into individual org sections.
 
 #+end_src
 
-* Editing
+* COMMENT Editing
 :PROPERTIES:
 :CUSTOM_ID: editing
 :END:
@@ -1199,7 +1262,7 @@ TODO: break this giant source block down into individual org sections.
   (global-company-mode t))
 #+end_src
 
-* Syntax and spell checking
+* COMMENT Syntax and spell checking
 :PROPERTIES:
 :CUSTOM_ID: syntax-spell-checking
 :END:
@@ -1246,7 +1309,7 @@ TODO: break this giant source block down into individual org sections.
               #'endless/replace-quote))
 #+end_src
 
-* Programming modes
+* COMMENT Programming modes
 :PROPERTIES:
 :CUSTOM_ID: programming-modes
 :END:
@@ -1618,7 +1681,7 @@ treemacs
   :load-path "lib/guix/elisp")
 #+end_src
 
-* Emacs enhancements
+* COMMENT Emacs enhancements
 :PROPERTIES:
 :CUSTOM_ID: emacs-enhancements
 :END:
@@ -1955,7 +2018,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
                ("a" . mc/mark-all-like-this))))
 #+end_src
 
-* Email
+* COMMENT Email
 :PROPERTIES:
 :CUSTOM_ID: email
 :END:
@@ -2242,7 +2305,7 @@ Convenient footnotes in =message-mode=.
     (gnus-harvest-install)))
 #+end_src
 
-* Blogging
+* COMMENT Blogging
 :PROPERTIES:
 :CUSTOM_ID: blogging
 :END:
@@ -2281,6 +2344,6 @@ Display how long it took to load the init file.
 
 * COMMENT Local Variables                                           :ARCHIVE:
 # Local Variables:
-# eval: (add-hook 'after-save-hook #'a/async-babel-tangle 'append 'local)
+# eval: ;; (add-hook 'after-save-hook #'a/async-babel-tangle 'append 'local)
 # eval: (typo-mode -1)
 # End:
diff --git a/straight/versions/default.el b/straight/versions/default.el
new file mode 100644 (file)
index 0000000..2df0a79
--- /dev/null
@@ -0,0 +1,24 @@
+(("auto-compile" . "6ce4255ab9a0b010ef8414c5bd9a6d6d9eea012f")
+ ("cl-lib" . "deb92588d9d83d46c4698936ea31c5f58d244f04")
+ ("dash.el" . "6514359b8606a6a9a94068ccd601fcd6379d6584")
+ ("emacs-async" . "81dc034572e963550c5403a2b3c28047e46b4029")
+ ("epkgs" . "3e2b3cbada81bdb5e9b3f4bf185c7258f656b021")
+ ("exec-path-from-shell" . "9bc0f4a762f16d488376fb52409c58239a86d75d")
+ ("f.el" . "de6d4d40ddc844eee643e92d47b9d6a63fbebb48")
+ ("ghub" . "db15d00d01b8bd9187079a0b538d878d241743a8")
+ ("git.el" . "a3396a7027a7d986598c6a2d6d5599bac918f3da")
+ ("gnu-elpa-mirror" . "db6dd0677f0adac536ec6c575865770aa902c0a1")
+ ("graphql.el" . "e2b309689f4faf9225f290080f836e988c5a576d")
+ ("let-alist" . "4a7693b678c59a148660c736cc0bb26a5032ee9a")
+ ("magit" . "d866fb3624bdeb87f0c56e359239e4474362d0af")
+ ("magit-popup" . "8eaa0becc2370484a432a8a19f40ce5e8d0f1642")
+ ("melpa" . "5487adde3bbb1bfd875c51932c63ceef541d6b6f")
+ ("no-littering" . "4e7ecf017140bc522629cd2c977160f7cc2b8020")
+ ("org" . "495c7c6a5774a4d3035c582a3b4c95eb04e83dd5")
+ ("packed" . "c41c3dfda86ae33832ffc146923e2a4675cbacfa")
+ ("s.el" . "03410e6a7a2b11e47e1fea3b7d9899c7df26435e")
+ ("straight.el" . "13d019dfc72e69cce58b510766e197b044ea823b")
+ ("treepy.el" . "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d")
+ ("use-package" . "39a8b8812c2c9f6f0b299e6a04e504ef393694ce")
+ ("with-editor" . "9dd9f176d96abc60365369de6d08c26c414ef1f3"))
+:saturn