So right now, the CircuitPython repo maintains integrity by compiling for each board and in each language to ensure that every PR will not break anything. For the Arduino libraries, it is usually compiled against a key set of boards. However, with Blinka which can run on so many platforms, while there are some checks in place, it seems like it's really more of a matter of time before something breaks for one platform or another. One way to reduce that may be to have additional GitHub actions in place.
This looks like it may be useful for testing a few different combinations: https://github.com/marketplace/actions/run-on-architecture. Not only are there different architectures, but also different distros such as Bullseye, Buster, and even Ubuntu. This will especially be useful if we can mock PlatformDetect (if needed) to force Blinka to think it is in certain hardware setups.
So right now, the CircuitPython repo maintains integrity by compiling for each board and in each language to ensure that every PR will not break anything. For the Arduino libraries, it is usually compiled against a key set of boards. However, with Blinka which can run on so many platforms, while there are some checks in place, it seems like it's really more of a matter of time before something breaks for one platform or another. One way to reduce that may be to have additional GitHub actions in place.
This looks like it may be useful for testing a few different combinations: https://github.com/marketplace/actions/run-on-architecture. Not only are there different architectures, but also different distros such as Bullseye, Buster, and even Ubuntu. This will especially be useful if we can mock PlatformDetect (if needed) to force Blinka to think it is in certain hardware setups.
What actually led me to this is I was wondering if we could have an easy way to recompile https://github.com/adafruit/libgpiod_pulsein as needed for both
armhf
(arm7+) andaarch4
processors as needed in https://github.com/adafruit/Adafruit_Blinka/tree/main/src/adafruit_blinka/microcontroller/bcm283x/pulseio, which could certainly be part of the improvements.