* 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
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.
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
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.
[-- 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
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.
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
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
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.
> ---
> [...]
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.
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
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
[-- 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 --]
[-- 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 --]
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
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
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
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
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
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
[-- 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
Ihor Radchenko <yantar92@gmail.com> writes: > 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. One month has passed, and I decided to apply the patch as is. https://git.sr.ht/~bzg/worg/commit/6fbe51dee6bf276584c24fa1e7ec673526c9326e Let me know if you have any objections. -- Ihor Radchenko // yantar92, 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>
Hi Ihor,
Ihor Radchenko <yantar92@posteo.net> writes:
> One month has passed, and I decided to apply the patch as is.
> https://git.sr.ht/~bzg/worg/commit/6fbe51dee6bf276584c24fa1e7ec673526c9326e
Thanks!
--
Bastien