Skip to content

Some thoughts #43

@h-2

Description

@h-2

First of all: it's great to have this!

I just looked through this repository and had the following very subjective thoughts. Please see this as constructive criticism :)

There are many things I found surprising to see / have never seen with applications before. This includes most of the test things, but also Doxygen. While the terms might be clear for a library developer, in the context of the APP, they are not clear to me. Does an app have an API? And if yes, isn't this the CLI? Why are tests for the CLI written inside C++? I don't think I have ever seen that before, and I am fairly sure regular app developers have never heard of GMock etc.
Similarly: what does the documentation cover? The interface of the binary or some functions inside the app source code? Why would users of the app be interested in the latter?

Don't get me wrong, I do think that these things might make sense for large applications that have multiple developers and are maintained for a longer period of time. And I also think that it is kind of fancy that one can write app-tests from inside C++ and have coverage checked... I just don't see 90% of this happening in most academic projects or even projects in my company. So for the assumed primary audience, it feels a little over-engineered -> there are a lot of things to understand that are likely not relevant, while those things that are, are not easy to do.

Being an app-developer myself, I am primarily interested in the following:

  • Repository that has SeqAn3 included as submodule and provides a CMakeLists
  • Help with setting up Github CI
  • Predefined make targets to export the command-line description. This is the documentation for the APP. In the context of Github, an export to GFMD would be great, but the exports to man and html that we currently have are also good! make doc-html, make doc-md...
  • An easy test-system where I only need to provide three things per test (CLI arguments, input data, output control data). Ideally, this would be a CMake-macro that takes exactly these three arguments and understands if the URL to the data is a local folder or a http-link with a tarball in which cases it fetches the stuff.
  • Nice-to-have: make update-seqan3 updates the SeqAn3 submodule to the latest stable release and prints the release notes :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions