Release v1.2.0.0
This release comes with a massive rewrite of the server-client infrastructure, so the code behind the API to download and list packages from our public data archives.
The server is now implemented as a (hidden) subcommand of trident: serve
. It returns helpful error messages, if an incompatible version of trident tries to connect to it. And it is now capable of serving multiple (so not just the latest, but also older) versions of one package, which is an important step towards computational reproducibility of Poseidon-based pipelines.
All Server-APIs except for zip_file
now return a complex JSON datatype with server messages and a payload. The messages contain standard messages like a greeting and in the future perhaps also deprecation warnings. Some APIs also provide information or warnings in the server messages.
All APIs except for zip_file
also accept an additional parameter ?client_version=X.X.X
, so that the server may in the future respond to old clients that an update is needed in order to understand the API. Our trident list --remote
functionality already makes use of this.
Here are the individual APIs:
https://server.poseidon-adna.org/packages
: returns a list of all packages.https://server.poseidon-adna.org/groups
: returns a list of all groups.https://server.poseidon-adna.org/individuals
: returns a list of all individuals.https://server.poseidon-adna.org/zip_file/<package_name>?package_version=1.0.1
: returns a zip file of the package with the given name and the given version. If no version is given, it returns the latest.
The client subcommands fetch
and list
can not yet make full use of this new API in this release, because they lack an interface to request specific package versions. This will be added in a future release. But the output of both subcommands already differs from the previous implementation:
fetch
now appends the package version to the directory name when downloading a package. Previouslytrident fetch -d . -f "*2010_RasmussenNature*"
yielded a directory named2010_RasmussenNature
with the package data, but now it creates2010_RasmussenNature-2.0.1
(or whatever is the latest version of this package in the archive).fetch
does no longer have an option--upgrade
, since the new behaviour respects different versions to live side by side in different directories. If users whish to remove old versions, they should do so manually.list
lists not just data (package, groups, individuals) for the latest version of a package, but for all versions. The package version became an explicit output column.
As before, forge
and the other subcommands keep ignoring multiple package versions for now, and only read the latest.
The new server is available at a new URL (https://server.poseidon-adna.org), but the old version at (https://c107-224.cloud.gwdg.de) will also keep running for now. New releases of trident (v1.2.0.0+) will by default use the new server, while older versions must connect to the old one.