Doom up deletes build sub-directories (breaks hyperbole)

What happened?

I installed the development version of hyperbole, and it works. At the next doom up, hyperbole is reinstalled with only the el and elc files. All subdirectories, including ones hyperbole needs, are deleted, and hyperbole can no longer be loaded (the directories contain some autoloads).

What did you expect to happen?

doom up would not delete these files.

Steps to reproduce

  1. add this to package.el
(package! hyperbole :recipe (:host nil :repo "https://git.savannah.gnu.org/git/hyperbole.git"))
  1. run doom sync. For me the output is
schmitta@TM ~/.e/.l/s/build-29.1 (master)> ~/.emacs.d/bin/doom sync
> Tangling your literate config...
  ✓ Done tangling 3 file(s)!
> Synchronizing "default" profile...
  > Regenerating envvars file
    ✓ Generated ~/.emacs.d/.local/env
  > Installing packages...
    > Building hyperbole...
    ✓ Installed 1 packages
  > (Re)building packages...
    - No packages need rebuilding
  > Purging orphaned packages (for the emperor)...
    - Skipping builds
    - Skipping elpa packages
    - Skipping repos
    - Skipping regrafting
    - Skipping native bytecode
  > (Re)building profile in /Users/schmitta/.emacs.d/.local/etc/@/...
    > Deleting old init files...
    > Generating 4 init files...
    > Byte-compiling ~/.emacs.d/.local/etc/@init.29.el...
    ✓ Built init.29.elc
  - Restart Emacs or use 'M-x doom/reload' for changes to take effect
✓ Finished in 9.15002s

and the contents of the build hyperbole directory is

schmitta@TM ~/.e/.l/s/build-29.1 (master)> ls hyperbole/
COPYING@                hargs.el@               hload-path.el@          hsettings.el@           hui-mouse.el@           hypb.elc
ChangeLog@              hargs.elc               hload-path.elc          hsettings.elc           hui-mouse.elc           hyperbole-autoloads.el
DEMO@                   hbdata.el@              hmail.el@               hsmail.el@              hui-register.el@        hyperbole-banner.png@
DEMO-ROLO.otl@          hbdata.elc              hmail.elc               hsmail.elc              hui-register.elc        hyperbole.el@
FAST-DEMO@              hbmap.el@               hmh.el@                 hsys-org-roam.el@       hui-select.el@          hyperbole.elc
HY-ABOUT@               hbmap.elc               hmh.elc                 hsys-org-roam.elc       hui-select.elc          hyrolo-demo.el@
HY-ANNOUNCE@            hbut.el@                hmoccur.el@             hsys-org.el@            hui-treemacs.el@        hyrolo-demo.elc
HY-CONCEPTS.kotl@       hbut.elc                hmoccur.elc             hsys-org.elc            hui-treemacs.elc        hyrolo-logic.el@
HY-COPY@                hgnus.el@               hmouse-drv.el@          hsys-www.el@            hui-window.el@          hyrolo-logic.elc
HY-NEWS@                hgnus.elc               hmouse-drv.elc          hsys-www.elc            hui-window.elc          hyrolo-menu.el@
HY-TALK/                hhist.el@               hmouse-info.el@         hsys-youtube.el@        hui.el@                 hyrolo-menu.elc
HY-WHY.kotl@            hhist.elc               hmouse-info.elc         hsys-youtube.elc        hui.elc                 hyrolo.el@
INSTALL@                hib-debbugs.el@         hmouse-key.el@          htz.el@                 hvar.el@                hyrolo.elc
MANIFEST@               hib-debbugs.elc         hmouse-key.elc          htz.elc                 hvar.elc                hywconfig.el@
Makefile@               hib-doc-id.el@          hmouse-mod.el@          hui-dired-sidebar.el@   hversion.el@            hywconfig.elc
README@                 hib-doc-id.elc          hmouse-mod.elc          hui-dired-sidebar.elc   hversion.elc            install-test/
README.md@              hib-kbd.el@             hmouse-sh.el@           hui-em-but.el@          hvm.el@                 interactive-demos/
TAGS@                   hib-kbd.elc             hmouse-sh.elc           hui-em-but.elc          hycontrol.el@           kotl/
_config.yml@            hib-social.el@          hmouse-tag.el@          hui-jmenu.el@           hycontrol.elc           man/
_hypb@                  hib-social.elc          hmouse-tag.elc          hui-jmenu.elc           hypb-ert.el@            set.el@
hact.el@                hibtypes.el@            hpath.el@               hui-menu.el@            hypb-ert.elc            set.elc
hact.elc                hibtypes.elc            hpath.elc               hui-menu.elc            hypb-maintenance.el@    smart-clib-sym@
hactypes.el@            hinit.el@               hrmail.el@              hui-mini.el@            hypb-maintenance.elc    test/
hactypes.elc            hinit.elc               hrmail.elc              hui-mini.elc            hypb.el@                topwin.py@
  1. run doom up. The output is
schmitta@TM ~/.e/.l/s/build-29.1 (master)> ~/.emacs.d/bin/doom up
> Preparing to upgrade Doom Emacs and its packages...
✓ Doom is already up-to-date!
Doom is up-to-date!
> Tangling your literate config...
  ✓ Done tangling 3 file(s)!
> Preparing to upgrade Doom Emacs and its packages...
✓ Doom is already up-to-date!
Doom is up-to-date!
> Synchronizing "default" profile...
  > Regenerating envvars file
    ✓ Generated ~/.emacs.d/.local/env
  > Installing packages...
    > Building hyperbole...
    ✓ Installed 1 packages
  > (Re)building packages...
    - No packages need rebuilding
  > Updating recipe repos...
  > Updating packages (this may take a while)...
    ! (222/250) Skipping xah-replace-pairs because it is local
    ✓ All 250 packages are up-to-date
  > Purging orphaned packages (for the emperor)...
    - Skipping builds
    - Skipping elpa packages
    - Skipping repos
    - Skipping regrafting
    - Skipping native bytecode
  > (Re)building profile in /Users/schmitta/.emacs.d/.local/etc/@/...
    > Deleting old init files...
    > Generating 4 init files...
    > Byte-compiling ~/.emacs.d/.local/etc/@init.29.el...
    ✓ Built init.29.elc
  - Restart Emacs or use 'M-x doom/reload' for changes to take effect
✓ Finished in 42.65329s

Note that hyperbole is described as installed, but now it is in a broken state, as only the .el and .elc files are there.

schmitta@TM ~/.e/.l/s/build-29.1 (master)> ls hyperbole/
hact.el@                hib-doc-id.el@          hmouse-drv.el@          hsys-org-roam.elc       hui-mini.el@            hypb-ert.el@
hact.elc                hib-kbd.el@             hmouse-info.el@         hsys-org.el@            hui-mouse.el@           hypb-maintenance.el@
hactypes.el@            hib-social.el@          hmouse-info.elc         hsys-www.el@            hui-register.el@        hypb.el@
hargs.el@               hibtypes.el@            hmouse-key.el@          hsys-youtube.el@        hui-select.el@          hyperbole-autoloads.el
hbdata.el@              hinit.el@               hmouse-mod.el@          htz.el@                 hui-treemacs.el@        hyperbole.el@
hbmap.el@               hload-path.el@          hmouse-sh.el@           htz.elc                 hui-treemacs.elc        hyrolo-demo.el@
hbmap.elc               hload-path.elc          hmouse-tag.el@          hui-dired-sidebar.el@   hui-window.el@          hyrolo-logic.el@
hbut.el@                hmail.el@               hpath.el@               hui-dired-sidebar.elc   hui.el@                 hyrolo-menu.el@
hgnus.el@               hmail.elc               hrmail.el@              hui-em-but.el@          hvar.el@                hyrolo.el@
hhist.el@               hmh.el@                 hsettings.el@           hui-jmenu.el@           hversion.el@            hywconfig.el@
hhist.elc               hmoccur.el@             hsmail.el@              hui-jmenu.elc           hvm.el@                 set.el@
hib-debbugs.el@         hmoccur.elc             hsys-org-roam.el@       hui-menu.el@            hycontrol.el@           set.elc

I tried removing the hyperbole directory and running doom sync again, but I end up in the same state (where anything that is not an el or elc file is missing). The only way to recover a working installation is to remove hyperbole from packages.el, run doom sync, put it back, and run doom sync again.

System information


Loading data dump...