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

chore: rename joerick/cibuildwheel -> pypa/cibuildwheel #682

Merged
merged 5 commits into from
May 24, 2021

Conversation

henryiii
Copy link
Contributor

@henryiii henryiii commented May 17, 2021

Doesn't change AppVeyor, might need to be special cased.

@henryiii henryiii added the needs-backport Can/should be ported to LTS branch label May 18, 2021
@henryiii
Copy link
Contributor Author

Going to wait until the CI points at the new repo to retrigger this.

@joerick joerick mentioned this pull request May 19, 2021
@henryiii
Copy link
Contributor Author

$ Apologies! Your build didn’t run because you haven’t selected a plan that includes macOS yet. Please change to a Performance Plan. - CircleCI

Did we get grandfathered into something? Or maybe you requested support since support from cibuildwheel helps them get customers, potentially? Etc.

@joerick
Copy link
Contributor

joerick commented May 19, 2021

CircleCI have a Mac open source offering, but you have to email them to ask for it. I suppose I'll have to do the same on behalf of PyPA.

Azure/Appveyor also needs sorting, getting late here so I'll have to pick that up tomorrow.

@henryiii
Copy link
Contributor Author

Can we move to travis-ci.com? I've finally seen my first migration (https://travis-ci.org/github/scikit-build/cmake-python-distributions), so maybe there's a way to trigger that?

@mayeut
Copy link
Member

mayeut commented May 20, 2021

Can we move to travis-ci.com ?

Seems like the good time to do so. @joerick, I can try to trigger that if you want me to.

@pradyunsg
Copy link
Member

I'd suggest avoiding Travis CI unless you want to regularly email them asking for "credits" to run jobs.

@pradyunsg
Copy link
Member

FWIW, Github Actions provides 5 MacOS workers, so if all you need is a Mac VM, you might be able to use that.

@henryiii
Copy link
Contributor Author

No, we test each CI system to make sure they all work - see the table https://github.com/pypa/cibuildwheel#usage. The point of the CircleCI job is to make sure we support CircleCI, not to make sure we support macOS (GHA covers all the main systems).

I think it should be easy to request time from the systems, because if we support system X, then users are more likely to choose system X. We've had good success asking for allowance before, I believe.

@mayeut
Copy link
Member

mayeut commented May 20, 2021

I'd suggest avoiding Travis CI unless you want to regularly email them asking for "credits" to run jobs.

The PSF has been paying the pypa organization plan since February. According to @di in pypa/packaging#395 (comment), the plug won't be pulled as long as they're are no better alternative. Of course, the cibuildwheel usage is a bit different than the one of pypa/manylinux or pypa/auditwheel but given its purpose and as @henryiii exposed, I'd say it fits with the others (I also see pypa/warehouse is still using Travis CI, maybe the transition to GHA is not over yet or, better safe than sorry ?)

@di
Copy link
Member

di commented May 20, 2021

I agree that cibuildwheel's usage of Travis is different than most our other projects and it makes sense to keep testing against Travis here. You should be able to on the PSF's plan now.

The only reason Warehouse is still using Travis is because we haven't removed it yet.

@joerick
Copy link
Contributor

joerick commented May 21, 2021

The only reason Warehouse is still using Travis is because we haven't removed it yet.

I think most open source projects are in this boat too. We previously discussed this in #653. I'm thinking the upcoming cibuildwheel 2.0 release would be a good time to drop support... would anyone be opposed to that?

BTW, the .org shutdown is now scheduled for May 31st, just a week away.

@henryiii
Copy link
Contributor Author

I don't like dropping support for Travis. It's still popular, it's still the best way to get alternate arches (~5x faster than emulation), and they have been pretty friendly toward open source if asked. Wheel building can be rare enough that you can fit within the free allowance. If someone doesn't like MS, then options are severely limited if you want to build all major platforms. And making sure we work on several systems helps us remain general.

If we have to bend over backwards to support them, or if it becomes a financial burden (we are providing something for them, basically), then we can drop them.

@joerick
Copy link
Contributor

joerick commented May 21, 2021

I think that if Travis were donating build time, that would be one thing. But as the PSF is paying, that does worry me a little bit - our CI usage is pretty heavy!

Each build looks something like this:

  minutes credits cost ($)
amd64 22 220 0.132
arm64 17 170 0.102
ppc64le 25 250 0.15
macos 4 200 0.12
windows 24 480 0.288
TOTAL 92 1320 0.792

Looking back over the build history, it's about 63 branch and 221 PR builds over the past 3 months. So roughly 95 builds per month = 125000 credits per month = $75 per month. This is probably an overestimate, because some builds were cancelled or failed early, but it's probably not too far off. Even if it's 50% of this, that's a bit concerning...

@henryiii
Copy link
Contributor Author

That would be up to @di and/or others; I'd start by asking Travis about it, I'd like to give them a chance to keep support; I think they would get a net gain by having first-class support from cibuildwheel.

@henryiii
Copy link
Contributor Author

I wonder if we can really limit the number of travis builds? Say making it only build on a "travisci" branch, and only syncing that branch every week or so?

@henryiii
Copy link
Contributor Author

Maybe we could even generalize this - make a runci branch, sync weekly with a GHA job, and then only run GHA on PRs and master/main/1.x. Most problems should be caught by GHA, and the rare problems that kill other CI systems should hopefully be easy enough to pin down over a week's worth of changes. And, if you intentionally are changing something you think might break, you could always sync the runci branch sooner.

@mayeut
Copy link
Member

mayeut commented May 21, 2021

I don't like dropping support for Travis. It's still popular, it's still the best way to get alternate arches (~5x faster than emulation)

Agreed. Apart from speed, there's also the occasional bug in qemu. I've seen this multiple times already.

and they have been pretty friendly toward open source if asked.

Well, I do not agree with this. You can see reports by different (major) OpenSource projects that their requests for credits for OSS were ignored, denied or delayed.

Looking back over the build history, it's about 63 branch and 221 PR builds over the past 3 months. So roughly 95 builds per month = 125000 credits per month = $75 per month. This is probably an overestimate, because some builds were cancelled or failed early, but it's probably not too far off. Even if it's 50% of this, that's a bit concerning...

The pypa plan is a 2 concurrent job plan for now so there are no credits involved.

If credits were involved arm64, ppc64le & s390x would now be 0 credits with the introduction of "Partner Queue Solution" 2 weeks ago (announced by ARM but could not find an announcement by IBM nor TravisCI, their billing doc has been updated).
IMHO, this mitigates a bit their position towards OSS for alternate arches (if IBM and ARM are paying the bill, this should hold but let's see where it goes).

@joerick
Copy link
Contributor

joerick commented May 22, 2021

I wonder if we can really limit the number of travis builds? Say making it only build on a "travisci" branch, and only syncing that branch every week or so?

Maybe, yeah. We did do some bodging around on Appveyor a while back too, when we had timeout errors - https://github.com/pypa/cibuildwheel/blob/master/appveyor.yml#L16 . But ideally, something without too much automation would be good.

@mayeut's comment does change things a bit, though-

The pypa plan is a 2 concurrent job plan for now so there are no credits involved.

Ah, I see! I thought their pricing was all usage based. So this plan wouldn't cover mac builds, but would give us unlimited credits for the rest. That makes me a bit more comfortable.

If credits were involved arm64, ppc64le & s390x would now be 0 credits with the introduction of "Partner Queue Solution" 2 weeks ago

Nice. So that makes continued testing of arm64, ppc64le (and s390x) a no-brainer - it genuinely is free for OSS.

That leaves x86_64 Linux, Mac and Windows. Well, Mac is gonna cost us credits, we'd have to email them to ask for some OSS credit. Linux and Windows would be covered by the PyPA under the existing plan.

Then we can continue to run Linux and Windows? Or drop it? I don't really mind too much. I'm inclined to drop the Mac support, repeatedly emailing and asking for credits doesn't seem all that fun...

@pradyunsg
Copy link
Member

pradyunsg commented May 22, 2021

@mayeut The Travis CI app is installed on pypa/cibuildwheel. Any specific reason you've requested (multiple times now) for it to be installed on all repositories on pypa?

@mayeut
Copy link
Member

mayeut commented May 22, 2021

@pradyunsg, activating it on cibuildwheel removed it from all other pypa repos...
Sorry for the inconvenience. I'm trying to find a way around this and was just about to write a message to pypa members about this.

Edit: Message sent on the pypa-committers mailing list: https://mail.python.org/archives/list/[email protected]/thread/V3KCCAOKE2ITQNWC6GZM73WRRLRMKIVG/

@pradyunsg
Copy link
Member

Ah, fair! I approved the first one, and I've been confused since about all the other requests. :)

@mayeut
Copy link
Member

mayeut commented May 22, 2021

The migration to travis-ci.com is done for cibuildwheel but builds are not starting with the reason "Owner pypa does not have enough credits.". I'm sending an email to travis-ci support to get this resolved.

@mayeut
Copy link
Member

mayeut commented May 22, 2021

I'm inclined to drop the Mac support, repeatedly emailing and asking for credits doesn't seem all that fun...

The migration to travis-ci.com is done for cibuildwheel but builds are not starting with the reason "Owner pypa does not have enough credits.". I'm sending an email to travis-ci support to get this resolved.

It also breaks all other builds if there are not enough credits only for macOS (the other builds being covered by the plan).
Opened #686 to drop macOS on travis-ci.

henryiii and others added 2 commits May 24, 2021 00:13
Note that it still has joerick/cibuildwheel - confusingly it's still within my appveyor account, but this is the new project that points to the pypa github repo
@YannickJadoul YannickJadoul force-pushed the henryiii/chore/renamepypa branch from b7575c4 to 00aa455 Compare May 23, 2021 22:13
@YannickJadoul
Copy link
Member

Rebased. As macOS on CircleCI was temporarily disabled (#685), thing should turn green now.

@YannickJadoul
Copy link
Member

A bit late to the party, but for now Travis CI seems settled, then? So this could probably get merged, soonish?

For what it's worth, my 2 cents: the alternative architectures are a good argument, but apart from that, if Travis is being annoying towards OSS (and us in particular), I don't really have an inclination to do any effort to keep supporting them. I'm not saying we should drop e.g. the TRAVIS environment variable detection or so, but being on a paying plan to support Travis seems silly to me.
So this could be mentioned in the docs as "Things probably work, but they make us pay to support their system. Submit a PR if you are using Travis CI and have a fix you want in." And actually, things will probably work. I think we already have a clause that says that, no?

Copy link
Contributor

@joerick joerick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've just done a few little fixups to reflect the latest CI changes. Should be good-to-go.

@mayeut
Copy link
Member

mayeut commented May 24, 2021

So this could be mentioned in the docs as "Things probably work, but they make us pay to support their system. Submit a PR if you are using Travis CI and have a fix you want in." And actually, things will probably work. I think we already have a clause that says that, no?

@YannickJadoul, see also comments in #686

Maybe the way to go is to test only what would be free (& hassle-free, i.e. not begging for credits) in Travis CI so only alternative architectures.

Copy link
Member

@mayeut mayeut left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, one minor remark about Azure/Appveyor

Comment on lines +8 to +10
[![Appveyor status](https://ci.appveyor.com/api/projects/status/gt3vwl88yt0y3hur/branch/master?svg=true)](https://ci.appveyor.com/project/joerick/cibuildwheel/branch/master)
[![CircleCI Status](https://img.shields.io/circleci/build/gh/pypa/cibuildwheel/master?logo=circleci)](https://circleci.com/gh/pypa/cibuildwheel)
[![Azure Status](https://dev.azure.com/joerick0429/cibuildwheel/_apis/build/status/pypa.cibuildwheel?branchName=master)](https://dev.azure.com/joerick0429/cibuildwheel/_build/latest?definitionId=4&branchName=master)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@joerick,

It seems a bit odd that AppVeyor & Azure are still referencing your account.
I know it's working so that's just a minor remark but if you have a bit more insight on this, I'd like to learn something.

Copy link
Contributor

@joerick joerick May 24, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it's a little strange - I'm not sure how Appveyor is defining their data model, but it seems that I create a project within 'joerick' even though I link it with an org project. Azure seems even more disconnected, I create an Azure project, then tie it to any CI system, so you could also create an Azure project that's driven from the same codebase. The link from this project to each CI is defined by the Webhooks in Github, so that's where the definitive list of CIs on this project is stored - https://github.com/pypa/cibuildwheel/settings/hooks

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the insight.
From the webhooks list you link to, gitlab seems to throw some errors. As it was working yesterday, should we consider this a temporary glitch and merge this or is there something more to look at ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine to squash & merge, and I could start the backport to 1.x (which likely will also need some of the CI changes). If GitLab has issues we can open a new PR.

@YannickJadoul
Copy link
Member

YannickJadoul commented May 24, 2021

@YannickJadoul, see also comments in #686

Maybe the way to go is to test only what would be free (& hassle-free, i.e. not begging for credits) in Travis CI so only alternative architectures.

Yup, I don't mind #686 (comment) at all ;-)

@henryiii henryiii merged commit 3be2d0c into master May 24, 2021
@henryiii henryiii deleted the henryiii/chore/renamepypa branch May 24, 2021 14:21
henryiii added a commit to henryiii/cibuildwheel that referenced this pull request May 24, 2021
* chore: rename joerick/cibuildwheel -> pypa/cibuildwheel

* Update Appveyor status badge markup

Note that it still has joerick/cibuildwheel - confusingly it's still within my appveyor account, but this is the new project that points to the pypa github repo

* Update Appveyor badge markup again

I went through a few passes to enable that project, here's the latest.

* Update Azure badge, also

* Update Travis badge to reference the .com

Co-authored-by: Joe Rickerby <[email protected]>
henryiii added a commit that referenced this pull request May 24, 2021
* chore: rename joerick/cibuildwheel -> pypa/cibuildwheel

* Update Appveyor status badge markup

Note that it still has joerick/cibuildwheel - confusingly it's still within my appveyor account, but this is the new project that points to the pypa github repo

* Update Appveyor badge markup again

I went through a few passes to enable that project, here's the latest.

* Update Azure badge, also

* Update Travis badge to reference the .com

Co-authored-by: Joe Rickerby <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-backport Can/should be ported to LTS branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants