I edited package.el as per the diff of that commit and eval'd the changed function. I can still recreate the problem. Here's what I did: 1. Uninstall git-timemachine using package manager. 2. See that the custom.el is updated (git-timemachine getting removed from package-selected-packages) 3. Re-install git-timemachine 4. Now the package-selected-packages var gets updated but does not get written to custom.el automatically. I believe this issue has been here for a while but I didn't get to chasing it; doesn't have to do with async install feature revert. It's just that now it matters more since we have the package-autoremove function. On Thu, May 21, 2015 at 12:11 PM Artur Malabarba wrote: > Then it sounds like we have a bug. I think I introduced it when > reverting the async stuff. > I just pushed a fix, could you try again with the latest master? > > 2015-05-21 16:06 GMT+01:00 Kaushal : > > About 2) the use-package forms happen after I load custom-file. > > > > I just manually deleted those 3 packages and reinstalled them from the > > package manager and then M-x package-autoremove displayed "Nothing to > > autoremove". But I noticed that that process did not update the > > package-selected-packages to the custom.el. I had to manually eval > > > > (package--save-selected-packages (package--find-non-dependencies)) > > > > in order to update the custom.el > > > > Before that, of course, after each emacs restart, package.el was trying > to > > autoremove those 3 packages. > > > > On Thu, May 21, 2015 at 10:58 AM Artur Malabarba < > bruce.connor.am@gmail.com> > > wrote: > >> > >> 2015-05-21 15:35 GMT+01:00 Kaushal : > >> > I just updated to the latest commit on emacs master and tried out > >> > package-autoremove. > >> > > >> > That suggested removing 3 packages (symon, minibuffer-line, > >> > git-timemachine), out of which I actually use 2: minibuffer-line, > >> > git-timemachine. > >> > > >> > For example, I have this in my init: > >> > > >> > ;; Display date+time in the minibuffer instead of in the mode-line > >> > (use-package minibuffer-line > >> > >> There are two possibilities for why this happened. > >> > >> 1. The first time you start Emacs after the commit that introduced > >> selected-packages, package.el will try to guess which of your packages > >> were explicitly installed by you, and which were pulled in as deps. > >> It's impossible to know for sure, so this guessing is bound to go > >> wrong on some instances. > >> > >> 2. The list of selected packages is stored with your > >> custom-set-variables. So, if your `use-package' form comes before your > >> `custom-set-variables', then that might cause it to not get stored > >> correctly. > >> > >> I'm not sure if there's a global fix we can do for case 2. Either way, > >> you (the user) can manually fix that by simply trying to install the > >> package you already have (`minibuffer-line', in this case). You can do > >> that from the package menu or with `M-x package-install'. You'll get a > >> message that "package already installed", and then package.el will > >> store this package in your list of `selected-packages'. > >> Another way to fix that is to `M-x customize-variable RET > >> package-selected-packages' and manually add `minibuffer-line' to it. >