unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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.



             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).