simon-anders / htseq

HTSeq is a Python library to facilitate processing and analysis of data from high-throughput sequencing (HTS) experiments.
https://htseq.readthedocs.io/en/release_0.11.1/
GNU General Public License v3.0
122 stars 77 forks source link

releasing 0.7.0 on PyPI #20

Closed iosonofabio closed 7 years ago

iosonofabio commented 7 years ago

@simon-anders I made HTSeq compatible with pip for both the python2 and python3 branches and tagges 2 new releases (each for one python version) on the github repo.

To complete the modernization of HTSeq, we have to push the master 0.7.0 release (python2) onto PyPI, which is currently stuck at 0.6.1:

https://pypi.python.org/pypi/HTSeq

That requires separate credentials which I do not have, so could you push it over there please?

NOTE: because of bugs in old setuptools, one cannot just pip install HTSeq but must rather install Cython and matplotlib by hand before. Details are in the current README.md file, so if you could include some of that onto the PyPI page that would be helpful.

NOTE: another nice thing would be if you could mention the python3 branch for folks that prefer that.

simon-anders commented 7 years ago

Hi Fabio

  1. Brilliant. Thanks so much for all your work and for resurrecting HTSeq!

  2. Do you have a PyPI account? Then I can add you as a maintainer.

  3. About Cython: the Cython-to-C conversion is architecture-independent AFAIK. So, we can relieve users from the need to install Cython first. In previous releases, I always first ran "./build_it" (i.e., make in src/), and then "python setup.py build sdist". The source distribution thus created could then be installed by the user with "python setup.py install", without a need to have Cython installed. Can we stick to this? I suppose it should work with PIP, too. I'll try this tomorrow.

  4. matplotlib is only needed for htseq-qa, and hardly anybody uses this anymore. (Simon Andrew's FastQC is more comprehensive.) So, we should mark the matplotlib requirement as optional?

  5. For Windows, I always rolled binary distributions, because few Windows users have a build environment. I hope I remember how I did that, and manage to to do it again. Or is there a better way by now?

Thanks again!

SImon

iosonofabio commented 7 years ago

Hi Simon,

  1. I have a PyPI account, my username is iosonofabio.

  2. Typically committing machine-generated files to a git repo generates useless noise, but we could do it. I would think Cython is an easy dep for people, they need much worse (SWIG 3, g++, pysam), but if you are keen on relieving deps we can do it. Then we should probably also ship the StepVector.py and the StepVector_wrap.cxx that are generated by SWIG and, for python3, corrected by 2to3 and by my sed trick. I can make a release 0.7.1 that includes this kind of files in the repo.

  3. matplotlib is already an optional dep under setuptools, but distutils does not understand optional deps.

  4. I have no Windows machine available and some building steps (e.g. sed) will probably not work on Windows, so if you provided a binary for python2 and one for python3 that would be great. For future releases, we can have a look at AppVeyor.

iosonofabio commented 7 years ago

Hi Simon,

I included the files generated by Cython and SWIG in the git repo and I set up a mechanism in the setup.py file to use those if SWIG and/or Cython is not found on the system. I kept 0.7.0 as a version number and just overwrote the git tags, I don't think it's a problem.

Let me know how you want to deal with the binaries and the pushing to PyPI :-)

yhoogstrate commented 7 years ago

I don't know how pysam does this but I think since 0.10 they are able to to distribute a wheels package without client side compilation

iosonofabio commented 7 years ago

Thanks Youri, I've looked into that and you are right we should aim for it. Since the main benefit is Windows machines (because they tend to have a broken compiler), I'd suggest we set up AppVeyor first and then simply attach a deploy hook to it.

EDIT : of course this is easier said than done :-)

On February 8, 2017 5:33:41 AM PST, yhoogstrate notifications@github.com wrote:

I don't know how pysam does this but I think since 0.10 they are able to to distribute a wheels package without client side compilation

-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/simon-anders/htseq/issues/20#issuecomment-278329729

iosonofabio commented 7 years ago

We should keep this in mind, looks like a decent start:

https://github.com/gappleto97/CITest

yhoogstrate commented 7 years ago

It's also of great intrest for Travis builds as they tend to rebuild dependencies for every PR so if we manage to get this done it's a big win :+1:

simon-anders commented 7 years ago
iosonofabio commented 7 years ago

Hi Simon, Thx sure will do.

As of pysam, I never got it to work on Win but in the long term I'm working on an AppVeyor to automate that as well. But it will take a while because I have no local windows machine as a positive control...

Fabio

On February 13, 2017 3:17:25 AM PST, Simon Anders notifications@github.com wrote:

  • Fabio, I've added you as Maintainer on PyPI. You can upload the new releases if you want to. Though, could you edit doc/history.rst before, please, and add a summary of your changes?

  • I have tried to build an HTSeq binary package for Windows yesterday but I had problems installing pysam. Will try again.

-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/simon-anders/htseq/issues/20#issuecomment-279359057