From: No Wayman <iarchivedmywholelife@gmail.com>
To: Thierry Volpiatto <thievol@posteo.net>
Cc: Philip Kaludercic <philipk@posteo.net>, emacs-devel@gnu.org
Subject: Re: Changes to make in elpa-packages file for nongnu elpa
Date: Wed, 09 Aug 2023 17:55:09 -0400 [thread overview]
Message-ID: <87sf8rsovl.fsf@gmail.com> (raw)
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.
next reply other threads:[~2023-08-09 21:55 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 21:55 No Wayman [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-08-07 7:57 Changes to make in elpa-packages file for nongnu elpa Thierry Volpiatto
2023-08-07 13:30 ` Philip Kaludercic
2023-08-07 18:19 ` Thierry Volpiatto
2023-08-07 20:33 ` Philip Kaludercic
2023-08-08 4:33 ` Thierry Volpiatto
2023-08-08 5:52 ` Philip Kaludercic
2023-08-08 6:17 ` Thierry Volpiatto
2023-08-15 16:55 ` Philip Kaludercic
2023-08-15 17:34 ` Eshel Yaron
2023-08-15 18:56 ` Eli Zaretskii
2023-08-16 6:51 ` Thierry Volpiatto
2023-08-16 10:10 ` Philip Kaludercic
2023-08-16 10:14 ` Thierry Volpiatto
2023-08-16 11:03 ` Philip Kaludercic
2023-08-16 11:55 ` Thierry Volpiatto
2023-08-16 14:10 ` Eli Zaretskii
2023-08-16 18:52 ` Philip Kaludercic
2023-08-08 6:01 ` Thierry Volpiatto
2023-08-08 6:34 ` Michael Albinus
2023-08-08 16:37 ` Philip Kaludercic
2023-08-08 16:41 ` Michael Albinus
2023-08-09 7:06 ` Philip Kaludercic
2023-08-09 11:53 ` Eli Zaretskii
2023-08-09 14:53 ` Philip Kaludercic
2023-08-09 14:55 ` Eli Zaretskii
2023-08-09 15:24 ` Philip Kaludercic
2023-08-09 16:23 ` Eli Zaretskii
2023-08-09 3:47 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sf8rsovl.fsf@gmail.com \
--to=iarchivedmywholelife@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=philipk@posteo.net \
--cc=thievol@posteo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).