conda-forge / python-eccodes-feedstock

A conda-smithy repository for python-eccodes.
BSD 3-Clause "New" or "Revised" License
6 stars 16 forks source link

version madness #49

Closed beckermr closed 5 years ago

beckermr commented 5 years ago

So apparently the upstream package split out the python package (a good thing) but decided to reset the version number. So to update this feedstock for eccodes >=2.13.0, the new version would be 0.9.2. The current version of this feedstock is based on the upstream eccodes version of 2.12.*.

@conda-forge/python-eccodes How should we proceed here?

beckermr commented 5 years ago

This issue blocks python 3 support w/ PRs #47 and #48

beckermr commented 5 years ago

Here is one proposal. We simply update the repo to support only python 3 via pypi with the new version number. People can rely on older versions for python 2.7 and older eccodes builds.

beckermr commented 5 years ago

We can eventually mark the old versions as broken sometime near the end of next year or so.

beckermr commented 5 years ago

Certainly, for python 3 we could mark them as broken almost right away.

ocefpaf commented 5 years ago

So apparently the upstream package split out the python package (a good thing) but decided to reset the version number

:weary:

So to update this feedstock for eccodes >=2.13.0, the new version would be 0.9.2. The current version of this feedstock is based on the upstream eccodes version of 2.12.*.

@conda-forge/python-eccodes How should we proceed here?

Here is one proposal. We simply update the repo to support only python 3 via pypi with the new version number. People can rely on older versions for python 2.7 and older eccodes builds.

I'm OK with that but I'm not a heavy user of eccodes. @conda-forge/python-eccodes team, what do you think?

kmuehlbauer commented 5 years ago

Good question! The PyPI Package is Python3 only. So my suggestion would be to drop Python2 support for this feedstock now.

As the new build would be for ecCodes v2.13.0 we might have to mark older py3 packages as broken then.

Another thing is, that the new bindings can be compiled. @ocefpaf any idea how to incorporate this?

beckermr commented 5 years ago

As the new build would be for ecCodes v2.13.0 we might have to mark older py3 packages as broken then.

This is not needed. Conda will resolve the version dependence of the individual build on ecCodes properly.

kmuehlbauer commented 5 years ago

This is not needed. Conda will resolve the version dependence of the individual build on ecCodes properly.

Will $ conda install python-eccodes install the 0.9.2 version (if it's build) or the 2.12.3 which is latest?

beckermr commented 5 years ago

It depends on what other packages are in the environment. if you never want the older package 2.12.3 installed, then marking the older ones as broken would do the trick as you say. However, this would have other consequences, like breaking support for users.

kmuehlbauer commented 5 years ago

Ah, I see, in #48 the package is just pulled from PyPI and installed alongside the eccodes build. But that means we will build eccodes twice. In the eccodes-feedstock and here.

And, we would have a conda-forge version naming contradicting the python-eccodes PyPI version. Seems not easy to sort out properly.

beckermr commented 5 years ago

I think I might have misinterpreted one of your comments. Indeed marking all python 3 builds of python-eccodes as broken and starting over is probably the best option.

The question I thought I was answering was "Will conda get confused and try and install python-eccodes 0.9.2 with eccodes 2.12.3?" The answer to this question is no as long as the python-eccodes recipe depends on the eccodes one via the meta.yaml.

I think we can avoid a double build along with compiling the package, but that will take some effort to get working.

kmuehlbauer commented 5 years ago

The question I thought I was answering was "Will conda get confused and try and install python-eccodes 0.9.2 with eccodes 2.12.3?" The answer to this question is no as long as the python-eccodes recipe depends on the eccodes one via the meta.yaml.

IIUC, we can use the new version (0.9.2) in this feedstock and depend on eccodes 2.13.0 via meta.yaml and conda will take care of it. But with the consequence of dropping python2 support, right?

beckermr commented 5 years ago

That is basically right. However, we can keep the old builds with python 2 support around by not marking those as broken. We just can't easily support python 3 for both eccodes 2.12.3 and eccodes 2.13.0.