Skip to content

Revert beads.el pin to upstream once r0man/beads.el#66 merges #1

Description

@stfl

The beads package in config.org is pinned to a fork (stfl/beads.el, branch fix/emacs31-transient-autoloads) as a temporary workaround.

Why

On Emacs 31, loading beads-autoloads.el fails with:

Symbol's function definition is void: transient-define-prefix

beads and beads-more-menu in lisp/beads.el carry a bare ;;;###autoload cookie on their transient-define-prefix form. Emacs 31 only reduces such a form to an autoload stub when the defining macro opts into (autoload-macro expand) and is fully loaded while autoloads are generated. transient does set that property (commit bda7c2e), but straight.el merely autoloads transient, so loaddefs-generate copies the raw form verbatim.

Loading those autoloads then aborts the entire doom sync during package activation.

Made worse by loaddefs-generate skipping regeneration when the output file is up to date — once a broken autoloads file is written it is reused indefinitely, so the failure survives re-syncs until the file is deleted.

Fix

Upstream PR: r0man/beads.el#66 — emits explicit autoload stubs, matching the idiom beads already uses in beads-command-admin.el, beads-command-migrate.el, beads-command-swarm.el, etc.

Action when the PR merges

  1. In config.org, restore the recipe to :host github :repo "r0man/beads.el", drop :branch and :pin, and delete the TEMPORARY FORK comment block.
  2. doom sync — if the void-function error reappears, delete <straight>/build-*/beads/beads-autoloads.el first.
  3. Delete the fork.

If the PR is rejected, keep the fork or switch to a :pre-build that rewrites the cookies at build time.

Related

typst-ts-mode hits the same Emacs 31 issue via define-compilation-mode (tracked upstream as meow_king/typst-ts-mode#103); it is worked around with a :pre-build in config.org.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions