Skip to content

Save software interfaces in multiple formats #2798

@Lestropie

Description

@Lestropie

Have been working a bit on #2678 in order to facilitate #2605 / #2665.

One topic we had discussed in the context of the latter (though I'm not finding a conversation right now to cross-reference) is the prospect of having the Pydra interfaces exported and bundled within the repository itself, such that version-matching between software and the parsing of its interface would be intrinsically linked, and consistency of such could be checked by CI.

While this had initially been discussed for the sake of Pydra, it occurs to me that:

  1. This is quite similar to the generation and self-consistency of the online command documentation for those interfaces.
  2. Pydra is not necessarily the only interface for which encapsulation of interface and enforcement of self-consistency is applicable. Eg.:
    1. __print_full_usage__ has been around forever, even if nothing has come along to really exploit it;
    2. While I never finished it, I did commence export of interfaces for Porcupine.
    3. Interfaces for Nipype could potentially be generated automatically from the internal CLI configuration.
  3. If there are changes or additions to the command-line interface, it might make sense that over and above the code itself, the sensibility of those command-line changes should be checked during code review, and something like the output of __print_full_usage__ would serve that purpose.

Therefore my "proposal" of sorts here is something along the lines of having a directory somewhere within the repository (maybe not within docs/; not sure if there's a good precedent for where to put such things), where the CLI is exported to multiple formats, and checking the self-consistency of all of those is integrated into the CI.

Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions