Lepton

Lepton: An automaton for Literate Executable Papers - Published in JOSS (2019)

https://github.com/slithiaote/lepton

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
    1 of 4 committers (25.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation

Repository

lepton is a automaton for literate executable papers

Basic Info
  • Host: GitHub
  • Owner: slithiaote
  • Language: OCaml
  • Default Branch: main
  • Size: 3.53 MB
Statistics
  • Stars: 2
  • Watchers: 0
  • Forks: 2
  • Open Issues: 0
  • Releases: 3
Created over 7 years ago · Last pushed almost 3 years ago
Metadata Files
Readme

README.md


title: 'Lepton: An automaton for Literate Executable Papers' tags: - Ocaml - literate programming - reproducible research authors: - name: Sébastien Li-Thiao-Té orcid: 0000-0002-4977-4969 affiliation: "1" affiliations: - name: Université Paris 13, Sorbonne Paris Cité, LAGA, CNRS UMR 7539 index: 1 date: 12 July 2018

bibliography: biblio_lepton.bib

Summary

Source code is very hard to maintain when the documentation is missing. Recognizing this fact, D. Knuth [@Knuth84literateprogramming] proposed the literate programming paradigm, i.e. that source code and documentation should be written at the same time, inside the same file, and in a format designed for human understanding.

''Lepton'' adds documents such as data analysis reports and scientific papers to this vision. To enable reproducible research, ''Lepton'' makes it easy to include scripts or complete programs, compilation and execution instructions, as well as execution results in the same file. Offloading execution to ''Lepton'' makes the analysis operator-independent and easy to reproduce. In the spirit of literate programming, the plain text file format used by ''Lepton'' is intended to be human-understandable as opposed to machine-readable, and simple enough to be usable without the software.

''Lepton'' consists in a standalone executable that processes plain text files written in a documentation format such as HTML or LaTeX with optional blocks that can contain files to be written to disk, source code or executable instructions. It is distributed as a ''Lepton'' file containing the full source code, manual and a tutorial. The package contains an extracted copy of the source code that can be compiled without ''Lepton''.

Documentation

  • lepton_manual.pdf contains usage instructions
  • lepton.pdf contains the implementation details.

Installation

The root directory contains all the necessary files for using Lepton: - The lepton.bin executable can be compiled with the included make.sh script. - The lepton.sty file is useful for producing files in LaTeX together with code highlighting with the Pygments library. The lepton.bib file contains references in BibTeX format.

Requirements - OCaml > 4.0

Examples

Three examples are provided : - hello.nw is a minimal working example showing how to embed OCaml source code and execute it. It requires only LaTeX and OCaml. See Section 1 of lepton_manual.pdf for details. - fibonacci.nw is an example of a scientific report comparing several implementations of the Fibonacci sequence and their running times. The corresponding rendered PDF fibonacci.pdf contains instructions on how to execute it. It has the same requirements as "Boostrapping". - lepton.nw is the source file used for the source code and the documentation of Lepton. Executing this example will regenerate both the binary executable and the PDF documentation. The process is described in the "Bootstrapping" section of this document and in lepton.pdf.

Bootstrapping

All the provide files can be re-generated from the file lepton.nw in the bootstrap directory. This will produce a new executable, extract copies of the source files. Continuous Integration is defined in .gitlab-ci.yml and run on PLMLab

Requirements - LaTeX - Pygments for syntax highlighting and the minted LaTeX package

Steps : - rename the executable, e.g. mv lepton.bin lepton. (the next command will run make.sh and attempt to overwrite lepton.bin) - process the main source file with Lepton ./lepton lepton.nw -o lepton.tex - (optional) compile the re-generated documentation with LaTeX

xelatex -shell-escape -8bit lepton.tex bibtex lepton.aux xelatex -shell-escape -8bit lepton.tex xelatex -shell-escape -8bit lepton.tex # LaTeX needs to execute twice to resolve references

Contributing

If you wish to report bugs, please use the issue tracker at Github. If you would like to contribute to Lepton, just open an issue or a merge request.

Docker images

We use the following Docker images in this project - ocamlpro/ocaml:4.14 : Alpine Linux with OCaml, just enough for compiling lepton - lepton + python : for testing the markdown formatter and python chunks - lepton + debian + latex : for producing PDF documentation

Owner

  • Login: slithiaote
  • Kind: user

JOSS Publication

Lepton: An automaton for Literate Executable Papers
Published
October 24, 2019
Volume 4, Issue 42, Page 1005
Authors
Sébastien Li-Thiao-Té ORCID
Université Paris 13, Sorbonne Paris Cité, LAGA, CNRS UMR 7539
Editor
Kyle Niemeyer ORCID
Tags
Ocaml literate programming reproducible research

GitHub Events

Total
Last Year

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 31
  • Total Committers: 4
  • Avg Commits per committer: 7.75
  • Development Distribution Score (DDS): 0.129
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Sébastien Li-Thiao-Té l****o@m****r 27
Yo Yehudi y****h@g****m 2
Kyle Niemeyer k****r@g****m 1
Arfon Smith a****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 5
  • Average time to close issues: about 2 years
  • Average time to close pull requests: 3 months
  • Total issue authors: 1
  • Total pull request authors: 5
  • Average comments per issue: 11.0
  • Average comments per pull request: 0.4
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tpetricek (1)
Pull Request Authors
  • arfon (1)
  • Kevin-Mattheus-Moerman (1)
  • kyleniemeyer (1)
  • yochannah (1)
  • slithiaote (1)
Top Labels
Issue Labels
Pull Request Labels