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

GitHub - python/cpython: The Python programming language

LTS blocked by cloud CI

  • Cross-compilation

2

Numpy

GitHub - numpy/numpy: The fundamental package for scientific computing with Python.

LTS blocked by cloud CI

ย 

3

CFFI

PyPy / cffi ยท GitLab

LTS blocked by cloud CI

ย 

4

lxml

GitHub - lxml/lxml: The lxml XML toolkit for Python

LTS blocked by cloud CI

ย 

5

Apache Arrow

GitHub - apache/arrow: Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics

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

ย 

ย 

ย 

ย