xeus-python icon indicating copy to clipboard operation
xeus-python copied to clipboard

Release xeus-python on PyPI

Open afshin opened this issue 6 years ago • 20 comments

Publishing xeus-python as a package that can be installed by pip opens it up to use in a wider set of venues, namely in environments where conda is unavailable.

afshin avatar Nov 29 '19 12:11 afshin

I am looking into conda-press and opened a number of issues in the repository. Unfortunately, conda-press does not seem to be really up to the task quite yet. We need to find another approach.

SylvainCorlay avatar Dec 04 '19 10:12 SylvainCorlay

We are looking into multibuild and scikit-build at the moment.

cc @jcfr @thewtex

SylvainCorlay avatar Dec 04 '19 14:12 SylvainCorlay

This is exciting !

Let us know if you have any question related to scikit-build.

As a side note, here is example of project I updated to have wheels automatically uploaded after pushing a tag. See https://github.com/amueller/word_cloud

jcfr avatar Dec 04 '19 15:12 jcfr

Do you already have a wip branch pushed somewhere ?

jcfr avatar Dec 04 '19 15:12 jcfr

No, I am reading up on scikit-build, because there are quite a few dependencies.

  • For xeus core, OpenSSL and zeromq both have a runtime. I would probably need to have a solid way to get the header-only dependencies as well during the build.
  • For xeus-python, we depend on Python core, xeus, and pybind11 (header-only)...

xeus core also depends on libuuid on linux, and the "Core Foundation" runtime on OS X...

SylvainCorlay avatar Dec 04 '19 15:12 SylvainCorlay

@jcfr btw, I would love to pick your brain for this if you would be ok to have a quick chat.

Also, FYI, we have iterated a lot on xeus-python lately, since this is the backend to jupyterlab/debugger.

SylvainCorlay avatar Dec 04 '19 15:12 SylvainCorlay

It is worth noting that scikit-build and conda-press could / should be used together -- scikit-build helps integrate the C++ / CMake build and conda-press helps package binary dependencies.

thewtex avatar Dec 04 '19 17:12 thewtex

It is worth noting that scikit-build and conda-press could / should be used together -- scikit-build helps integrate the C++ / CMake build and conda-press helps package binary dependencies.

What is de-pressing is that conda-press installs binary stuff under site-packages which breaks any conda package that is linked with libpython because the relative path is not the same as in the pure conda case.

So conda-press in its current form may not be the right tool (quite yet). Since we have a pressing need for a PyPI package I am looking at other means to do this.

SylvainCorlay avatar Dec 04 '19 17:12 SylvainCorlay

de-pressing

:laughing: @scopatz -- @SylvainCorlay should get an honorary badge for this one!

conda package that is linked with libpython

If using CMake / scikit-build, this can be avoided on macOS and Linux by weak linking with targetLinkLibrariesWithDynamicLookup.

thewtex avatar Dec 04 '19 20:12 thewtex

It is worth noting that scikit-build and conda-press could / should be used together -- scikit-build helps integrate the C++ / CMake build and conda-press helps package binary dependencies.

@thewtex do you have an example of a package that would be doing this?

I am mostly concerned with binary dependencies that are not cmake-based, that is zeromq and OpenSSL. All the rest should be simpler...

SylvainCorlay avatar Dec 12 '19 12:12 SylvainCorlay

@thewtex do you have an example of a package that would be doing this?

I am going to try this with ITK :-).

thewtex avatar Dec 15 '19 20:12 thewtex

For reference, we now have an experimental wheel on PyPI for linux only.

We already build functional wheels on Windows and OS X but are not uploading them quite yet.

SylvainCorlay avatar Mar 28 '20 12:03 SylvainCorlay

@SylvainCorlay awesome!

thewtex avatar Mar 30 '20 19:03 thewtex

For reference 0.7.1 is now on PyPI and works with user installs and virtual environments.

I will be uploading windows and OS X wheels later on.

SylvainCorlay avatar Apr 17 '20 12:04 SylvainCorlay

I got a little bit emojinal there, but it is warranted.

afshin avatar Apr 17 '20 15:04 afshin

@SylvainCorlay Would it be possible to update the xeus archive on PyPI? pip is a hard requirement in my use case and 7.1 is too old for some tools (https://github.com/jupyterlab/debugger/issues/479#issuecomment-651864058).

sknigh avatar Jul 01 '20 22:07 sknigh

@sknigh I have released 0.8.3 on pypi.

SylvainCorlay avatar Jul 23 '20 15:07 SylvainCorlay

Just checking whether there are plans for a new release including PyPI wheels incorporating #400 in the coming weeks, or whether I should set aside some time to figure out how to install from source to try out this major milestone (can't use conda) :)

dlukes avatar Feb 17 '21 13:02 dlukes

I will build the wheel and publish it 👍🏼

martinRenou avatar Feb 17 '21 14:02 martinRenou

xeus-python 0.11.1 is on PyPi

martinRenou avatar Feb 18 '21 10:02 martinRenou