
Hi All, We might want to take a look at testing/building on AZURE <https://azure.microsoft.com/en-us/services/devops/pipelines/?&OCID=AID736750_SEM_CmoL6wVZ>. Probably worth exploring, although it is hard to find all information. IIRC, we got an offer from Microsoft along these lines a couple of years ago when we were looking to support MSVC. Chuck

Could initially try just adding some "bonus" jobs (that are useful / nice, but we can't afford to add to current CI load) as a trial maybe, and if the free version or a deal / offer on better services proves more expedient than what we currently have then progressively migrate if / as appropriate. Would also be cool to have native ppc64 arch in CI, but I checked briefly with IBM and no such integration exists with github as far as the contact knew. On Wed, 12 Sep 2018 at 17:03, Charles R Harris <charlesr.harris@gmail.com> wrote:

On 09/12/2018 08:14 PM, Tyler Reddy wrote:
Hi Tyler, ppc64 CI is available through OSUOSL. Earlier this year I requested a ppc64be test server through them, for numpy use, see this email and the links therein: https://mail.python.org/pipermail/numpy-discussion/2018-January/077570.html At the time I didn't sign up for CI because my focus was the test server, but I think it is still very much an option to ask for CI if we want. I don't yet have the time to do it myself, but I think anyone interested could do it pretty easily. Incidentally, the test server is still available to any numpy devs who need it, just ping me for access. Cheers, Allan

On Wed, Sep 12, 2018 at 8:33 PM Tyler Reddy <tyler.je.reddy@gmail.com> wrote:
Hi Allan,
That's pretty cool -- I should follow-up on the CI part of it!
It's quite nice to have access to more exotic hardware, but I'd recommend not to add anything to our CI setup that's not a fully hosted service that we control via a simple config file plus clicking some buttons on a web interface once. Custom code and server credentials/maintenance stuff should be avoided - always becomes painful at some point. Cheers, Ralf

I just finished adding support to the Numba repo for Azure Pipelines: https://github.com/numba/numba/pull/3303 The "free for open source" tier is 10 concurrent jobs that can run up to 60 minutes each (although the website says 30 minutes), and no limit on minutes per month. Like the other CI services, it uses YAML files to define the build and test process. I found the documentation of the YAML pipeline spec to be large, but still missing a number of small details and explanations about how features worked together. That said, the build performance is *significantly* better than Travis CI and AppVeyor for all 3 platforms, and the convenience of all major platforms going through one service is very nice. Despite not liking the UI quite as much as Travis CI, I think Numba will likely switch completely over to Azure assuming the free offering continues to be this good. If you go beyond the free tier, you can connect self-managed build workers to the same system, but the build agent is written in C#, so I'm not sure how portable it is to ARM or PPC yet. On Wed, Sep 12, 2018 at 7:02 PM, Charles R Harris <charlesr.harris@gmail.com
wrote:

Also, if anyone is curious what the CI interface looks like for the results of a finished build, here's the Numba build from that PR: https://dev.azure.com/numba/numba/_build/results?buildId=34&view=logs On Wed, Sep 12, 2018 at 7:25 PM, Stanley Seibert <sseibert@anaconda.com> wrote:

On Wed, Sep 12, 2018 at 7:32 PM, Charles R Harris <charlesr.harris@gmail.com
wrote:
Yes, it was pretty straightforward. They seem to be using the simplistic definition of "public repository == open source", so there was no verification step. I was able to create a project associated with the numba organization on Github. It seems to still require that you have Microsoft accounts, and manage permissions on those, rather than inheriting the settings from your Github repositories.

On Wed, Sep 12, 2018 at 7:30 PM Stanley Seibert <sseibert@anaconda.com> wrote:
So is the account set up in your name? What do you mean "manage permissions", did you need to add names to the account via Microsoft and does everyone accessing the account need to have a Microsoft account? It would be helpful if you could go through the procedure step-by-step. Chuck

I'm still trying to wrap my head around the security model here. The onboarding wizard makes it pretty easy to get started, but the UI afterwards has a lot of complexity for managing fine grained permissions. As I understand it, I made a "numba" project with my Microsoft account, but I can add other Microsoft accounts to the project and give them varying access to administer the project. None of these user accounts or permissions connect directly to Github accounts, so that is annoying if you have a large core dev team you want to give permission to manage builds. They will all need Microsoft accounts, and you will have to grant them admin access to the project. (Still trying to figure out how to do that for Numba...) Azure Pipeline's connection to Github itself (to post CI status under PRs, etc) can be done either by granting permission via a Github user's account, or by installing it as an "app" in the Github organization, which is the route I opted for. On Thu, Sep 13, 2018 at 8:13 AM, Charles R Harris <charlesr.harris@gmail.com
wrote:

Another minor annoyance is that the link on the Github "Checks" page that says "View More Details on Azure Pipelines" takes you to a login page, which then forwards you to the public (no login required) pipeline build results page. As a result, people might not realize you can view the build results for public projects without a Microsoft account, so you'll probably want to put a build status badge with a direct link somewhere prominent in the README. On Thu, Sep 13, 2018 at 9:25 AM, Stanley Seibert <sseibert@anaconda.com> wrote:

On Thu, Sep 13, 2018 at 8:30 AM Stanley Seibert <sseibert@anaconda.com> wrote:
Does Azure Pipeline respond to the Github hooks? We have hooks for all the other testing sites. Thanks for the continuing updates, you are one of the first explorers and anything you can report back is of great help to the rest of us.

On Thu, Sep 13, 2018 at 9:48 AM, Charles R Harris <charlesr.harris@gmail.com
wrote:
I added Azure Pipelines as a "Github App" (or rather their setup wizard did), which does similar things to web hooks, but for the entire Github organization. I think if had used their other setup method, it would have installed as a Github webhook. Either way, the behavior is the same, though. The Azure Pipeline builder automatically responds to Github events like commits to master and new/updated PRs by running the pipeline, and then updating the PR "checks" accordingly with the results. I should also note that if someone adds Azure Pipeline support to NumPy's repo and has a question, tag the product manager for Azure Pipelines (github ID: @chrisrpatterson) in your PR. He found the Numba PR where we added Azure support, and was able to escalate one bug we had with the Ubuntu workers very quickly. They seem to be very eager to help adoption by the open source community.

Could initially try just adding some "bonus" jobs (that are useful / nice, but we can't afford to add to current CI load) as a trial maybe, and if the free version or a deal / offer on better services proves more expedient than what we currently have then progressively migrate if / as appropriate. Would also be cool to have native ppc64 arch in CI, but I checked briefly with IBM and no such integration exists with github as far as the contact knew. On Wed, 12 Sep 2018 at 17:03, Charles R Harris <charlesr.harris@gmail.com> wrote:

On 09/12/2018 08:14 PM, Tyler Reddy wrote:
Hi Tyler, ppc64 CI is available through OSUOSL. Earlier this year I requested a ppc64be test server through them, for numpy use, see this email and the links therein: https://mail.python.org/pipermail/numpy-discussion/2018-January/077570.html At the time I didn't sign up for CI because my focus was the test server, but I think it is still very much an option to ask for CI if we want. I don't yet have the time to do it myself, but I think anyone interested could do it pretty easily. Incidentally, the test server is still available to any numpy devs who need it, just ping me for access. Cheers, Allan

On Wed, Sep 12, 2018 at 8:33 PM Tyler Reddy <tyler.je.reddy@gmail.com> wrote:
Hi Allan,
That's pretty cool -- I should follow-up on the CI part of it!
It's quite nice to have access to more exotic hardware, but I'd recommend not to add anything to our CI setup that's not a fully hosted service that we control via a simple config file plus clicking some buttons on a web interface once. Custom code and server credentials/maintenance stuff should be avoided - always becomes painful at some point. Cheers, Ralf

I just finished adding support to the Numba repo for Azure Pipelines: https://github.com/numba/numba/pull/3303 The "free for open source" tier is 10 concurrent jobs that can run up to 60 minutes each (although the website says 30 minutes), and no limit on minutes per month. Like the other CI services, it uses YAML files to define the build and test process. I found the documentation of the YAML pipeline spec to be large, but still missing a number of small details and explanations about how features worked together. That said, the build performance is *significantly* better than Travis CI and AppVeyor for all 3 platforms, and the convenience of all major platforms going through one service is very nice. Despite not liking the UI quite as much as Travis CI, I think Numba will likely switch completely over to Azure assuming the free offering continues to be this good. If you go beyond the free tier, you can connect self-managed build workers to the same system, but the build agent is written in C#, so I'm not sure how portable it is to ARM or PPC yet. On Wed, Sep 12, 2018 at 7:02 PM, Charles R Harris <charlesr.harris@gmail.com
wrote:

Also, if anyone is curious what the CI interface looks like for the results of a finished build, here's the Numba build from that PR: https://dev.azure.com/numba/numba/_build/results?buildId=34&view=logs On Wed, Sep 12, 2018 at 7:25 PM, Stanley Seibert <sseibert@anaconda.com> wrote:

On Wed, Sep 12, 2018 at 7:32 PM, Charles R Harris <charlesr.harris@gmail.com
wrote:
Yes, it was pretty straightforward. They seem to be using the simplistic definition of "public repository == open source", so there was no verification step. I was able to create a project associated with the numba organization on Github. It seems to still require that you have Microsoft accounts, and manage permissions on those, rather than inheriting the settings from your Github repositories.

On Wed, Sep 12, 2018 at 7:30 PM Stanley Seibert <sseibert@anaconda.com> wrote:
So is the account set up in your name? What do you mean "manage permissions", did you need to add names to the account via Microsoft and does everyone accessing the account need to have a Microsoft account? It would be helpful if you could go through the procedure step-by-step. Chuck

I'm still trying to wrap my head around the security model here. The onboarding wizard makes it pretty easy to get started, but the UI afterwards has a lot of complexity for managing fine grained permissions. As I understand it, I made a "numba" project with my Microsoft account, but I can add other Microsoft accounts to the project and give them varying access to administer the project. None of these user accounts or permissions connect directly to Github accounts, so that is annoying if you have a large core dev team you want to give permission to manage builds. They will all need Microsoft accounts, and you will have to grant them admin access to the project. (Still trying to figure out how to do that for Numba...) Azure Pipeline's connection to Github itself (to post CI status under PRs, etc) can be done either by granting permission via a Github user's account, or by installing it as an "app" in the Github organization, which is the route I opted for. On Thu, Sep 13, 2018 at 8:13 AM, Charles R Harris <charlesr.harris@gmail.com
wrote:

Another minor annoyance is that the link on the Github "Checks" page that says "View More Details on Azure Pipelines" takes you to a login page, which then forwards you to the public (no login required) pipeline build results page. As a result, people might not realize you can view the build results for public projects without a Microsoft account, so you'll probably want to put a build status badge with a direct link somewhere prominent in the README. On Thu, Sep 13, 2018 at 9:25 AM, Stanley Seibert <sseibert@anaconda.com> wrote:

On Thu, Sep 13, 2018 at 8:30 AM Stanley Seibert <sseibert@anaconda.com> wrote:
Does Azure Pipeline respond to the Github hooks? We have hooks for all the other testing sites. Thanks for the continuing updates, you are one of the first explorers and anything you can report back is of great help to the rest of us.

On Thu, Sep 13, 2018 at 9:48 AM, Charles R Harris <charlesr.harris@gmail.com
wrote:
I added Azure Pipelines as a "Github App" (or rather their setup wizard did), which does similar things to web hooks, but for the entire Github organization. I think if had used their other setup method, it would have installed as a Github webhook. Either way, the behavior is the same, though. The Azure Pipeline builder automatically responds to Github events like commits to master and new/updated PRs by running the pipeline, and then updating the PR "checks" accordingly with the results. I should also note that if someone adds Azure Pipeline support to NumPy's repo and has a question, tag the product manager for Azure Pipelines (github ID: @chrisrpatterson) in your PR. He found the Numba PR where we added Azure support, and was able to escalate one bug we had with the Ubuntu workers very quickly. They seem to be very eager to help adoption by the open source community.
participants (5)
-
Allan Haldane
-
Charles R Harris
-
Ralf Gommers
-
Stanley Seibert
-
Tyler Reddy