Continuous integration and delivery for WoA

This page captures the requirements and challenges for deploying CI/CD for WoA open-source projects.

CI/CD requirement for Open source projects

Most of the open-source projects prefer to use publically available cloud instances for deploying CI/CD for their projects. There are no public cloud instances available for WoA yet. The only option at the moment is to use self-hosted runners with major CI/CD services but since they are hard to maintain open-source projects only accept them if there is a strong demand for the platform.

Cloud Services

Most open-source projects use one of the following for windows testing

  • Github Actions

  • Azure Pipeline

  • Appveyor

  • Travis

WoA instances need to be available with one of the above cloud services for deployment.

Virtual Environment Requirement

At least following toolchain and runtime are required for WoA instances in the cloud

  • Windows 11 OS

  • Visual Studio 2019

    • ARM64/x64/x86 C++ toolchain

  • Visual Studio 2017 with ARM64 C++ toolchain

  • LLVM (WoA)

  • Python

  • Rust

  • Powershell

  • Cmd

  • NuGet

  • CMake

  • Git

  • Ninja

  • Mercurial

  • Perl

Cloud Availability and Instances

There are many open-source projects which would require WoA instances for deploying CI/CD. Some of the main ones required for enabling the python ecosystem are given below but this list is growing very fast. Most of the repository has good CI traffic and we expect a huge number of instances are required for supporting them.

Project

Reference

Impact

Alternatives

Project

Reference

Impact

Alternatives

1

CPython

https://github.com/python/cpython

LTS blocked by cloud CI

  • Cross-compilation

2

Numpy

https://github.com/numpy/numpy

LTS blocked by cloud CI

 

3

CFFI

PyPy / cffi · GitLab

LTS blocked by cloud CI

 

4

lxml

https://github.com/lxml/lxml

LTS blocked by cloud CI

 

5

Apache Arrow

https://github.com/apache/arrow/

LTS blocked by cloud CI

  • Cross-compilation

6

greenlet

GitHub - python-greenlet/greenlet: Lightweight in-process concurrent programming

LTS blocked by cloud CI

 

7

Pywin32

GitHub - mhammond/pywin32: Python for Windows (pywin32) Extensions

LTS blocked by cloud CI

 

8

Maturin

GitHub - PyO3/maturin: Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages

 

  • Cross-compilation

9

Pywinpty

GitHub - andfoy/pywinpty: Pseudoterminals for Windows in Python

LTS blocked by cloud CI

 

10

cibuildwheel

GitHub - pypa/cibuildwheel: 🎡 Build Python wheels for all the platforms with minimal configuration.

LTS blocked by cloud CI

 

11

Pillow

GitHub - python-pillow/Pillow: Python Imaging Library (Fork)

 

 

12

OpenBLAS

GitHub - OpenMathLib/OpenBLAS: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

LTS blocked by cloud CI

 

13

FreeType

GitHub - freetype/freetype: Official mirror of https://gitlab.freedesktop.org/freetype/freetype

 

 

14

ZeroMQ

GitHub - zeromq/libzmq: ZeroMQ core engine in C++, implements ZMTP/3.1

LTS blocked by cloud CI

  • Cross-compilation

15

Pyzmq

GitHub - zeromq/pyzmq: PyZMQ: Python bindings for zeromq

LTS blocked by cloud CI

 

16

OpenSSL

https://github.com/openssl/openssl/

LTS blocked by cloud CI

  • Cross-compilation

17

Cryptography

https://github.com/pyca/cryptography/

LTS blocked by cloud CI

 

18

Pyopenssl

https://github.com/pyca/pyopenssl/

LTS blocked by cloud CI

 

19

Libsodium

https://github.com/jedisct1/libsodium

LTS blocked by cloud CI

  • Cross-compilation

20

pycryptodome

https://github.com/Legrandin/pycryptodome

PR adoption blocked by cloud CI

 

21

Goes

https://github.com/libgeos/geos

 

  • Cross-compilation

22

Shapely

https://github.com/shapely/shapely

 

 

 

Â