Skip to content

Release v1.2.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Jun 15:15
· 646 commits to master since this release

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. Previously trident fetch -d . -f "*2010_RasmussenNature*" yielded a directory named 2010_RasmussenNature with the package data, but now it creates 2010_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.