pearu/pylibtiff

Setting up Continuous Integration (CI)

jcfr opened this issue ยท 2 comments

jcfr commented

Hi @pearu ,

Thanks for maintaining the project ๐Ÿ‘ ๐Ÿ˜„

In the context of the @DigitalSlideArchive project, we would like to help improve pylibtiff by helping setup continuous integration for the three platforms Linux, macOS and Windows with the goal of automating its release on PyPI.

We envision the process to have the following steps/tasks:

  1. Setup continuous integration to test on the three platforms
  2. Setup infrastructure to generate wheels on the three platforms
  3. Setup infrastructure to automatically upload wheels on PyPI when a tag is pushed, and as a GitHub release when master is updated

task 1: CI on the three platforms

To move forward and incrementally improve the pylibtiff project, this coming week we would like to address task 1 in our fork to demonstrate the approach.

After your review and agree on the approach addressing task 1 (involving CI service like appVeyor, Travis and CircleCI), we will disable the CI service on our fork and help you setup the infrastructure on pearu/pylibtiff. (This also means that you would grant us access to cancel and manage jobs on the different CI services)

Now to give you more visibility, you also find below a description of task 2 and 3.

task 2: generating wheels

Since the current project has the capabilities to work with multiple version of libtiff, we were thinking to keep it like this. Note also that the testing infrastructure implemented in task1 would also run the tests for each version of tiff expected to be supported.

But to also accommodate users not willing to separately install the libtiff library, we were thinking to have an optional feature that could be installed specifying pylibtiff[builtin] (or similar name)

There are few more details to this but the gist is that we would still be using ctypes to resolve symbols.

We would also most likely introduce the use scikit-build to streamline the compilation of the binary extensions.

task 3: automatically upload wheels on PyPI

To support this, we would like to update the management of the version and transition to https://github.com/warner/python-versioneer

Once that is done, we would update the configuration files so that pushing a tag end up uploading the package on PyPI.

Thanks for reading, and let us know what you think,

We are looking forward working with you on pylibtiff

@manthey , @cdeepakroy and @jcfr

pearu commented

The plans look very good. Let me know if you need particular actions on my part.

pearu commented

I have set up CI on Travis and Appveyour, not on Circle CI for MacOS as it is not free.