Skip to content

Conversation

thewtex
Copy link
Member

@thewtex thewtex commented Sep 15, 2025

This pull request updates the Insight Journal Article Template to adopt MyST Markdown as the primary authoring format, implements reproducible dependency management with Pixi, adds support for MECA output for standardized journal submission, and introduces integrated source code testing and validation workflows.

Transition to MyST Markdown

The template now leverages MyST Markdown for manuscript drafting—enabling rich scientific writing with support for figures, equations, citations, and cross-references. MyST bridges the simplicity of Markdown with features needed for scholarly publishing, supporting outputs in HTML, PDF, DOCX, and LaTeX formats without sacrificing authoring flexibility.

Advantages of MyST Markdown

  • Modern scientific markup: Express equations, literature citations, and structured content in straightforward Markdown.
  • Enhanced reproducibility: Seamlessly integrates code snippets and data references.
  • Flexible export: Generate multiple publication formats including interactive HTML and print-ready PDF.

Reproducible Dependency Management with Pixi

Dependency management and build automation now use Pixi. Pixi environments ensure that all contributors share the same set of tools and libraries, supporting completely reproducible builds—from manuscript generation to source code compilation and testing.

Key benefits:

  • Declarative, locked environments prevent "works on my machine" discrepancies.
  • Simple onboarding: Install Pixi and run standard build/test tasks immediately.
  • Smooth handling of mixed-language projects, including C++ (ITK/CMake) integration.

Standardized MECA Output

The build system adds direct support for producing MECA (Manuscript Exchange Common Approach) archives—a standardized packaging format recognized by scientific journals. MECA output includes all necessary manuscript content, figures, code, and supporting data, streamlining the submission process.

Integrated Source Code Testing and Validation

The template contains a dedicated workflow for managing and testing source code (e.g., ITK-based C++ examples) alongside the manuscript. Features include:

  • Task automation to clone, configure, build, and test code with a single command.
  • Reproducible C++ environment for consistent compilation and validation outcomes.
  • Automated journal submission bundles code and results for review and reproducibility checks.

This overhaul empowers scientific authors to rapidly create, test, and submit Insight Journal manuscripts with robust reproducibility and modern open science standards.

thewtex and others added 16 commits July 14, 2025 14:20
We have README.md
Support

  pixi run build

as a default that works without a LaTeX distribution.
Fewer, common targets for `build`.

Rename build-paper to build-pdf and only include the PDF build targets.
Update CMakeLists.txt.

Update manuscript tasks and their names.
These have now been replaced.
Verify the submitted article bundle can be reproduced.
Fixed in upstream mystmd 1.6.1.
Update and fix versions of the actions used and runners.

Replace build-complete with build-meca and other pixi tasks.

The MECA build target now targets the reproducible MECA zip with built
PDFs, JATS XML, source code and data.
Copy link
Member

@jhlegarreta jhlegarreta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matt, Pablo, this is incredibly nice 💯 !! Thanks both for having worked on this.

I have not tested it locally, but I trust it works.

One small comment before approving: should Python wrapping and/or code (e.g. examples) be considered somehow ?

@thewtex
Copy link
Member Author

thewtex commented Sep 26, 2025

@jhlegarreta thanks for the review!

should Python wrapping and/or code (e.g. examples) be considered somehow

Yes, in future iterations we should integrate a version of this into the ITKModuleTemplate.

This is intended as a starting point for a submission that does not necessarily extend or rely on ITK even though it is used in a sample.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants