Debugging meTypeset using a git filesystem

Originally published on eve.gd on 27 February 2014, last updated 6 September 2026.

Read this post on the web (with images, PDF and citation details)

Debugging a text-based transcoder

meTypeset is, in essence, a transcoder for text. While “transcode” is usually used in a multimedia context, we are transcoding from one XML specification (Microsoft's OOXML) to another (JATS XML). This involves several stages of action:

There is potential for unexpected results at every stage of this process.

Enter git debug filesystem

While it is possible, when developing, to step through most of the processes, because we have multiple portions of the transform handled by different technologies, it is often difficult to pinpoint the stage at which something went wrong. For instance: if the NLM isn't right, was the TEI right? If the TEI isn't right, was it right before we put it through python (and which module messed it up?)

To solve this, when meTypeset is passed the debug flag (“-d” or “--debug”) it will now initialize all of its output directories as git repositories and regularly commit after each module has performed its transforms, thereby providing an easy way of logging in any environment (and cloning the output to another machine). As a self-contained filesystem, git is ideal for this kind of work. It adds very little overhead (either in terms of space or processing time) and makes life a lot easier in this kind of debug work. You can see the implementation of this in GitPython in the dev branch of the project.

Cite this article

Please include the DOI in your citation: http://dx.doi.org/10.6084/m9.figshare.946260

You can view this post's XML with lens.

http://dx.doi.org/10.6084/m9.figshare.946260
view this post's XML with lens

References

This reference list has been generated, in many cases, through an automated process and may therefore contain errors or incomplete metadata. It is provided purely as assistance for finding the items mentioned within this post.

1. Eve, Martin Paul, Debugging meTypeset using a git filesystem, figshare, 2014 <https://doi.org/10.6084/m9.figshare.946260>

https://doi.org/10.6084/m9.figshare.946260

Martin Paul Eve

Professor of Literature, Technology and Publishing

Getting Around

Short thoughts /thoughts
Today I learned /til
What I’m up to /now
CV /cv (PDF)
Accounts /accounts

Share This Post

https://bsky.app/intent/compose?text=Debugging+meTypeset+using+a+git+filesystem+https://eve.gd/2014/02/27/debugging-metypeset-using-a-git-filesystem/
https://www.facebook.com/sharer/sharer.php?u=https://eve.gd/2014/02/27/debugging-metypeset-using-a-git-filesystem/

Related Posts

On automatically detecting parenthetical citations
CaSSius now supports full headless PDF creation from JATS XML
Object Thinking, Systems Description Languages and the Future of the Book

Short thought

/thoughts

/thoughts

Janeway is pleased to announce a new collaboration with PLOS to develop and extend the Janeway codebase for use in parts of PLOS’s article submission process https://www.openlibhums.org/news/1025/

We've gone from Andy and me coding Janeway by hand, in those pre-AI days, over a weekend or so, to Janeway, a solid structure for OA journal publication workflows. Now being used and developed by a major scientific publisher.

I never had aspirations for it like this. I just wanted it to do what we needed it to do. If there is a cool way for other organisations to make it do what they need, too, so long as it does not violate our ethical principles, then that is fantastic.

https://www.openlibhums.org/news/1025/

14 October 2026, 11:27

14 October 2026, 11:27

Listening

Fluke
Future Bones
Tina Turner
Rich Lane
Faff

Scrobbled on Last.fm

Scrobbled on Last.fm