poseidon-framework / poseidon-hs

A toolset to work with modular genotype databases in the Poseidon format
https://poseidon-framework.github.io/#/trident
MIT License
7 stars 2 forks source link

Make `update` more modular #249

Closed nevrome closed 1 year ago

nevrome commented 1 year ago

I think it would be very useful to be able to control the behavior of trident update more precisely. The idea is a bit similar to #248.

At the moment update is a catch-all procedure where the user can exclude certain steps (with --noChecksumUpdate or --ignoreGeno). I think we should turn this around and make it opt-in. Each aspect of a package that should be updated should also be named explicitly in the call to trident update.

That may translate to an interface like this:

trident update (-d|--baseDir DIR)
    [--poseidonVersion ARG] # this is already opt-in
    [(--packageVersion ARG) (--changelog ARG)]
    [--checksumGeno] [--checksumJanno] [--checksumSSF] [--checksumBIB] [--checksumAll]
    [--newContributor ARG]
    ...

This rewrite should be paired with a rename as proposed in #164.

stschiff commented 1 year ago

I do like the opt-in idea.

Regarding the renaming, do you mean that we then should not have an update command anymore? This might alienate some users, might it not?

nevrome commented 1 year ago

We should probably discuss the renaming in #164. But yes, I think we should remove the update command. The name promises something the command can not keep. I don't think this will be a problem for many users. It's pretty obscure. And if we refactor the interface as suggested, then a new name will, in my opinion, actually help to avoid confusion.

stschiff commented 1 year ago

OK, I'm on board.