Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

All development and new releases blocked: migrating from Travis to some other CI provider #422

Closed
3 tasks done
skvark opened this issue Dec 2, 2020 · 18 comments
Closed
3 tasks done
Assignees

Comments

@skvark
Copy link
Member

skvark commented Dec 2, 2020

Background: https://www.jeffgeerling.com/blog/2020/travis-cis-new-pricing-plan-threw-wrench-my-open-source-works

It's not possible to use Travis to build the Linux and macOS wheels due to changes in Travis pricing.

To do:

  • Select a new CI provider
  • Check if it is possible to use multibuild with the new CI provider
  • Migrate the Travis side of the build toolchain to the new CI provider

Related issues:

#421

@skvark
Copy link
Member Author

skvark commented Dec 2, 2020

Going see this one through before starting any migration process: #366

@skvark
Copy link
Member Author

skvark commented Dec 6, 2020

It seems that Travis is ignoring also much larger projects so it doesn't look like I could use Travis in the future considering that I run this project mostly alone and I would need most likely millions of "Travis credits" per year to keep the builds running.

You can find a lot more similar issues via Github search in other repositories. Github Actions, Azure Pipelines and CircleCI are probably worth taking a look at as alternatives.

@skvark
Copy link
Member Author

skvark commented Dec 6, 2020

Current situation is that Travis removed for some reason all the credits I already had in place (#366 (comment)). Due to this, I cannot run any Linux or macOS builds.

I won't be doing any development effort towards this project during this month. There will be no new releases, PRs will not be reviewed etc. If there is some relevant issues / comments, I might answer to them. I'll check in January 2021 if it is possible to continue the project via alternative CI solutions.

@skvark skvark pinned this issue Dec 6, 2020
@skvark skvark changed the title Migrating from Travis to some other CI provider All development and new releases blocked: migrating from Travis to some other CI provider Dec 6, 2020
@skvark
Copy link
Member Author

skvark commented Dec 8, 2020

It seems we have a final confirmation that Travis has stopped all OSS credit allocations: https://twitter.com/james_hilliard/status/1336081776691843072

@johnthagen
Copy link
Contributor

johnthagen commented Dec 21, 2020

From my experience the two most popular alternatives are:

Edit: Per #366 (comment) a close reading of the GitHub actions docs does make it seem that public repos are not counted against the limit.

@skvark
Copy link
Member Author

skvark commented Jan 4, 2021

I guess Github Actions is the best option since there are no limits for open source projects. The only issue I see is that ARM builds cannot be done currently, but ARM runners should be available during Q1 2021: github/roadmap#95.

@asmorkalov asmorkalov self-assigned this Feb 9, 2021
@asmorkalov asmorkalov unpinned this issue Feb 9, 2021
@hannesa2
Copy link

but ARM runners should be available during Q1 2021: github/roadmap#95.

It #95 is now closed. But to be honest it's not 100% clear for me. Does it mean the integration to ARM build can be done now ?

@skvark
Copy link
Member Author

skvark commented Mar 19, 2021

It seems that the Github roadmap was modified and ARM support was not implemented (check the roadmap issue edit log) so the ARM issue remains for future builds.

There are already opencv-python wheels for arm64 for the latest release (4.5.1.48) in PyPI (see: https://github.com/opencv/opencv-python/releases/tag/48). Those were built in Travis when that was still possible.

@hannesa2
Copy link

hannesa2 commented Mar 19, 2021

There are already opencv-python wheels for arm64 for the latest release (4.5.1.48) in PyPI

Sorry I failed with this apple/tensorflow_macos#67 (comment) (I'm not an experienced python dev)

Is there a better way ?

@skvark
Copy link
Member Author

skvark commented Mar 19, 2021

There are no ARM wheels for the latest macOS devices. arm64 wheels are currently provided only for Linux. Please see: #429

@hannesa2
Copy link

I did a look on current .travis.yml Puhh that much variables, eg, what is this ?
- SDIST=0 here

If there would be the build reduced to a single script (eg here), without variable handling in CI script, a jump from one CI-system to an other CI-system would be much more easy ! (A jump to Github action will be not the last one in the future)

But I'm not able to build such a script, I've too less knowledge what's to do on openCV here. -sorry-

@skvark
Copy link
Member Author

skvark commented Mar 19, 2021

The build matrix needs various variables and they need to be defined somewhere. Usually, the place is the CI system config file (SDIST means source distribution which is by default false since it needs to be created just once for each package variant).

Please note that there's no way to build ARM wheels for macOS currently because build infrastructure and tooling lags behind. Similarly, NumPy is a hard dependency for the OpenCV builds, and also they are missing pre-built macOS ARM wheels. Apple Silicon is such a new platform that it takes some time to get the whole software ecosystem in sync with it.

@johnthagen
Copy link
Contributor

It looks like OpenCV 4.5.2 was just released: https://github.com/opencv/opencv/releases/tag/4.5.2

@asmorkalov
Copy link
Collaborator

@johnthagen Yes, Alalek pushed tags to the repository and published binaries. @sergregory Is working on Python packages right now.

@asmorkalov asmorkalov assigned sergregory and unassigned asmorkalov Apr 8, 2021
@sergregory
Copy link
Collaborator

#470 changes the build infrastructure from Travis & Appveyour to Github Actions. However, with this transition we miss:

  • aarch64 packages
  • x86 packages for Linux
    Personally, I think the latter ones are of minor importance and we can stop providing them. What about aarch64 - I'm working on the possible options now.

@johnthagen
Copy link
Contributor

johnthagen commented Apr 24, 2021

For what it's worth (single user), I think x86 (I presume you mean 32-bit vs x86-64) is fine to drop. In my mind having a health CI system is much more valuable. If people really need x86, they can still build from sdist?

For example, you can't even download official Ubuntu 32-bit ISOs any longer.

@johnthagen
Copy link
Contributor

Now that 4.5.2 has been successfully released, should this issue be closed? https://pypi.org/project/opencv-python/4.5.2.52/

@asmorkalov
Copy link
Collaborator

Finally migrated to Github Actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants