CLOSED: [2020-10-01 Thu 21:28] :PROPERTIES: :CREATED: [2020-10-01 Thu 21:19] :ID: 2020-10-01-org-depend-to-edna :END: :LOGBOOK: - State "DONE" from "NEXT" [2020-10-01 Thu 21:28] :END: Frequent readers of this blog know that I'm in the process of switching from [[id:tags-emacs][Emacs]] Org mode [[https://orgmode.org/worg/org-contrib/org-depend.html][org-depend]] to [[https://www.nongnu.org/org-edna-el/][org-edna]] because of the additional functionality offered. I had to convert [[id:2020-03-30-current-org-files][my existing Org files]] because both tools are using the same =TRIGGER= and =BLOCKER= properties but with different syntax. If the other syntax is found, syntax errors are reported since they don't match. Therefore, I wrote [[https://github.com/novoid/orgdepend_to_orgedna][orgdepend_to_orgedna]] which does the job of converting Org files from org-depend to org-edna. Since I don't know Elisp good enough, I wrote it in Python. However, I followed the [[https://en.wikipedia.org/wiki/Test-driven_development][TDD]] approach and used [[http://mypy-lang.org/][static typing]] to ensure a good level of quality. I used it to convert syntax of my personal use-cases with contains only a limited set of org-depend syntax elements. However, in my opinion, those use-cases reflect the most important use-cases for org-depend so there is high chance that your files do not contain non-recognized syntax to convert. Please do read the "Assumptions and Notes" section of [[https://github.com/novoid/orgdepend_to_orgedna/blob/master/README.org][the readme file]]. I also included conversion of Elisp snippets which I'm using within my [[https://github.com/Kungsgeten/yankpad][yankpad]] templates. If you want to see the details of the migration capabilities, you have to look at [[https://github.com/novoid/orgdepend_to_orgedna/blob/master/orgdepend_to_orgedna_test.py][the unit test file]]. If you're also using org-edna, you should check out [[https://github.com/toshism/org-linker-edna][org-linker-edna]] which is a brand new thing that let's you define simple dependencies with minimal effort. Look at me, I've accomplished to write this blog article without writing "org-elpa" as I've done several times in the recent weeks. ;-)