An open API service indexing awesome lists of open source software.

https://github.com/progfolio/yodel

Communicable Elisp
https://github.com/progfolio/yodel

bugs emacs reproducibility

Last synced: about 1 year ago
JSON representation

Communicable Elisp

Awesome Lists containing this project

README

          

* Yodel: Communicable Elisp β›°πŸŽΆβ›°
** Yodel-ay-hee-why?
The purpose of this package is to make it easier to reproduce elisp bugs.
Bug reproduction cases often follow this pattern:

#+begin_example
Given file "foo" with the following contents:

--8<---------------cut here---------------start------------->8---
foo bar baz
--8<---------------cut here---------------end--------------->8---

Execute the following:
1. do this
2. do that
3. do this
#+end_example

This is error prone and inefficient. It requires anyone on the other end to
prepare the test environment and manually execute the reproduction steps. One
also has to ensure their elisp environment is clean (ideally only having the
minimal set of packages needed installed and freshly loaded).

** Yodel-ay-hee-what?
Yodel allows one to send a declarative form which describes
the elisp environment and a program to execute within that environment. Others may
execute the form on their system and compare results easily via consistently
formatted reports.

For example, evaluating the following:

#+begin_src emacs-lisp :lexical t :results silent
(yodel
:post*
(yodel-file
:point "|"
:with* "test: |fail"
:then*
(kill-word 1)
(insert "pass")
(message "%s" (buffer-string))))
#+end_src

results in the following report when using the org report formatter:

#+begin_src org
,* YODEL REPORT [2021-09-08 17:51]

,#+begin_src emacs-lisp :lexical t
(yodel
:post*
(yodel-file
:point "|"
:with* "test: |fail"
:then*
(kill-word 1)
(insert "pass")
(message "%s"
(buffer-string))))
,#+end_src

,** STDOUT:

,#+begin_src emacs-lisp :lexical t
test: pass
,#+end_src

,** Environment

- =emacs version=: GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.17.4, Xaw3d scroll bars)
of 2021-09-04
- =system type=: gnu/linux
#+end_src

Reformatting reports is as easy as =M-x yodel-reformat=.
Yodel offers out-of-the-box formatters for:

- Github
- Reddit
- Org
- Mailing lists

** Yodel-ay-hee-how?
Yodel is currently only available via this repository.
*** Install with [[https://github.com/raxod502/straight.el][straight.el]]
#+begin_src emacs-lisp :lexical t
(straight-use-package '(yodel :host github :repo "progfolio/yodel"))
#+end_src
(side note: The inspiration for yodel is straight.el's =straight-bug-report=)
*** Install manually
- Clone this repository
- Add it to your load-path
- =(require 'yodel)=
** NOTICE
Yodel is still in early development.
API is experimental at this time.