cerfacs-globc/icclim

icclim 6.2.0 is not compatible with xclim 0.42.0

thebaptiste opened this issue · 8 comments

Hi

I would like to use icclim with xclim 0.42.0 but icclim 6.2.0 requires xclim==0.40.0
Do you plan a new release compatible with xclim 0.42.0 soon ?

Thanks

bzah commented

Hi @thebaptiste, yes a new release is planned, we will try to make it asap (probably this week).

pagecp commented

To add some information, recent releases of icclim are linked to a specific version of xlim because currently the API of xclim is not guaranteed to be stable and non-breaking.

bzah commented

I took a little bit more time but icclim 6.3.0 is out with xclim now pinned to 0.42.0.
Cheers.

I'm happy with new release 6.3.0 but I don't understand why you pin xclim==0.42.0. I think the dependency should be xclim>=0.42.0
Of course icclim 6.3.0 is not tested with xclim>0.42.0 (there is no such release available !), but why do you assume that it will not work necessarily with a new release of xclim ? I think it's not a good practice. Let's suppose for example that xclim fix a security issue in a new release 0.42.1, users of icclim will have to wait for a new release of icclim to have this security issue fixed...
If all developpers started to pin dependencies to exact releases this way, python world would became unusable !

Moreover, if you don't pin dependencies to exact releases, the community of all icclim users will help you to find and may be to fix next dependencies issues !

bzah commented

It's a fair concern that you have, but please note that we do this only with xclim an no other dependency. There are two reasons why xclim is peculiar for us:
Firstly, icclim development is tightly tied to xclim, we often try to upstream feature that could have been in icclim directly into xclim to make it available to a broader audience, thus we always want to associate the latest icclim to it's xclim counterpart.
Secondly, we were previously using >= to pin xclim to the most recent supported version, but we had a case where there was a breaking change in the latest version of xclim that made icclim fairly difficult to install.
Indeed, with >= pin, when a user would do pip install icclim (or conda equivalent) it would install the latest xclim which was incompatible to the latest icclim at that time. So the user would need to manually downgrade it's xclim version to use the latest icclim...

We could however do a pin like xclim>=0.42, <0.43 which would allow installation of patch versions (like 0.42.1) with the latest icclim. Patches should never include breaking changes.

I understand. Yes, xclim>=0.42, <0.43 would be better than xclim==0.42.0

But, doing so, when xclim 0.43 will be released, if you don't want naughty users like me to moan, releasing a new compatible version will probably become a priority.

For your understanding, I am working on a framework whose main purpose is to provide many scientific python libraries (if possible the last releases) in a single environment, and one of my main difficulties is to manage dependencies : "this package requires xclim<0.43 but this other one requires xclim>=0.43 and I want to provide both together, so I have to wait a new release of this package compatible with xclim 0.43 before providing the last release of this other package", and so on... That is why I'm happy with >= dependencies ! But if I provide 2 libraries which dont work together, my users will also be moaning...

Thanks for your concern anyway

bzah commented

Understood, thanks for your feedback, it is very appreciated.
At the moment icclim dev team is limited in resources, so we are not as fast as we would like to make these new releases. It should get better in the coming months though.

xclim 0.43 should be released in early may, once it is out, we will update icclim with xclim>=0.43, <0.44 .

bzah commented

xclim 0.43 is out, we will try to roll a icclim 6.4 with xclim>=0.43, <0.44 pin asap.