Hey there Robert, Would it be possible to increase CI quotas for NuttX? Due to "AI assisted" increase in changes amount we cannot at the same time limit the CI usage because that would threaten the whole project.
This CI overload happened several times before and Lup fixed it (see https://lupyuen.org/). CI was improved a lot in recent ~2 years to catch bugs that slipped the basic build but then after release was made showed up in various places and architectures. Whole CI testing scripts were replaced with Raiden's NTFC (https://github.com/apache/nuttx-ntfc). etc etc etc. We limited ourselves as much as possible to stay withing the limits but the situation changed too. Due to amount of changes "supported by AI" no only CI but also reviewers are overwhelmed. Some maintainers openly stated they will skip AI assisted PRs. Lup resigned from CI maintenance and Simbit is left alone. Alin also considered leaving release engineer position due to untested merges when backporting form master to 13.0.0, 13.0.1, 13.1.0. These were caused by "AI assisted CI improvements" that made Lup leave in the first place. So we already see the personal impact here too!! We managed to fix the situation in the past but at the moment and in future it gets harder and harder if possible at all. I do not see a good optimization here for a such a big project like NuttX that would not compromise even basic testing quality that we limit ourselves already. We need more CI resources from the ASF. This is really enormous project. We all work for free here in our free time. We need better tools to cope with changing reality. NuttX is really conservative project and we respect every possible and available resource. Please understand that we got several times more changes due to this AI tooling and we cannot at the same time be expected to limit the CI use because that CI is our first and best line of defense both for contributors, developers and reviewers. Best regards, Tomek -- CeDeROM, SQ7MHZ, http://www.tomek.cedro.info On Fri, Oct 23, 2026 at 8:53 AM Robert Thomson <[email protected]> wrote: > > Hi Nuttx project, > > Further to my last mail of 2026-08-03 20:09: > https://lists.apache.org/thread.html/cncnnxz5lvfyz7of8qgm2cq875fxp6f9 > , we are seeing your project at the top of the list for consumption of > GitHub hosted Actions runners for the past week, 50% higher than the > 2nd most consuming project. > > In addition to the information I provided last time, I have included > some suggestions from prompting Claude to examine your project repo's > workflow code thus, "Analyze the GitHub Actions workflows in this repo > and suggest changes that would be beneficial for the goal of a) > Reducing the number of concurrent workflow jobs started and b) The > duration of the jobs that do start https://github.com/apache/nuttx " > > The suggested changes are listed below, of course generated by GenAI, > so use your discretion and own reading there and I am no GitHub > Actions SME, so have not curated them, just listed them here. > > Note, there is also now a skill available that has been developed by > the magpie project which can be used to give more detailed feedback on > CI: > https://github.com/apache/magpie/blob/main/docs/repo-health/README.md#workflow-optimization-experimental > > Make every effort to optimise your usage ASAP as the near constant > 100% utilisation of our available GitHub hosted runner jobs is making > it practically impossible for all projects to get their CI jobs to > start and complete in a reasonable length of time, and it is incumbent > on all projects to do their part to help other projects get their fair > share of this limited resource. > > Thanks. > Kind regards, > -Bob Thomson, > on behalf of ASF Infrastructure > > Apache NuttX > > Fewer concurrent jobs > > In Fetch-Source, map changed paths to board groups (using the globs in > tools/ci/testlist/*.dat) and pass the result to the Linux matrix. This > replaces the label-based selection in arch.yml, which only shrinks the > matrix for PRs labeled exactly Arch+Size or Board+Size. > Replace the four *-Arch selector jobs with one job that outputs all > selections. Delete macOS-Arch and the macOS job, since arch.yml always > skips macOS. > Add max-parallel: 3 to MemBrowse analyze, and gate it on the same > board selection or on Build succeeding. > Add a paths: filter (**.py, **.yml, **.yaml, setup.cfg) to lint.yml. > If it’s a required check, adjust branch protection first. > Add github.event.workflow_run.conclusion != 'cancelled' to the if: in > depends-on-comment.yml. > In membrowse-comment.yml, check the step if: env.MEMBROWSE_API_KEY != > ''. A step’s if likely can’t see its own env:, so the step may never > run. > > Shorter jobs > > Make PR jobs restore-only for ccache (actions/cache/restore). Add a > nightly job on master that saves it under a stable key, since PRs > currently start cold. > Change the Linux artifact upload from if: always() to if: failure(), > and set retention-days. > Replace fetch-depth: 0 in check.yml and lint.yml with a blobless > filter or a limited depth. > Add timeout-minutes to the Linux and MemBrowse jobs. > Cache or bake into the image the per-job pip install ntfc and > test-case clone, and enable buildx caching in docker_linux.yml.
