thetisproject / thetis

Finite element flow solver for simulating coastal and estuarine flows.
Other
70 stars 28 forks source link

Zenodo Release of Thetis #165

Open mc4117 opened 5 years ago

mc4117 commented 5 years ago

Currently releasing a version of Thetis through zenodo is a manual process. It would be nice if this could be done automatically, the same way as already occurs using firedrake-zenodo with firedrake.

tkarna commented 3 years ago

As thetis is a single repository, making a manual zenodo release is quite straightforward. With firedrake this is more involved as you need to bundle up all the firedrake components, so having a dedicated firedrake-zenodo utility makes sense.

However, in order to have a functional thetis release, the full firedrake software stack should be included as well. So I think the right way would be to install thetis with firedrake-install and then make a release with firedrake-zenodo which would store thetis sources as well (currently it does not include thetis).

wence- commented 3 years ago

However, in order to have a functional thetis release, the full firedrake software stack should be included as well. So I think the right way would be to install thetis with firedrake-install and then make a release with firedrake-zenodo which would store thetis sources as well (currently it does not include thetis).

To do this, we could add an option to firedrake-zenodo that automatically builds a thetis release and links it all together (this is not difficult). I think we don't always want to release thetis when cutting a firedrake release (just because we have thetis installed doesn't necessarily mean that we want a thetis release).

So we'd support

firedrake-zenodo --with-thetis OPTIONAL_HASH

And then it's just a matter of the person running the release having the necessary oauth scope to make thetis releases.

tkarna commented 3 years ago

Yeah, that sounds like a good solution.

tkarna commented 3 years ago

@wence- How much work would it be to get thetis included in firedrake-zenodo? I think this would be the best solution in the long run.

tkarna commented 3 years ago

Here's and example Firedrake/Thetis bundle that I'd need:

{
    "firedrake": "6325260b65533c944c5d81d3c5c9f2767147df31",
    "PyOP2": "93d6ea5c47db5b85ae21ee48d2ff3e619eba5f21",
    "tsfc": "d961ab4834d00cc17467a97829750552a1b25324",
    "COFFEE": "72a4464aa18fd408de5304ac467db18d7af2b670",
    "ufl": "e50f7c7da0e89c3eda9b35be48bc5e99808c8b4d",
    "FInAT": "2f0e0bd61fd5800920ed66a2c3347d4d916c0045",
    "fiat": "a8c4d489da0d783921e2e9e261e43717b8a28882",
    "petsc": "905158c6f9a6776daf927fe3564cfe0f0afe9e21",
    "petsc4py": "8d31d1a339b1ea14fd5273d4edd608797e3aefc5",
    "loopy": "92526c8df50d6a276a0e1f30ea7be4c2e052dd52",
    "thetis": "e797de62710fc7fd38cb232a8d78afd6c0f93c61",
    "metarelease_info_file": null,
    "title": "Thetis and Firedrake source code used in publication 'Plume spreading test case for coastal ocean models'"
}