singer-io / singer-python

Writes the Singer format from Python
https://singer.io
Apache License 2.0
537 stars 129 forks source link

Test multiple Python versions using Travis-CI and Conda #83

Open OriHoch opened 5 years ago

OriHoch commented 5 years ago
  1. added .travis.yml for testing multiple python versions using Travis-CI and Conda - https://travis-ci.org/OriHoch/singer-python/builds/444822592
  2. minor changes to check_prereqs to support running using Conda environment which is slightly different then virtualenv
timvisher commented 5 years ago

I'm not opposed to the idea of testing against multiple versions of python but we need to do it within circle rather than Travis. All of our existing CI infrastructure is hosted there.

Could you port this to circle?

At the very least it will need to be tested against python 3.5.2 as that's the primary version used to run taps and targets. The main way I know how to do that is actually to run an ubuntu 16.04 image like so but there may be a better way.

I'm a little leery of the use of miniconda as that's not part of our standard tooling. Is there a reason we're using that?

OriHoch commented 5 years ago

Hi, I'm just used to working with Travis, don't think I'll have time soon to port to Circle

Travis is free for open source projects, so if you merge it and enable travis it will work alongside Circle and give another indication regarding compatibility with Python versions (which is what I needed to integrate with Singer..)

Python 3.5.2 is included in the travis tests, you can see here - https://travis-ci.org/OriHoch/singer-python/builds/444822592 and you can easily add any Python version (supported by conda) to the .travis.yml

Conda is very useful for testing because it provides a "clean" Python environment, separated from system dependencies and libraries, as opposed to virtualenv which only separates Python dependencies. It also makes it easier to test multiple Python versions and ensure compatibility with Windows / Mac.

OriHoch commented 5 years ago

BTW, the Makefile ensure Python version is 3.4.3, maybe need to change it to 3.5.2?

timvisher commented 5 years ago

Thanks for the info! If we have any time maybe we'll be able to port it to circle then since we have more expertise with that tech.

Hopefully someone familiar with both can come along and finish it up. It would be very useful to have testing across all those versions.

timvisher commented 5 years ago

Also, regarding 3.5.2, you're right of course and that has been done in this PR. https://github.com/singer-io/singer-python/pull/82