I went to upgrade this today and i got this error. Seems to have been introduced some time after commit 4f483b6 (dec 2nd). I'm using Quelpa and Quelpa-use-package to build my emacs packages, and in the built package seems like it's still trying to require things like up-core, up-diminish, and other things you moved to their own files. Obviously these don't exist since because they've been built into a single file. I tried commenting out the requires in the built file but that didn't do anything, so I don't think it's being bundled properly. I don't think this is is a quelpa issue since I'm almost certain other packages I use do the same thing you did and work just fine, but if it is, let me know.
Debugger entered--Lisp error: (file-error "Cannot open load file" "No such file or directory" "up-core")
require(up-core)
Recipe on melpa is missing the required files: https://github.com/melpa/melpa/blob/master/recipes/use-package
My workaround, for now, is to use melpa stable.
It appears that use-package is broken in MELPA. I have a MELPA pull request to add the other files.
@jwiegley Now that use-package is separated into multiple files, do you want to add the other files to :files or create a separate package for up-core, up-ensure, up-diminish, and up-delight? Also I'm getting errors that :ensure, :delight, and :diminish are unrecognized keywords even after adding their files, does the MELPA package need to be loaded different or do we need to add these keywords package to the keyword list?
A temporary workaround is to install a workable use-package.
Here is my solution:
(defvar elpa-melpa-stable '("melpa-stable" . "http://stable.melpa.org/packages/"))
(add-to-list 'package-archives elpa-melpa-stable t)
;; you need to disable MELPA repo here.
then rm -rf ~/.emacs.d/elpa/use-package-*.
launch a new Emacs instance, then [M-x package-install RET use-package RET].
Even though this stable version is preticular old, it is in 2016. But it works for my Emacs init files.
And WARNING, don't upgrade your packages recently, especially use-package, until it is fixed. I'm keep watching recently commits https://github.com/jwiegley/use-package/commits/master.
Or try this solution:
https://github.com/melpa/melpa/pull/5167
This might be simpler but I have not tried.
馃敘 This is really a big shock! Like any Linux Kernel upgrade, I will be careful for Emacs packages upgrading from now on too.
Just saw this after packages upgrade done. For a quick workaround I clone the the up-* files from this repo and place them inside the proper use-package directory in .emacs.d/elpa/. Works for me now but I hope the melpa recipe can be fixed soon.
Since I am not a MELPA user, what is the procedure for adding new :files?
It surprises me that MELPA pulls directly from master so frequently, since this is where active development occurs. When things are stable (i.e., no bugs reported for several days), that's when a new release is tagged.
At any rate, the several files within use-package should not be released as separate packages, but should just come together for now. I'm separating them to make the code easier to read and maintain, as part of general cleanup.
@jwiegley I think pinging @purcell is the right thing to do here. :)
@purcell Hi Steve, can you help me get the current master branch MELPA-ready? I split out the functionality from use-package.el into many files, all of which are required by use-package.el, so it should just be a matter of getting those files into the distribution and ensuring they are byte-compiled.
I have some Makefiles on the texinfo branch that work for building and testing, I just haven't moved them over because the full docs aren't ready yet; but if just moving the Makefiles over makes life easier for you, let me know and I'll do that.
As far as I'm aware there's nothing we have to do to fix use-package itself, just adding the new files to the MELPA package because otherwise MELPA only includes use-package.el without the files it requires (which is what I'm trying to do in https://github.com/melpa/melpa/pull/5167, besides my keyword not found errors which might not be relevant)
Thank you, I experienced this too but have installed from melpa stable and this works from me.
It surprises me that MELPA pulls directly from master so frequently, since this is where active development occurs. When things are stable (i.e., no bugs reported for several days), that's when a new release is tagged.
This actually makes me question my own current use of MELPA, incidentally.. Is there any option "between" ELPA and MELPA, with a good compromise in terms of freshness/stability?
Is there any option "between" ELPA and MELPA, with a good compromise in terms of freshness/stability?
You could use melpa-stable for packages that support that release flow, and use regular melpa for packages that do "trunk only" releases. (There's a good few of them!)
use-package can help a lot in this, as it can :pin stable. (See its documentation.) However, I don't think you can use it to pin use-package _itself_ to stable :-) You may be able to use package-load-list to define which version of use-package should be loaded, so even if you accidentally install a newer version, it will still load the stable one.
I tested the new fixed version of use-package (use-package-20171204.1703) and irony did not work.
On the oder hand, If I used a previous version, for example, use-package-20171030.1428 irony works properly.
This is my irony configuration
(use-package irony
:ensure t
;;:load-path "~/.emacs.d/user/site-lisp/irony-20171110.1151"
;;:commands irony-mode
:defer t
;; needs to declare irony-cdb for autoloads to work when taken from github
;; :config (use-package irony-cdb)
:after cc-mode
:config
(progn
(setq irony-server-install-prefix
"~/.emacs.d/user/site-lisp/irony-20171110.1151")
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'c++-mode-hook 'irony-mode)
(add-hook 'objc-mode-hook 'irony-mode)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
;;--------------------------------------------------------------------------
;;; Windows perfomance tweaks
;;--------------------------------------------------------------------------
(when (boundp 'w32-pipe-read-delay)
(setq w32-pipe-read-delay 0))
;; Set the buffer size to 64K on Windows (from the original 4K)
(when (boundp 'w32-pipe-buffer-size)
(setq irony-server-w32-pipe-buffer-size (* 64 1024)))
;;--------------------------------------------------------------------------
))
Thanks
Most helpful comment
Debugger entered--Lisp error: (file-error "Cannot open load file" "No such file or directory" "up-core")
require(up-core)