Deltares / Ribasim

Water resources modeling
https://ribasim.org/
MIT License
39 stars 5 forks source link

Release channels #1632

Open SnippenE opened 2 months ago

SnippenE commented 2 months ago

To align with the other Hydrology suite products additions are needed in our automatic release pipeline:

Requested by @deltamarnix / PMT Hydrology (see Software Distribution Plan )

Related issue: #1583

visr commented 2 months ago

Add Ribasim to Julia Package Manager

Since the Julia General registry requires semver, we'll need to split out the version number of Ribasim.jl from the other 2024.x.y version numbers. And then bump the major version each time we make a breaking release. Also we should document and annotate with public what is part of our API, and what is internal.

Add Ribasim Core to Conda Forge

Right now we have Ribasim Python registered in conda-forge under the name ribasim. To add the core executables to conda-forge, the build should be faster and smaller. Work to make this possible is in progress in Julia, with juliac. So it is best to wait with this until we can use this, probably 2025.

Jingru923 commented 2 months ago

I will discuss this with Marnix, but I think this is already the case

  • [ ] Add Link to Github on download portal
visr commented 2 months ago

I added another bullet, publish Ribasim QGIS plugin. If our QGIS plugin stays more or less as is, it meets all requirements to publish it. If we want to use Ribasim Python in our plugin or bundle the executable, users need to probably use QGIS from conda-forge, e.g. pixi add qgis ribasim. In that case we wouldn't meet requirements to publish our QGIS plugin.

@Huite what's your call on this? Should we go ahead and publish?

Since the version numbers are linked, we might need to release QGIS plugins under new version numbers with no code changes. Considering the plugin registration is a manually curated process this is not ideal. But perhaps once we slow down / stabilize development that is not a big issue?

visr commented 2 months ago

@Jingru923 the download portal is https://download.deltares.nl/en/ribasim. That currently doesn't contain any information about this project, only Ribasim 7.

Jingru923 commented 2 months ago

@Jingru923 the download portal is https://download.deltares.nl/en/ribasim. That currently doesn't contain any information about this project, only Ribasim 7.

I thought he meant the log that comes from our release pipeline.

in our automatic release pipeline:

I agree that Ribasim 9 should be on the page but I am doubting that if it is part of pipeline's outcome

visr commented 2 months ago

I agree that Ribasim 9 should be on the page but I am doubting that if it is part of pipeline's outcome

Yeah it wouldn't be part of the pipeline but a one time action to link to the latest release just like we do in https://deltares.github.io/Ribasim/install.html

Huite commented 2 months ago

Regarding the QGIS plugin: there's no specific need to publish it right now. The main thing about the QGIS plugin repo is discoverability and ease of installation. I think those benefits are currently offset by the downsides of either having to re-upload the same plugin with a new version or having outdated (with regards to version) but identical plugin (with regards to code) online -- at some point the code is going to change, and then it won't be clear whether it needs a reupload and things get muddled.

Regarding discoverability: people need to download the whole shebang from the Github pages anyway. Regarding ease of installation: still good, just click the zip.

I'd say it's better to publish it on the long term. E.g. when you can move to some semblance of stability with e.g. two releases per year?

Also worth noting: for stuff like imod-python, the primary way of getting it is through conda-forge. So there's a de facto less centralized way of downloading "all the stuff" which makes it more urgent (to me at least) to have the QGIS plugin published. For Ribasim, you would click the download links on the Github / Deltares page.

deltamarnix commented 2 months ago

I have written a document for the Software Distribution Plan, I want our products to be in line with each other and not have all kinds of exceptions to the rule. I'm alright with postponing the QGIS plugin to a later date if that is more fitting, but I would like to have it there for sure. I will send @Huite the document.

Huite commented 2 months ago

I fully concur! I should've been more specific: I reckon a better time to publish it would be in half a year or so -- so still within the year goals.

Jingru923 commented 1 month ago

I made a PR on deltaforge's repo https://github.com/Deltares/deltaforge/pull/18 When it's reviewed and merged by @JoerivanEngelen , Ribasim Python will be on Deltaforge

evetion commented 1 month ago

I removed the label v1.0 as the remaining todos are planned for later/next year.

visr commented 1 month ago

I played around a bit with juliac as mentioned in https://github.com/Deltares/Ribasim/issues/1632#issuecomment-2238517053. Type unstable code is not supported. We have some of that ourselves, like get_value_ptr, that can probably be fixed. But for instance JuMP is not type stable. I don't know if it is feasible to use a lower level interface that is type stable, but this may be quite some work. I parked the effort over at https://github.com/Deltares/Ribasim/tree/trimming.