;;; package-management.el --- Initialize package management. -*- lexical-binding: t; -*- ;; Time-stamp: <2019-10-14T12:37:36+00:00> ;;; Commentary: ;; * Sets up package sources and their priorities. ;; * Sets up use-package. ;; * Compile elisp files. ;; * Update packages. ;;; Code: (require 'package) (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (setq package-archive-priorities '( ("melpa-stable" . 30) ("gnu" . 20) ("melpa" . 10) )) ;; Workaround for 26.2 . (defvar gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") (package-initialize) ;; Add path for custom packages. (add-to-list 'load-path "~/.emacs.d/custom-packages/") ;; Install use-package if necessary. (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) (eval-when-compile (require 'use-package)) ;; Always install packages if they are not present. (require 'use-package-ensure) (setq use-package-always-ensure t) ;; autocompile files as needed. (use-package auto-compile :custom ;; Use uncompiled file if it is newer than the compiled one. (load-prefer-newer t) :config (auto-compile-on-load-mode)) ;; Update packages if at least 7 days have passed. (use-package auto-package-update :custom (auto-package-update-delete-old-versions t) (auto-package-update-interval 7) (auto-package-update-hide-results nil) :config (auto-package-update-maybe)) (provide 'basics/package-management) ;;; package-management.el ends here