Skip to content

Commit

Permalink
Use a Rust binary to expose Ribasim CLI (#1415)
Browse files Browse the repository at this point in the history
- libribasim and ribasim_cli can share the same libraries
- we get `ribasim.exe` instead of `ribasim.cmd`
  • Loading branch information
Hofer-Julian authored Apr 23, 2024
1 parent d861737 commit 748612f
Show file tree
Hide file tree
Showing 26 changed files with 690 additions and 370 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ docs/build/
docs/site/

/generated_testmodels
build/ribasim_cli/
build/libribasim/
build/ribasim/
build/cli_wrapper/target

JuliaSysimage.dll
LocalPreferences.toml
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,17 @@ pixi run github-release]]></param>
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="ribasim_qgis.zip" />
</dependency>
<dependency id="ARTIFACT_DEPENDENCY_684" sourceBuildTypeId="Ribasim_Linux_BuildRibasimCli" cleanDestination="false">
<dependency id="ARTIFACT_DEPENDENCY_684" sourceBuildTypeId="Ribasim_Linux_BuildRibasim" cleanDestination="false">
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="ribasim_cli_linux.zip" />
<artifact sourcePath="ribasim_linux.zip" />
</dependency>
<dependency id="ARTIFACT_DEPENDENCY_157" sourceBuildTypeId="Ribasim_Windows_BuildRibasimCli" cleanDestination="false">
<dependency id="ARTIFACT_DEPENDENCY_157" sourceBuildTypeId="Ribasim_Windows_BuildRibasim" cleanDestination="false">
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="ribasim_cli_windows.zip" />
<artifact sourcePath="ribasim_windows.zip" />
</dependency>
</artifact-dependencies>
<dependencies>
<depend-on sourceBuildTypeId="Ribasim_Windows_BuildRibasimCli">
<depend-on sourceBuildTypeId="Ribasim_Windows_BuildRibasim">
<options>
<option name="take-started-build-with-same-revisions" value="true" />
<option name="take-successful-builds-only" value="true" />
Expand All @@ -90,7 +90,7 @@ pixi run github-release]]></param>
<option name="take-successful-builds-only" value="true" />
</options>
</depend-on>
<depend-on sourceBuildTypeId="Ribasim_Linux_BuildRibasimCli">
<depend-on sourceBuildTypeId="Ribasim_Linux_BuildRibasim">
<options>
<option name="take-started-build-with-same-revisions" value="true" />
<option name="take-successful-builds-only" value="true" />
Expand All @@ -110,4 +110,3 @@ pixi run github-release]]></param>
</cleanup>
</settings>
</build-type>

Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<build-type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uuid="cf391998-fed9-4a22-ae44-8877d1028c10" xsi:noNamespaceSchemaLocation="https://www.jetbrains.com/teamcity/schemas/2021.1/project-config.xsd">
<name>Build libribasim</name>
<name>Build Ribasim</name>
<description />
<settings ref="Ribasim_Linux">
<options>
<option name="artifactRules" value="ribasim\build\libribasim =&gt; libribasim.zip" />
<option name="artifactRules" value="ribasim\build\ribasim =&gt; ribasim_linux.zip" />
<option name="executionTimeoutMin" value="120" />
</options>
<parameters />
Expand Down Expand Up @@ -32,7 +32,7 @@ source /usr/share/Modules/init/bash
module load pixi
module load gcc/11.3.0
pixi run remove-artifacts
pixi run build-libribasim]]></param>
pixi run build]]></param>
<param name="teamcity.build.workingDir" value="ribasim" />
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
Expand All @@ -59,4 +59,3 @@ pixi run build-libribasim]]></param>
<cleanup />
</settings>
</build-type>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
<option name="artifactRules" value="ribasim\python\ribasim_api\tests\temp =&gt; test_output.zip" />
<option name="executionTimeoutMin" value="120" />
</options>
<parameters>
<param name="conda_env_path" value="%system.teamcity.build.checkoutDir%/libribasim_test_env" />
</parameters>
<build-runners>
<runner id="RUNNER_1501" name="Set up pixi" type="simpleRunner">
<parameters>
Expand Down Expand Up @@ -90,13 +87,13 @@ pixi run test-ribasim-api]]></param>
</extension>
</build-extensions>
<artifact-dependencies>
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Linux_BuildLibribasim" cleanDestination="true">
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Linux_BuildRibasim" cleanDestination="true">
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="libribasim.zip!** =&gt; ribasim/build/libribasim&#xD;&#xA;" />
<artifact sourcePath="ribasim_linux.zip!** =&gt; ribasim/build/ribasim&#xD;&#xA;" />
</dependency>
</artifact-dependencies>
<dependencies>
<depend-on sourceBuildTypeId="Ribasim_Linux_BuildLibribasim">
<depend-on sourceBuildTypeId="Ribasim_Linux_BuildRibasim">
<options>
<option name="run-build-if-dependency-failed" value="RUN_ADD_PROBLEM" />
<option name="take-started-build-with-same-revisions" value="true" />
Expand All @@ -107,4 +104,3 @@ pixi run test-ribasim-api]]></param>
<cleanup />
</settings>
</build-type>

Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,13 @@ pixi run test-ribasim-cli]]></param>
</extension>
</build-extensions>
<artifact-dependencies>
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Linux_BuildRibasimCli" cleanDestination="true">
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Linux_BuildRibasim" cleanDestination="true">
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="ribasim_cli_linux.zip!** =&gt; ribasim/build/ribasim_cli&#xD;&#xA;" />
<artifact sourcePath="ribasim_linux.zip!** =&gt; ribasim/build/ribasim&#xD;&#xA;" />
</dependency>
</artifact-dependencies>
<dependencies>
<depend-on sourceBuildTypeId="Ribasim_Linux_BuildRibasimCli">
<depend-on sourceBuildTypeId="Ribasim_Linux_BuildRibasim">
<options>
<option name="run-build-if-dependency-failed" value="RUN_ADD_PROBLEM" />
<option name="take-started-build-with-same-revisions" value="true" />
Expand All @@ -107,4 +107,3 @@ pixi run test-ribasim-cli]]></param>
<cleanup />
</settings>
</build-type>

Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<build-type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uuid="f6699718-828b-4898-bfab-36de06ae4070" xsi:noNamespaceSchemaLocation="https://www.jetbrains.com/teamcity/schemas/2021.1/project-config.xsd">
<name>Build libribasim</name>
<name>Build Ribasim</name>
<description />
<settings ref="Ribasim_Windows">
<options>
<option name="artifactRules" value="ribasim\build\libribasim =&gt; libribasim.zip" />
<option name="executionTimeoutMin" value="120" />
<option name="publishArtifactCondition" value="SUCCESSFUL" />
</options>
Expand All @@ -25,7 +24,7 @@ pixi run --environment=dev install-ci]]></param>
<runner id="RUNNER_2416" name="Build binary" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[pixi run remove-artifacts
pixi run build-libribasim]]></param>
pixi run build]]></param>
<param name="teamcity.build.workingDir" value="ribasim" />
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
Expand Down Expand Up @@ -54,4 +53,3 @@ pixi run build-libribasim]]></param>
<cleanup />
</settings>
</build-type>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
<options>
<option name="artifactRules" value="ribasim\python\ribasim_api\tests\temp =&gt; test_output.zip" />
</options>
<parameters>
<param name="conda_env_path" value="%system.teamcity.build.checkoutDir%/libribasim_test_env" />
</parameters>
<build-runners>
<runner id="RUNNER_1501" name="Set up pixi" type="simpleRunner">
<parameters>
Expand Down Expand Up @@ -78,13 +75,13 @@
</extension>
</build-extensions>
<artifact-dependencies>
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Windows_BuildLibribasim" cleanDestination="true">
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Windows_BuildRibasim" cleanDestination="true">
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="libribasim.zip!** =&gt; ribasim/build/libribasim&#xD;&#xA;" />
<artifact sourcePath="ribasim_windows.zip!** =&gt; ribasim/build/ribasim&#xD;&#xA;" />
</dependency>
</artifact-dependencies>
<dependencies>
<depend-on sourceBuildTypeId="Ribasim_Windows_BuildLibribasim">
<depend-on sourceBuildTypeId="Ribasim_Windows_BuildRibasim">
<options>
<option name="run-build-if-dependency-failed" value="RUN_ADD_PROBLEM" />
<option name="take-started-build-with-same-revisions" value="true" />
Expand All @@ -95,4 +92,3 @@
<cleanup />
</settings>
</build-type>

Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,13 @@
</extension>
</build-extensions>
<artifact-dependencies>
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Windows_BuildRibasimCli" cleanDestination="true">
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_Windows_BuildRibasim" cleanDestination="true">
<revisionRule name="sameChainOrLastFinished" revision="latest.sameChainOrLastFinished" />
<artifact sourcePath="ribasim_cli_windows.zip!** =&gt; ribasim/build/ribasim_cli&#xD;&#xA;" />
<artifact sourcePath="ribasim_windows.zip!** =&gt; ribasim/build/ribasim&#xD;&#xA;" />
</dependency>
</artifact-dependencies>
<dependencies>
<depend-on sourceBuildTypeId="Ribasim_Windows_BuildRibasimCli">
<depend-on sourceBuildTypeId="Ribasim_Windows_BuildRibasim">
<options>
<option name="run-build-if-dependency-failed" value="RUN_ADD_PROBLEM" />
<option name="take-started-build-with-same-revisions" value="true" />
Expand All @@ -95,4 +95,3 @@
<cleanup />
</settings>
</build-type>

5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,6 @@ For most users the [latest release](https://github.com/Deltares/Ribasim/releases
- QGIS plugin: [ribasim_qgis.zip](https://github.com/Deltares/Ribasim/releases/latest/download/ribasim_qgis.zip).
- Generated testmodels: [generated_testmodels.zip](https://github.com/Deltares/Ribasim/releases/latest/download/generated_testmodels.zip)

The nightly builds contain the latest developments and can be found below. It is important to either use the release or nightly for all components.

- Ribasim executable: [ribasim_cli.zip](https://ribasim.s3.eu-west-3.amazonaws.com/teamcity/Ribasim_Ribasim/BuildRibasimCliWindows/latest/ribasim_cli.zip).
- QGIS plugin: [ribasim_qgis.zip](https://ribasim.s3.eu-west-3.amazonaws.com/teamcity/Ribasim_Ribasim/BuildRibasimCliWindows/latest/ribasim_qgis.zip).


![Timeseries of
results](https://user-images.githubusercontent.com/4471859/179259333-070dfe18-8f43-4ac4-bb38-013b252e2e4b.png)
Expand Down
Loading

0 comments on commit 748612f

Please sign in to comment.