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
- Host: GitHub
- URL: https://github.com/progfolio/yodel
- Owner: progfolio
- Created: 2021-08-30T18:59:40.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-04T12:52:36.000Z (over 1 year ago)
- Last Synced: 2025-01-04T13:48:45.345Z (over 1 year ago)
- Topics: bugs, emacs, reproducibility
- Language: Emacs Lisp
- Homepage:
- Size: 93.8 KB
- Stars: 24
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
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.