Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix getindex of local truth_values with global condition_idx #772

Closed
wants to merge 32 commits into from

Conversation

visr
Copy link
Member

@visr visr commented Nov 10, 2023

This fixes a

BoundsError: attempt to access 2-element Vector{String} at index [4]

A test model that doesn't work without this is here (I also have code to generate this):

2Basins_2Pumps_1_Boezem_TargetLevelBasin1.zip

Though perhaps it's better to see if we can easily update one of our own test models to trigger this path.

  • add test

Reported by @harm-nomden-sweco.

@visr visr requested a review from SouthEndMusic November 10, 2023 16:55
Hofer-Julian and others added 29 commits November 13, 2023 13:00
Also check in `docs/Manifest.toml`
Part of #654
Fixes #645

I ran `pixi add pandas=2.1.2 python=3.12 pyogrio=0.7.2` using pixi
v0.5.0 so as not to update the lockfile format.

The new pyogrio release is needed to be able to use Python 3.12. We only
update the Python version in the Pixi lockfile and on CI, this does not
change our minimum supported Python version.

The pandas update to 2.1.2 fixes a regression present in 2.1.0 and
2.1.1, no further changes were needed in our code.

@Hofer-Julian I simply removed the `pandas < 2.1` restriction in the
pyproject.toml, assuming that is fine since with the release of pandas
2.1.2 most people won't get 2.1.0 or 2.1.1 anymore, though I guess we
could exclude multiple patch releases.
Update versions of pre-commit hooks to latest version.

Co-authored-by: GitHub <[email protected]>
Since we already render the page, this simpler action should be enough.

Just checking if the CI works is not enough for this PR. After it is
merged, we need to check if it also works on main and if my small doc
changes pop up.
I've been fixing some problems with rendering the docs to PDF. You can
try it yourself by running:

`quarto render docs --to pdf`

I've hit a roadblock with the following error which first appears when
attempting to render `modflow-demo.qmd`:
`Unable to load picture or PDF file
'https://user-images.githubusercontent.com
/13662783/187665858-d01fd60f-f3c2-4662-af82-cf8acfbe169b.PNG'.`

It seems that [_.. pdfTeX and XeTeX do not include the necessary code to
grab an image from an arbitrary location.
..._](https://tex.stackexchange.com/questions/5433/can-i-use-an-image-located-on-the-web-in-a-latex-document)

Maybe a workaround is possible with pixi that downloads the necessary
files to a local folder?
I removed that in a different PR, but it seems to be necessary after all
Fix $\TeX$ and figure issues for rendering docs to PDF.

The docs are now modified so that all figures are included with HTML
syntax in a way that figure numbers and references are preserved.
However, I could only make this work in a way that hardcodes the figure
numbers, both in the captions and the references.

---------

Co-authored-by: Martijn Visser <[email protected]>
Otherwise you would receive an error during `pixi run test-ribasim-core`
Seems like PyPI changes `_` to `-` :(
- Add pixi tasks
- Update docs
These plugins are used for syntax highlighting
…ribasim - Windows' build configuration were updated
…asim_cli - Windows' build configuration were updated
…ribasim - Windows' build configuration were updated
…ribasim - Windows' build configuration were updated
One frequent reason that `libribasim` and `ribasim_cli` builds break is
because we add a dependency to the core, and we forget to resolve the
Manifests of `libribasim` and `ribasim_cli`. (e.g. #484).

This adds an entry like `manifest = "../Manifest.toml"` to the `core`,
`libribasim` and `ribasim_cli` Project.toml, which all point to the new
`root` Manifest. With this they still have their own Project, but a
shared Manifest. This option exists to make it easier to work with
multiple related projects in one monorepo.

~~As a follow-up we could consider also doing~~ We also do this for the
remaining two projects, `docs` and `create_binaries`. `create_binaries`
doesn't depend on Ribasim, so there is not as much benefit. `docs` does,
currently not via Project.toml, but via adding it to the LOAD_PATH. It
would be cleaner to also use a shared Manifest there. One thing to check
if the unmaintained docs dependencies don't hold back Ribasim
dependencies, see #621 (EDIT: they don't).

~~This is on top of #738, but could be separated out if needed.~~

Also simplifies the docs, and has a not-directly-related commit
8403bef that runs CompatHelper for all
projects, not just core.

For reference, the root project is populated like this: `dev ./core
./docs build/create_binaries build/libribasim build/ribasim_cli`.
… existing compat) (#764)

This pull request changes the compat entry for the `Documenter` package
from `0.27` to `0.27, 1` for package docs.
This keeps the compat entries for earlier versions.



Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass
before you merge this pull request.

Co-authored-by: CompatHelper Julia <[email protected]>
…kage ribasim_cli, (keep existing compat) (#766)

This pull request sets the compat entry for the `SciMLBase` package to
`2` for package ribasim_cli.
This keeps the compat entries for earlier versions.



Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass
before you merge this pull request.
Note: Consider registering a new release of your package immediately
after merging this PR, as downstream packages may depend on this for
tests to pass.

---------

Co-authored-by: CompatHelper Julia <[email protected]>
Co-authored-by: Martijn Visser <[email protected]>
… for package ribasim_cli, (keep existing compat) (#765)

This pull request sets the compat entry for the `TerminalLoggers`
package to `0.1` for package ribasim_cli.
This keeps the compat entries for earlier versions.



Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass
before you merge this pull request.
Note: Consider registering a new release of your package immediately
after merging this PR, as downstream packages may depend on this for
tests to pass.

---------

Co-authored-by: CompatHelper Julia <[email protected]>
Co-authored-by: Martijn Visser <[email protected]>
Follow up to #740.

---------

Co-authored-by: Hofer-Julian <[email protected]>
This follows the suggestions from https://astral.sh/blog/ruff-v0.1.5

Also moves `settings_template.json` to `settings.json` as suggested by
@deltamarnix. The only part I'm not sure about if it is wise to remove
the file from `.gitignore`. If local changes keep appearing there, we
can revert that part.
This changes the lockfile format, and updates all versions, so it is
important that everyone is on this release, but I think that is already
the case.
Fixes #659.



notes:
- Allocation not done `t = 0` as no flows for sources are available yet.
- The saved abstraction is now the last abstraction before the
allocation update, should be the average abstraction since the last
allocation solve #754

---------

Co-authored-by: Martijn Visser <[email protected]>
Release notes here:
https://github.com/JuliaLang/julia/blob/v1.10.0-rc1/NEWS.md

Since at this point we don't care about supporting multiple julia
versions, I updated everything to 1.10.

Marking as a draft since:
- [x] Julia 1.10-rc1 needs to be installed on TeamCity
- [x] `%env.JULIA_1_10%` needs to be added on TeamCity to point to that
install (this PR already attempts to use `JULIA_1_10`)

Main reasons I'm excited about 1.10 for Ribasim; mostly for developer
experience:
- Less latency
- Better syntax errors
- Shorter stacktraces

If people want we can wait for the final release, though its good to
start kicking the 1.10 tires at least.

---------

Co-authored-by: Hofer-Julian <[email protected]>
deltamarnix and others added 3 commits November 13, 2023 13:00
Add diagrams for C4 model showing the different components for ribasim,
the preprocessing API, and the QGIS plugin.

We could go even further and make a detailed diagram of the different
modules that are connected to each other. But these diagrams already
give an overview of the components that are involved in the system.

---------

Co-authored-by: Martijn Visser <[email protected]>
This fixes a
```
BoundsError: attempt to access 2-element Vector{String} at index [4]
```
@visr visr changed the base branch from main to allow-control November 13, 2023 13:29
@visr
Copy link
Member Author

visr commented Nov 13, 2023

Added to #716.

@visr visr closed this Nov 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants