emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changes to make in elpa-packages file for nongnu elpa


From: No Wayman
Subject: Re: Changes to make in elpa-packages file for nongnu elpa
Date: Wed, 09 Aug 2023 17:55:09 -0400
User-agent: mu4e 1.11.12; emacs 30.0.50

Thierry Volpiatto <thievol@posteo.net> writes:

It is used specially for reproducing bugs in a clean environment, see it

(It might be interesting to provide something like this for
package.el, to test packages in a generic way.)

Yes, this would be interesting, it would be something like this:

Emacs -Q
M-x <A command that run a package alone, isolated from other
packages nuisances>

I've written various macros that do as much.
See:

- straight.el's straight-bug-report macro
https://github.com/radian-software/straight.el/blob/ff63b154bef1ef8d92c141bd189001bff74f6982/straight.el#L7049

- Elpaca's elpaca-test macro

https://github.com/progfolio/elpaca/blob/master/elpaca-test.el

- yodel

https://github.com/progfolio/yodel

All three are variations on the idea that it's useful to have a declarative form that can be shared to install packages in a clean environment, perform some testing, and report the results. Test environments can be run interactively or in batch mode.
e.g.


(elpaca-test
 :init
 (elpaca helm
   (require 'helm)
   (do-something-with-helm))
 (elpaca-wait))

Yodel was my attempt at providing something that could be package-manager agnostic and can be made to easily reformat the output of the report. Evaluating the following test:

(yodel :packages* helm
      :formatter yodel-format-as-mailing-list-message
      :post*
      (require 'helm)
      (message "good bye"))

Produces the following report:

Yodel[1] Report 2023-08-09 20:25:25
===================================

--8<---------------cut here---------------start------------->8---
(yodel
 :packages*
 helm
 :formatter yodel-format-as-mailing-list-message
 :post*
 (require 'helm) (message "good bye"))
--8<---------------cut here---------------end--------------->8---

STDOUT
======

INFO Scraping files for loaddefs... INFO Scraping files for loaddefs...done
  GEN      ../elpaca-autoloads.el
Cloning into '/tmp/yodel-KSS7te/elpaca/repos/elpaca'...
Your branch is up to date with 'origin/master'.
Checking /tmp/yodel-KSS7te/elpaca/repos/elpaca...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-info.el...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-log.el...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-manager.el... Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-menu-elpa.el... Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-menu-melpa.el... Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-menu-org.el... Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-process.el... Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-test.el...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca-ui.el...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/elpaca.el...
Checking /tmp/yodel-KSS7te/elpaca/repos/elpaca/doc...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/doc/early-init.el...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/doc/init.el...
Checking /tmp/yodel-KSS7te/elpaca/repos/elpaca/extensions...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/extensions/elpaca-use-package.el...
Checking /tmp/yodel-KSS7te/elpaca/repos/elpaca/images...
Checking /tmp/yodel-KSS7te/elpaca/repos/elpaca/test...
Compiling /tmp/yodel-KSS7te/elpaca/repos/elpaca/test/elpaca-test.el...
Done (Total of 11 files compiled, 3 skipped in 4 directories)

Downloading MELPA recipes...
Downloading MELPA recipes...100%
Downloading NonGNU-devel ELPA...
Downloading GNU-devel ELPA...
Downloading NonGNU ELPA...
Downloading GNU ELPA...
good bye

Environment
===========

- emacs version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8)
of 2023-08-09
- system type: gnu/linux

Packages
========

- async https://github.com/jwiegley/emacs-async/commit/bb0509060ddc9c94bc7db7bddb12995acb3b53e4 - elpaca https://github.com/progfolio/elpaca/commit/48da538b084870ef2126ca607af521eeee890fa7 - helm https://github.com/emacs-helm/helm/commit/a968b9bdd243f9d8d9d572656268421cb1ea8b39 - helm-core https://github.com/emacs-helm/helm/commit/a968b9bdd243f9d8d9d572656268421cb1ea8b39 - popup https://github.com/auto-complete/popup-el/commit/707bb336c6eb25743f1516b6a2165b40659a9d02 - wfnames https://github.com/thierryvolpiatto/wfnames/commit/e4d60978921b8a52693aebae988717261c89ed38

[1] https://www.github.com/progfolio/yodel

I pitched the idea a couple years ago on a bug report. The following message gives more of the rationale for the package:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=50842#35

Eli and Lars didn't seem too impressed at the time, but it clearly inspired "erts-mode", which Lars implemented shortly after. That's a step in the right direction, but not enough. Having a declarative testing macro has saved me many hours in debugging and confirming elisp bugs across packages I maintain.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]