emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] ob-clojure.el: Add support for babashka and nbb backend
@ 2021-11-14 15:28 Daniel Kraus
  2021-11-14 16:25 ` Max Nikulin
  0 siblings, 1 reply; 21+ messages in thread
From: Daniel Kraus @ 2021-11-14 15:28 UTC (permalink / raw)
  To: emacs-orgmode

* lisp/ob-clojure.el: Add support for babashka and nbb backend.
---
This adds support to ob-clojure for babashka (https://github.com/babashka/babashka)
and nbb (node version of babashka).
It doesn't use `params` as I'm not really sure what they're used for and
if they're important for evaluation.

I'm also new to org development and the git email workflow so any feedback
to the code or the email patch etc is appreciated.

 lisp/ob-clojure.el | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el
index 3b995d94c..dc42daa5c 100644
--- a/lisp/ob-clojure.el
+++ b/lisp/ob-clojure.el
@@ -36,6 +36,8 @@
 ;; For clojure-mode, see https://github.com/clojure-emacs/clojure-mode
 ;; For cider, see https://github.com/clojure-emacs/cider
 ;; For inf-clojure, see https://github.com/clojure-emacs/cider
+;; For babashka, see https://github.com/babashka/babashka
+;; For nbb, see https://github.com/babashka/nbb
 
 ;; For SLIME, the best way to install these components is by following
 ;; the directions as set out by Phil Hagelberg (Technomancy) on the
@@ -73,6 +75,8 @@
 	  (const :tag "inf-clojure" inf-clojure)
 	  (const :tag "cider" cider)
 	  (const :tag "slime" slime)
+	  (const :tag "babashka" babashka)
+	  (const :tag "nbb" nbb)
 	  (const :tag "Not configured yet" nil)))
 
 (defcustom org-babel-clojure-default-ns "user"
@@ -80,6 +84,16 @@
   :type 'string
   :group 'org-babel)
 
+(defcustom ob-clojure-babashka-command (executable-find "bb")
+  "Path to the babashka executable."
+  :type 'file
+  :group 'org-babel)
+
+(defcustom ob-clojure-nbb-command (executable-find "nbb")
+  "Path to the nbb executable."
+  :type 'file
+  :group 'org-babel)
+
 (defun org-babel-expand-body:clojure (body params)
   "Expand BODY according to PARAMS, return the expanded body."
   (let* ((vars (org-babel--get-vars params))
@@ -225,6 +239,16 @@
        ,(buffer-substring-no-properties (point-min) (point-max)))
      (cdr (assq :package params)))))
 
+(defun ob-clojure-escape-quotes (str-val)
+  "Escape quotes for STR-VAL."
+  (replace-regexp-in-string "\"" "\\\"" str-val 'FIXEDCASE 'LITERAL))
+
+(defun ob-clojure-eval-with-babashka (bb expanded)
+  "Evaluate EXPANDED code block using BB (babashka or nbb)."
+  (let ((escaped (ob-clojure-escape-quotes expanded)))
+    (shell-command-to-string
+     (concat bb " -e \"" escaped "\""))))
+
 (defun org-babel-execute:clojure (body params)
   "Execute a block of Clojure code with Babel."
   (unless org-babel-clojure-backend
@@ -236,6 +260,10 @@
 	  (cond
 	   ((eq org-babel-clojure-backend 'inf-clojure)
 	    (ob-clojure-eval-with-inf-clojure expanded params))
+           ((eq org-babel-clojure-backend 'babashka)
+	    (ob-clojure-eval-with-babashka ob-clojure-babashka-command expanded))
+           ((eq org-babel-clojure-backend 'nbb)
+	    (ob-clojure-eval-with-babashka ob-clojure-nbb-command expanded))
 	   ((eq org-babel-clojure-backend 'cider)
 	    (ob-clojure-eval-with-cider expanded params))
 	   ((eq org-babel-clojure-backend 'slime)
-- 
2.33.1




^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-14 15:28 [PATCH] ob-clojure.el: Add support for babashka and nbb backend Daniel Kraus
@ 2021-11-14 16:25 ` Max Nikulin
  2021-11-14 16:30   ` Daniel Kraus
  0 siblings, 1 reply; 21+ messages in thread
From: Max Nikulin @ 2021-11-14 16:25 UTC (permalink / raw)
  To: emacs-orgmode

On 14/11/2021 22:28, Daniel Kraus wrote:
> * lisp/ob-clojure.el: Add support for babashka and nbb backend.
> ---
> +(defun ob-clojure-escape-quotes (str-val)
> +  "Escape quotes for STR-VAL."
> +  (replace-regexp-in-string "\"" "\\\"" str-val 'FIXEDCASE 'LITERAL))
> +
> +(defun ob-clojure-eval-with-babashka (bb expanded)
> +  "Evaluate EXPANDED code block using BB (babashka or nbb)."
> +  (let ((escaped (ob-clojure-escape-quotes expanded)))
> +    (shell-command-to-string
> +     (concat bb " -e \"" escaped "\""))))

Does not it an open door for security vulnerabilities? Consider a string 
somewhere in the code: "`echo arbitrary code execution`". Only outer 
quotes are escaped.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-14 16:25 ` Max Nikulin
@ 2021-11-14 16:30   ` Daniel Kraus
  2021-11-15 14:33     ` Max Nikulin
  0 siblings, 1 reply; 21+ messages in thread
From: Daniel Kraus @ 2021-11-14 16:30 UTC (permalink / raw)
  To: emacs-orgmode

Hi!

Max Nikulin <manikulin@gmail.com> writes:

> On 14/11/2021 22:28, Daniel Kraus wrote:
>> +(defun ob-clojure-escape-quotes (str-val)
>> +  "Escape quotes for STR-VAL."
>> +  (replace-regexp-in-string "\"" "\\\"" str-val 'FIXEDCASE 'LITERAL))
>> +
>> +(defun ob-clojure-eval-with-babashka (bb expanded)
>> +  "Evaluate EXPANDED code block using BB (babashka or nbb)."
>> +  (let ((escaped (ob-clojure-escape-quotes expanded)))
>> +    (shell-command-to-string
>> +     (concat bb " -e \"" escaped "\""))))
>
> Does not it an open door for security vulnerabilities? Consider a string
> somewhere in the code: "`echo arbitrary code execution`". Only outer quotes are
> escaped.

The escaping is not done for security reasons.
When I have a babel block like

#+BEGIN_SRC clojure
(str "foo" "bar")
#+END_SRC

babashka has to be called with

bb -e "(str \"foo\" \"bar\")"

etc.

Security wise someone should always be careful what he
evaluates in an org-babel block.
Nobody prevents you from evaluating

#+BEGIN_SRC shell
sudo rm -rf /
#+END_SRC

Cheers,
  Daniel


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-14 16:30   ` Daniel Kraus
@ 2021-11-15 14:33     ` Max Nikulin
  2021-11-15 16:05       ` Daniel Kraus
  0 siblings, 1 reply; 21+ messages in thread
From: Max Nikulin @ 2021-11-15 14:33 UTC (permalink / raw)
  To: emacs-orgmode

On 14/11/2021 23:30, Daniel Kraus wrote:
> Max Nikulin writes:
>> On 14/11/2021 22:28, Daniel Kraus wrote:
>>> +(defun ob-clojure-escape-quotes (str-val)
>>> +  "Escape quotes for STR-VAL."
>>> +  (replace-regexp-in-string "\"" "\\\"" str-val 'FIXEDCASE 'LITERAL))
>>> +
>>> +(defun ob-clojure-eval-with-babashka (bb expanded)
>>> +  "Evaluate EXPANDED code block using BB (babashka or nbb)."
>>> +  (let ((escaped (ob-clojure-escape-quotes expanded)))
>>> +    (shell-command-to-string
>>> +     (concat bb " -e \"" escaped "\""))))
>>
>> Does not it an open door for security vulnerabilities? Consider a string
>> somewhere in the code: "`echo arbitrary code execution`". Only outer quotes are
>> escaped.
> 
> The escaping is not done for security reasons.
> When I have a babel block like
> 
> #+BEGIN_SRC clojure
> (str "foo" "bar")
> #+END_SRC
> 
> babashka has to be called with
> 
> bb -e "(str \"foo\" \"bar\")"

Enough shell constructs may be interpreted by shell inside double quotes 
before result is passed to bb. I mentioned execution of code inside 
backticks, variable substitutions are mostly undesired as well. I do not 
think, users should escape "$" inside source blocks just because you 
chose incomplete escaping of shell specials.

The following source block must not execute echo and touch

#+begin_src clojure
   (str "`echo $HOME`" "`touch /tmp/pwned`")
#+end_src

Shell should not be used to launch any command unless it is really 
necessary. Arguments should be passed directly to execve(2) system call 
as an array. Combining them into string to pass through shell 
interpreter to parse into argument array again is error prone.

Unfortunately Emacs API related to execution of external processes is 
awkward. In this particular case it encourages usage of the unsafe 
function since there is no convenient helper that accepts binary and 
*list* of arguments and returns output as a string.

So more verbose code is required to invoke bb without intermediate 
interpretation of content of argument string. In my opinion it is better 
than using of more reliable and tested function to escape shell specials.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-15 14:33     ` Max Nikulin
@ 2021-11-15 16:05       ` Daniel Kraus
  2021-11-17 16:12         ` Max Nikulin
                           ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Daniel Kraus @ 2021-11-15 16:05 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 473 bytes --]


Max Nikulin <manikulin@gmail.com> writes:

> The following source block must not execute echo and touch
>
> #+begin_src clojure
>    (str "`echo $HOME`" "`touch /tmp/pwned`")
> #+end_src

Thanks, now I got it :)

Attached is the patch changed the logic to use a temp file with org-babel-eval.
Somehow it doesn't feel too great to create unnecessary temp files
but I looked how other babel backends do it and e.g. ob-js and ob-haskell
use the same logic.

Thanks,
  Daniel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ob-clojure.el-Add-support-for-babashka-and-nbb-backe.patch --]
[-- Type: text/x-patch, Size: 2903 bytes --]

From cc9a24fcc42756cc76d59697bddc94a4ee2c475d Mon Sep 17 00:00:00 2001
From: Daniel Kraus <daniel@kraus.my>
Date: Sat, 13 Nov 2021 22:51:56 +0100
Subject: [PATCH] ob-clojure.el: Add support for babashka and nbb backend

* lisp/ob-clojure.el: Add support for babashka and nbb backend.
---
 lisp/ob-clojure.el | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el
index 3b995d94c..8548dc86d 100644
--- a/lisp/ob-clojure.el
+++ b/lisp/ob-clojure.el
@@ -36,6 +36,8 @@
 ;; For clojure-mode, see https://github.com/clojure-emacs/clojure-mode
 ;; For cider, see https://github.com/clojure-emacs/cider
 ;; For inf-clojure, see https://github.com/clojure-emacs/cider
+;; For babashka, see https://github.com/babashka/babashka
+;; For nbb, see https://github.com/babashka/nbb
 
 ;; For SLIME, the best way to install these components is by following
 ;; the directions as set out by Phil Hagelberg (Technomancy) on the
@@ -73,6 +75,8 @@
 	  (const :tag "inf-clojure" inf-clojure)
 	  (const :tag "cider" cider)
 	  (const :tag "slime" slime)
+	  (const :tag "babashka" babashka)
+	  (const :tag "nbb" nbb)
 	  (const :tag "Not configured yet" nil)))
 
 (defcustom org-babel-clojure-default-ns "user"
@@ -80,6 +84,16 @@
   :type 'string
   :group 'org-babel)
 
+(defcustom ob-clojure-babashka-command (executable-find "bb")
+  "Path to the babashka executable."
+  :type 'file
+  :group 'org-babel)
+
+(defcustom ob-clojure-nbb-command (executable-find "nbb")
+  "Path to the nbb executable."
+  :type 'file
+  :group 'org-babel)
+
 (defun org-babel-expand-body:clojure (body params)
   "Expand BODY according to PARAMS, return the expanded body."
   (let* ((vars (org-babel--get-vars params))
@@ -225,6 +239,15 @@
        ,(buffer-substring-no-properties (point-min) (point-max)))
      (cdr (assq :package params)))))
 
+(defun ob-clojure-eval-with-babashka (bb expanded)
+  "Evaluate EXPANDED code block using BB (babashka or nbb)."
+  (let ((script-file (org-babel-temp-file "clojure-bb-script-" ".clj")))
+    (with-temp-file script-file
+      (insert expanded))
+    (org-babel-eval
+     (format "%s %s" bb (org-babel-process-file-name script-file))
+     "")))
+
 (defun org-babel-execute:clojure (body params)
   "Execute a block of Clojure code with Babel."
   (unless org-babel-clojure-backend
@@ -236,6 +259,10 @@
 	  (cond
 	   ((eq org-babel-clojure-backend 'inf-clojure)
 	    (ob-clojure-eval-with-inf-clojure expanded params))
+           ((eq org-babel-clojure-backend 'babashka)
+	    (ob-clojure-eval-with-babashka ob-clojure-babashka-command expanded))
+           ((eq org-babel-clojure-backend 'nbb)
+	    (ob-clojure-eval-with-babashka ob-clojure-nbb-command expanded))
 	   ((eq org-babel-clojure-backend 'cider)
 	    (ob-clojure-eval-with-cider expanded params))
 	   ((eq org-babel-clojure-backend 'slime)
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-15 16:05       ` Daniel Kraus
@ 2021-11-17 16:12         ` Max Nikulin
  2021-11-20 10:18           ` Daniel Kraus
  2022-01-31  7:58         ` Daniel Kraus
  2022-09-25  3:10         ` Bastien
  2 siblings, 1 reply; 21+ messages in thread
From: Max Nikulin @ 2021-11-17 16:12 UTC (permalink / raw)
  To: emacs-orgmode

On 15/11/2021 23:05, Daniel Kraus wrote:
> Max Nikulin writes:
> 
> Attached is the patch changed the logic to use a temp file with org-babel-eval.

Thank you for contribution. I do not have strong objection any more. I 
am not familiar with babel internals, so I leave further discussion to 
maintainers.

If you have not signed copyright assignment yet, likely you should do it 
to proceed (I am unsure concerning precise rules concerning line 
counting). See https://orgmode.org/contribute.html and 
https://orgmode.org/worg/org-contribute.html for details.

> Somehow it doesn't feel too great to create unnecessary temp files
> but I looked how other babel backends do it and e.g. ob-js and ob-haskell
> use the same logic.

Code fragment might be huge enough to exceed limit on arguments length, 
so I think that file is safer. Some interpreters and compilers generates 
more meaningful errors and stacktraces when act on a file. Another 
option is to feed content to process standard input. With `call-process' 
or an related command it should be possible to implement any variant, 
including raw argument without intermediate shell pass. See info 
"(elisp) Synchronous Processes" or 
https://www.gnu.org/software/emacs/manual/html_node/elisp/Synchronous-Processes.html

> +    (with-temp-file script-file
> +      (insert expanded))
> +    (org-babel-eval
> +     (format "%s %s" bb (org-babel-process-file-name script-file))
> +     "")))

Since other babel packages use the same approach, I will not argue. By 
the way, isn't second argument of `org-babel-eval' intended for code 
that may be executed without a temporary file?

Some babel languages support sessions. I have no idea if it is 
applicable to babashka.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-17 16:12         ` Max Nikulin
@ 2021-11-20 10:18           ` Daniel Kraus
  2021-12-22 22:34             ` Daniel Kraus
  0 siblings, 1 reply; 21+ messages in thread
From: Daniel Kraus @ 2021-11-20 10:18 UTC (permalink / raw)
  To: emacs-orgmode


Max Nikulin <manikulin@gmail.com> writes:

> Thank you for contribution. I do not have strong objection any more. I am not
> familiar with babel internals, so I leave further discussion to maintainers.
>
> If you have not signed copyright assignment yet, likely you should do it to
> proceed (I am unsure concerning precise rules concerning line counting). See
> https://orgmode.org/contribute.html and
> https://orgmode.org/worg/org-contribute.html for details.

Thank you very much for your insights.
I filled out the copyright assignment and waiting for them.
I'll mail again when it's done.
(Maybe this is even small enough to count as tinychange if the
assignment should take a long time).

Cheers,
  Daniel


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-20 10:18           ` Daniel Kraus
@ 2021-12-22 22:34             ` Daniel Kraus
  0 siblings, 0 replies; 21+ messages in thread
From: Daniel Kraus @ 2021-12-22 22:34 UTC (permalink / raw)
  To: emacs-orgmode


Daniel Kraus <daniel@kraus.my> writes:

> I filled out the copyright assignment and waiting for them.
> I'll mail again when it's done.

Just want to mention that I finally received my signed of the copyright agreement.
so there is no blocker from this site in case it doesn't count as tinychange.

Thanks,
  Daniel


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-15 16:05       ` Daniel Kraus
  2021-11-17 16:12         ` Max Nikulin
@ 2022-01-31  7:58         ` Daniel Kraus
  2022-02-02 15:58           ` Max Nikulin
  2022-06-11  7:45           ` Ihor Radchenko
  2022-09-25  3:10         ` Bastien
  2 siblings, 2 replies; 21+ messages in thread
From: Daniel Kraus @ 2022-01-31  7:58 UTC (permalink / raw)
  To: emacs-orgmode

Hi,

just wanted to bump this thread and ask if I can do anything
to move this forward?
I'm using it since a few month and works for me.

Thanks,
  Daniel

Daniel Kraus <daniel@kraus.my> writes:

> Thanks, now I got it :)
>
> Attached is the patch changed the logic to use a temp file with org-babel-eval.
> Somehow it doesn't feel too great to create unnecessary temp files
> but I looked how other babel backends do it and e.g. ob-js and ob-haskell
> use the same logic.
>>
> From cc9a24fcc42756cc76d59697bddc94a4ee2c475d Mon Sep 17 00:00:00 2001
> From: Daniel Kraus <daniel@kraus.my>
> Date: Sat, 13 Nov 2021 22:51:56 +0100
> Subject: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
>
> * lisp/ob-clojure.el: Add support for babashka and nbb backend.
> ---
> [...]


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-01-31  7:58         ` Daniel Kraus
@ 2022-02-02 15:58           ` Max Nikulin
  2022-06-11  7:45           ` Ihor Radchenko
  1 sibling, 0 replies; 21+ messages in thread
From: Max Nikulin @ 2022-02-02 15:58 UTC (permalink / raw)
  To: emacs-orgmode

On 31/01/2022 14:58, Daniel Kraus wrote:
> 
> just wanted to bump this thread and ask if I can do anything
> to move this forward?

Your patch is tracked at https://updates.orgmode.org/ , so do not worry 
too much (look at the list of pending patches). Bunch of commits may 
happen before next major release.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-01-31  7:58         ` Daniel Kraus
  2022-02-02 15:58           ` Max Nikulin
@ 2022-06-11  7:45           ` Ihor Radchenko
  1 sibling, 0 replies; 21+ messages in thread
From: Ihor Radchenko @ 2022-06-11  7:45 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-orgmode

Daniel Kraus <daniel@kraus.my> writes:

> just wanted to bump this thread and ask if I can do anything
> to move this forward?
> I'm using it since a few month and works for me.

Sorry for the late reply.

I am not familiar at all with clojure, so it is hard for me to test the
patch. It would help if you also provide the tests in
testing/lisp/test-ob-clojure.el to check the added functionality.

Best,
Ihor


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2021-11-15 16:05       ` Daniel Kraus
  2021-11-17 16:12         ` Max Nikulin
  2022-01-31  7:58         ` Daniel Kraus
@ 2022-09-25  3:10         ` Bastien
  2022-09-25 13:37           ` Christopher M. Miles
                             ` (3 more replies)
  2 siblings, 4 replies; 21+ messages in thread
From: Bastien @ 2022-09-25  3:10 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-orgmode

Hi Daniel,

Daniel Kraus <daniel@kraus.my> writes:

> Attached is the patch changed the logic to use a temp file with
> org-babel-eval.

Applied in main as 764642f5, thanks a lot and sorry for the delay.

I also added you to https://orgmode.org/worg/contributors.html.

Would you consider taking over the maintainance of ob-clojure.el?

-- 
 Bastien


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-09-25  3:10         ` Bastien
@ 2022-09-25 13:37           ` Christopher M. Miles
  2022-09-25 13:43           ` Christopher M. Miles
                             ` (2 subsequent siblings)
  3 siblings, 0 replies; 21+ messages in thread
From: Christopher M. Miles @ 2022-09-25 13:37 UTC (permalink / raw)
  To: Bastien; +Cc: Daniel Kraus, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1204 bytes --]


Bastien <bzg@gnu.org> writes:

> Hi Daniel,
>
> Daniel Kraus <daniel@kraus.my> writes:
>
>> Attached is the patch changed the logic to use a temp file with
>> org-babel-eval.
>
> Applied in main as 764642f5, thanks a lot and sorry for the delay.
>
> I also added you to https://orgmode.org/worg/contributors.html.
>

Thanks, Bastien.

> Would you consider taking over the maintainance of ob-clojure.el?

Thanks for invitation, I already maintained many org-mode related
libraries. Even though clojure is my favourite programming language, But
I'm not familiar with CIDER and other Clojure tools interaction. So
currently I'm not confident to maintain ob-clojure.el. But I think I
might be able to do this in future someday. (If someone already
maintained, I still can contribute)

BTW, I have a question, If someone maintain the ob-clojure.el, does this
library need to be separated out org-mode repository?

-- 

[ stardiviner ]
I try to make every word tell the meaning that I want to express without misunderstanding.

Blog: https://stardiviner.github.io/
IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-09-25  3:10         ` Bastien
  2022-09-25 13:37           ` Christopher M. Miles
@ 2022-09-25 13:43           ` Christopher M. Miles
       [not found]           ` <20969.6847757854$1664113375@news.gmane.org>
  2022-09-26 16:02           ` Daniel Kraus
  3 siblings, 0 replies; 21+ messages in thread
From: Christopher M. Miles @ 2022-09-25 13:43 UTC (permalink / raw)
  To: Bastien; +Cc: Daniel Kraus, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 707 bytes --]


Bastien <bzg@gnu.org> writes:

> Hi Daniel,
>
> Daniel Kraus <daniel@kraus.my> writes:
>
>> Attached is the patch changed the logic to use a temp file with
>> org-babel-eval.
>
> Applied in main as 764642f5, thanks a lot and sorry for the delay.
>
> I also added you to https://orgmode.org/worg/contributors.html.
>
> Would you consider taking over the maintainance of ob-clojure.el?

Sorry, replied to wrong thread. Haha

-- 

[ stardiviner ]
I try to make every word tell the meaning that I want to express without misunderstanding.

Blog: https://stardiviner.github.io/
IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
       [not found]           ` <20969.6847757854$1664113375@news.gmane.org>
@ 2022-09-25 13:48             ` Bastien
  0 siblings, 0 replies; 21+ messages in thread
From: Bastien @ 2022-09-25 13:48 UTC (permalink / raw)
  To: Christopher M. Miles; +Cc: Daniel Kraus, emacs-orgmode

Hi Christopher,

"Christopher M. Miles" <numbchild@gmail.com> writes:

> Thanks, Bastien.

(I know you sent a patch and I'll review it, no worry!)

>> Would you consider taking over the maintainance of ob-clojure.el?
>
> Thanks for invitation, I already maintained many org-mode related
> libraries. Even though clojure is my favourite programming language, But
> I'm not familiar with CIDER and other Clojure tools interaction. So
> currently I'm not confident to maintain ob-clojure.el. But I think I
> might be able to do this in future someday. (If someone already
> maintained, I still can contribute)

Actually the invitation was for Daniel as I recalled you declined it
already (correct me if I'm wrong!).  Of course, we can have several
maintainers.

> BTW, I have a question, If someone maintain the ob-clojure.el, does this
> library need to be separated out org-mode repository?

No: we have many lisp/*el files with a specific maintainer.

These maintainers of Org's cor handle bug fixes against the files they
are maintaining and can be cc'ed on the list when discussing features.

The burden is general quite low, it's just a guarantee that someone is
in charge and can alleviate the workload of core maintainers.

All best,

-- 
 Bastien


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-09-25  3:10         ` Bastien
                             ` (2 preceding siblings ...)
       [not found]           ` <20969.6847757854$1664113375@news.gmane.org>
@ 2022-09-26 16:02           ` Daniel Kraus
  2022-09-27  2:31             ` Ihor Radchenko
  2022-09-27 19:39             ` Bastien
  3 siblings, 2 replies; 21+ messages in thread
From: Daniel Kraus @ 2022-09-26 16:02 UTC (permalink / raw)
  To: Bastien; +Cc: emacs-orgmode

Hi!

Bastien <bzg@gnu.org> writes:

> Applied in main as 764642f5, thanks a lot and sorry for the delay.
>
> I also added you to https://orgmode.org/worg/contributors.html.

Thank you very much :)

> Would you consider taking over the maintainance of ob-clojure.el?

I think I would. What does this exactly entail?
Should I subscribe to https://updates.orgmode.org/ or something?
Is there a backlog if issues to go through and try to resolve?

Cheers,
  Daniel


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-09-26 16:02           ` Daniel Kraus
@ 2022-09-27  2:31             ` Ihor Radchenko
  2022-09-27 19:39             ` Bastien
  1 sibling, 0 replies; 21+ messages in thread
From: Ihor Radchenko @ 2022-09-27  2:31 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: Bastien, emacs-orgmode

Daniel Kraus <daniel@kraus.my> writes:

>> Would you consider taking over the maintainance of ob-clojure.el?
>
> I think I would. What does this exactly entail?
> Should I subscribe to https://updates.orgmode.org/ or something?

We have some info in https://orgmode.org/worg/org-maintenance.html#org37c7d5d

Ideally, you can subscribe to Org mailing list and participate in the
relevant discussions. Most importantly, when people propose new patches
and report bugs related to ob-clojure.el.

If you time does not permit following the mailing list closely, do note
that we may CC you in emails when we need your attention wrt specific
discussions.

Since you are interested in maintaining a specific programming language
backend, it would be best if you can help with confirming bugs. It is
hard for the core maintainers to test all the possible supported
programming languages. (I don't even have clojure installed on my
machine).

Finally, and optionally, you can also contribute new features to the
maintained file, contribute to the ob-clojure documentation at
https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-clojure.html
(see WORG repo at https://sr.ht/~bzg/org/), and possibly write tests in
tests/lisp/test-ob-clojure.el

> Is there a backlog if issues to go through and try to resolve?

I recall a couple of proposed patches and bug reports.
Let me quickly pull them out of my todo list...

https://orgmode.org/list/PAXPR08MB6640FA07D8236D848005BB84A3949@PAXPR08MB6640.eurprd08.prod.outlook.com
https://list.orgmode.org/orgmode/m2lewez8zh.fsf@numbchild@gmail.com/
https://orgmode.org/list/CAGtWEAdoDwkM8s217uFXzXW0ZPyCVO45khGQ13LwGYVZ6V96Gw@mail.gmail.com
https://orgmode.org/list/m2v9jp40ry.fsf@gmail.com


-- 
Ihor Radchenko,
Org mode contributor,
Learn more about Org mode at https://orgmode.org/.
Support Org development at https://liberapay.com/org-mode,
or support my work at https://liberapay.com/yantar92


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ob-clojure.el: Add support for babashka and nbb backend
  2022-09-26 16:02           ` Daniel Kraus
  2022-09-27  2:31             ` Ihor Radchenko
@ 2022-09-27 19:39             ` Bastien
  2022-09-28  1:16               ` [WORG] Document in more detail about what maintainers do? (was: [PATCH] ob-clojure.el: Add support for babashka and nbb backend) Ihor Radchenko
  1 sibling, 1 reply; 21+ messages in thread
From: Bastien @ 2022-09-27 19:39 UTC (permalink / raw)
  To: Daniel Kraus; +Cc: emacs-orgmode

Hi Daniel,

thanks for volunteering!  I added you as the ob-clojure.el maintainer
on the main branch (commit 1c7acb427).

Replying to emails when we CC you should be enough, but more help is
always welcome, of course.

Also, please create an account on https://savannah.gnu.org/git/ and
ask to join the Emacs group: https://savannah.gnu.org/git/?group=emacs

An Emacs maintainer will give you write access so that you can push
commits for ob-clojure.el directly.

When in doubt, just ask the mailing list :)

Cheers,

-- 
 Bastien


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [WORG] Document in more detail about what maintainers do? (was: [PATCH] ob-clojure.el: Add support for babashka and nbb backend)
  2022-09-27 19:39             ` Bastien
@ 2022-09-28  1:16               ` Ihor Radchenko
  2022-09-28  6:56                 ` [WORG] Document in more detail about what maintainers do? Bastien
  0 siblings, 1 reply; 21+ messages in thread
From: Ihor Radchenko @ 2022-09-28  1:16 UTC (permalink / raw)
  To: Bastien; +Cc: Daniel Kraus, emacs-orgmode

Bastien <bzg@gnu.org> writes:

> Replying to emails when we CC you should be enough, but more help is
> always welcome, of course.
>
> Also, please create an account on https://savannah.gnu.org/git/ and
> ask to join the Emacs group: https://savannah.gnu.org/git/?group=emacs
>
> An Emacs maintainer will give you write access so that you can push
> commits for ob-clojure.el directly.
>
> When in doubt, just ask the mailing list :)

I think the part about CC is missing in
https://orgmode.org/worg/org-maintenance.html#orga0c76fb

Should we give more details there?

Also, I find it important to take note about worg documentation for
built-in babel backends. I did not even know it exist for a long time.

WDYT?

-- 
Ihor Radchenko,
Org mode contributor,
Learn more about Org mode at https://orgmode.org/.
Support Org development at https://liberapay.com/org-mode,
or support my work at https://liberapay.com/yantar92


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [WORG] Document in more detail about what maintainers do?
  2022-09-28  1:16               ` [WORG] Document in more detail about what maintainers do? (was: [PATCH] ob-clojure.el: Add support for babashka and nbb backend) Ihor Radchenko
@ 2022-09-28  6:56                 ` Bastien
  2022-09-29  7:06                   ` Ihor Radchenko
  0 siblings, 1 reply; 21+ messages in thread
From: Bastien @ 2022-09-28  6:56 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Daniel Kraus, emacs-orgmode

Ihor Radchenko <yantar92@gmail.com> writes:

> I think the part about CC is missing in
> https://orgmode.org/worg/org-maintenance.html#orga0c76fb

Indeed - can you add it?

Also, I'd more comfortable if org-maintenance.org would use stable
anchors (not #orga0c76fb).

> Also, I find it important to take note about worg documentation for
> built-in babel backends. I did not even know it exist for a long time.
>
> WDYT?

+1 -- and also suggest adding tests, a part that I missed.

-- 
 Bastien


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [WORG] Document in more detail about what maintainers do?
  2022-09-28  6:56                 ` [WORG] Document in more detail about what maintainers do? Bastien
@ 2022-09-29  7:06                   ` Ihor Radchenko
  0 siblings, 0 replies; 21+ messages in thread
From: Ihor Radchenko @ 2022-09-29  7:06 UTC (permalink / raw)
  To: Bastien; +Cc: Daniel Kraus, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 634 bytes --]

Bastien <bzg@gnu.org> writes:

> Ihor Radchenko <yantar92@gmail.com> writes:
>
>> I think the part about CC is missing in
>> https://orgmode.org/worg/org-maintenance.html#orga0c76fb
>
> Indeed - can you add it?

>> Also, I find it important to take note about worg documentation for
>> built-in babel backends. I did not even know it exist for a long time.
>>
>> WDYT?
>
> +1 -- and also suggest adding tests, a part that I missed.

See the attached.

> Also, I'd more comfortable if org-maintenance.org would use stable
> anchors (not #orga0c76fb).

Done.
https://git.sr.ht/~bzg/worg/commit/b8c2bac21995747fa0c2f98d7b8e9dd7eaa30741


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-org-maintenance.org-Add-details-about-the-maintainer.patch --]
[-- Type: text/x-patch, Size: 3632 bytes --]

From 23d5ffc8d1bb065cb98dc7f7eb1464575e41c9ad Mon Sep 17 00:00:00 2001
Message-Id: <23d5ffc8d1bb065cb98dc7f7eb1464575e41c9ad.1664435121.git.yantar92@gmail.com>
From: Ihor Radchenko <yantar92@gmail.com>
Date: Thu, 29 Sep 2022 15:03:48 +0800
Subject: [PATCH] org-maintenance.org: Add details about the maintainer duties

* org-maintenance.org (What is the role of a maintainer?): Add details
about CCing from the list, maintaining tests, and updating babel
docs.  Rewrite referring to the reader personally in all the places.
---
 org-maintenance.org | 36 ++++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

diff --git a/org-maintenance.org b/org-maintenance.org
index 812cfbce..f5cc70eb 100644
--- a/org-maintenance.org
+++ b/org-maintenance.org
@@ -70,21 +70,33 @@ * What is the role of a maintainer?
 :END:
 
 If you speak [[https://learnxinyminutes.com/docs/elisp/][Emacs lisp]] and are a regular user of an Org file, please
-consider becoming a maintainer for it: you can simply ask on the list.
+consider becoming a maintainer for it: you can simply ask on the [[https://orgmode.org/worg/org-mailing-list.html][list]].
 
-The maintainer does not need to be an expert of the functionality in
-the file or to actively improve the file.  He or she takes care of bug
-reports and feature requests against this file by participating to the
-discussion on the list.
+You do not need to be an expert of the functionality in the file or to
+actively improve the file.  Just take care of bug reports and feature
+requests against this file by participating to the discussion on the
+[[https://orgmode.org/worg/org-mailing-list.html][list]].
 
-Org maintainers need to join [[https://savannah.gnu.org/git/?group=emacs][the Emacs group on Savannah]].  When this
-is done, they have access to the [[https://git.savannah.gnu.org/cgit/emacs/org-mode.git/][org-mode.git]] repository and can push
-changes without asking for permission first.  If the change is a new
-feature, they should discuss it on the list first.  
+You are not strictly required to follow the mailing list closely and
+watch for the relevant emails.  When necessary, the relevant messages
+will be directly forwarded to your email.
 
-In case the change touches files maintained by other maintainers, they
-need to review and validate it first.  If Org's maintainer disagrees
-with a change, he can ask a maintainer to revert it.
+As a maintainer, you will need to join [[https://savannah.gnu.org/git/?group=emacs][the Emacs group on Savannah]].
+When this is done, you will have access to the [[https://git.savannah.gnu.org/cgit/emacs/org-mode.git/][org-mode.git]] repository
+and will be able to push changes without asking for permission first.
+If your change is a new feature, discuss it on the [[https://orgmode.org/worg/org-mailing-list.html][list]] first.
+
+In case the change touches files maintained by other maintainers, ask
+them to review and validate it first.  If Org's maintainer disagrees
+with a change, he can ask you to revert it.
+
+When possible, please accompany bug fixes and new features with tests.
+The Org test infrastructure is detailed in [[https://git.savannah.gnu.org/cgit/emacs/org-mode.git/tree/testing/README][testing/README]] file in the
+Org repository.
+
+If you are the maintainer of one of the babel language backends,
+please make sure that the [[https://orgmode.org/worg/org-contrib/babel/languages/index.html][language documentation in WORG]] is
+up-to-date.
 
 See also this steps for [[https://orgmode.org/worg/org-contribute.html#devs][your first commit as a]] maintainer.
 
-- 
2.35.1


[-- Attachment #3: Type: text/plain, Size: 207 bytes --]



-- 
Ihor Radchenko,
Org mode contributor,
Learn more about Org mode at https://orgmode.org/.
Support Org development at https://liberapay.com/org-mode,
or support my work at https://liberapay.com/yantar92

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-09-29  7:29 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-14 15:28 [PATCH] ob-clojure.el: Add support for babashka and nbb backend Daniel Kraus
2021-11-14 16:25 ` Max Nikulin
2021-11-14 16:30   ` Daniel Kraus
2021-11-15 14:33     ` Max Nikulin
2021-11-15 16:05       ` Daniel Kraus
2021-11-17 16:12         ` Max Nikulin
2021-11-20 10:18           ` Daniel Kraus
2021-12-22 22:34             ` Daniel Kraus
2022-01-31  7:58         ` Daniel Kraus
2022-02-02 15:58           ` Max Nikulin
2022-06-11  7:45           ` Ihor Radchenko
2022-09-25  3:10         ` Bastien
2022-09-25 13:37           ` Christopher M. Miles
2022-09-25 13:43           ` Christopher M. Miles
     [not found]           ` <20969.6847757854$1664113375@news.gmane.org>
2022-09-25 13:48             ` Bastien
2022-09-26 16:02           ` Daniel Kraus
2022-09-27  2:31             ` Ihor Radchenko
2022-09-27 19:39             ` Bastien
2022-09-28  1:16               ` [WORG] Document in more detail about what maintainers do? (was: [PATCH] ob-clojure.el: Add support for babashka and nbb backend) Ihor Radchenko
2022-09-28  6:56                 ` [WORG] Document in more detail about what maintainers do? Bastien
2022-09-29  7:06                   ` Ihor Radchenko

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.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).