> If compilation errors increases, this just means one thing: Some
developers send untested code changes that were not verified properly
before submission by said developers.

I agree, but is verification of every aspect of the OS possible for a
single contributor?
I don't think so. Just compiling all possible configurations affected by
the change seems unrealistic,
verifying all affected boards on HW is even less possible. Therefore, a
hardware test farm would be a great
helps, but I doubt it'll ever happen without the support from the companies
relying on NuttX.

> The pace of contributions is too high. Instead it should match what
reviewers and maintainers can maintain.
> My solution is human: Develop slower. Aiming for careless growth is not
a good thing in general.

This makes sense, but comes with a huge risk: the project may die.
Slow development -> companies less interested in the project -> fewer
contributors/reviewers -> even slower development
NuttX is not copyleft, so the incentive to contribute changes is lower than
in e.g. Linux.

I don't think we even have enough reviewers to cover every part of the OS.
Let's say ports of chips added by a committer who appears here a few times
a year,
code that no one else knows and has no way to test.

> If a shared open source project cannot follow the path of the most
active developers, then these developers should work on their own fork,
and only submit proper contributions to upstream.

I think that's exactly how it works now. But we're back to the problem I'm
talking about:
NuttX is too complicated to test and verify all possible implications of a
given change without automation.
Contributor changes are most likely being tested in some way, but testing
all
possible cases is not physically possible.

> Thats how linux work. If you sent non functional pull requests to linus
torvalds, you would be flamed for sending garbage.

Yeah, we are too nice here :)

śr., 23 paź 2024 o 10:59 Sebastien Lorquet <sebast...@lorquet.fr>
napisał(a):

> Hi,
>
> This is a complex topic and I do not think it can be solved by tech only.
>
> If compilation errors increases, this just means one thing: Some
> developers send untested code changes that were not verified properly
> before submission by said developers.
>
> Developers sending bad code sounds inacceptable to me.
>
>
> The pace of contributions is too high. Instead it should match what
> reviewers and maintainers can maintain.
>
> My solution is human: Develop slower. Aiming for careless growth is not
> a good thing in general.
>
>
> If a shared open source project cannot follow the path of the most
> active developers, then these developers should work on their own fork,
> and only submit proper contributions to upstream.
>
> Thats how linux work. If you sent non functional pull requests to linus
> torvalds, you would be flamed for sending garbage.
>
>
> Thats how it should be done here, imho.
>
> The solution is not more resources (you will never get them), it's less
> depletion of available resources.
>
>
> Sebastien
>
>
> On 23/10/2024 10:35, raiden00pl wrote:
> > Sebastian, the practice of recent days shows something completely
> > different. Without CI coverage,
> > compilation errors become common. Building all the configurations locally
> > to verify the changes will take
> > ages on most machines, and building for different host OSes is often not
> > possible for users.
> >
> > With such a complex project as NuttX, with many Kconfig options and
> > dependencies, such a trivial
> > thing as breaking the compilation is a HUGE problem.
> > Take all the NuttX features, multiply them across all the architectures
> and
> > boards and you have a project that is
> > impossible to track without automation and with such a small team.
> >
> > If you could propose a better solution (and implement it), everyone would
> > be happy.
> > Until then, we have what we have and it doesn't look like it will get any
> > better.
> > Although verification of simple changes has been greatly improved
> recently
> > thanks to Lup,
> > so one-line PRs affecting certain parts of the OS (like boards and archs)
> > should be much faster to verify.
> >
> > śr., 23 paź 2024 o 10:06 Sebastien Lorquet <sebast...@lorquet.fr>
> > napisał(a):
> >
> >> Hi,
> >>
> >> Maybe I'm not the only one thinking that more than 6 hours of build
> >> checks for one-liner pull requests is excessive?
> >>
> >> More so when said hours of work test nothing of the actual effect of
> >> these changes.
> >>
> >> :):):)
> >>
> >> Sebastien
> >>
> >>
> >> On 22/10/2024 15:49, Alan C. Assis wrote:
> >>> Hi Nathan,
> >>>
> >>> Thank you for the link. I don't know if this Pulsar will alleviate the
> CI
> >>> actions limitation that we are facing.
> >>>
> >>> I think someone from Apache needs to answer these questions Lup raised
> >>> here:
> >> https://github.com/apache/nuttx/issues/14376#issuecomment-2428107029
> >>> "Why are all ASF Projects subjected to the same quotas? And why can't
> we
> >>> increase the quota if we happen to have additional funding?"
> >>>
> >>> Many projects are not using it at all and still have the same quote
> that
> >>> NuttX (the 5th most active project under Apache umbrella).
> >>>
> >>> I remember Greg said that when moving to Apache we will have all the
> >>> resources we were looking for a long time, like: CI, hardware test
> >>> integration, funding for our events, travel assistance, etc.
> >>>
> >>> BR,
> >>>
> >>> Alan
> >>>
> >>> On Tue, Oct 22, 2024 at 10:18 AM Nathan Hartman <
> >> hartman.nat...@gmail.com>
> >>> wrote:
> >>>
> >>>> Hi folks,
> >>>>
> >>>> The following email was posted to builds@ today and might contain
> >>>> something
> >>>> relevant to reducing our GitHub runners? Forwarded message below...
> >>>>
> >>>> [1]
> >>>> https://lists.apache.org/thread/pnvt9b80dnovlqmrf5n10ylcf9q3pcxq
> >>>>
> >>>> ---------- Forwarded message ---------
> >>>> From: Lari Hotari <lhot...@apache.org>
> >>>> Date: Tue, Oct 22, 2024 at 7:08 AM
> >>>> Subject: Sharing Apache Pulsar's CI solution for Docker image sharing
> >> with
> >>>> GitHub Actions Artifacts within a single workflow
> >>>> To: <bui...@apache.org>
> >>>>
> >>>>
> >>>> Hi all,
> >>>>
> >>>> Just in case it's useful for someone else, in Apache Pulsar, there's a
> >>>> GitHub Actions-based CI workflow that creates a Docker image and runs
> >>>> integration tests and system tests with it. In Pulsar, we have an
> >> extremely
> >>>> large Docker image for system tests; it's over 1.7GiB when compressed
> >> with
> >>>> zstd. Building this image takes over 20 minutes, so we want to share
> the
> >>>> image within a single build workflow. GitHub Artifacts are the
> >> recommended
> >>>> way to share files between jobs in a single workflow, as explained in
> >> the
> >>>> GitHub Actions documentation:
> >>>>
> >>>>
> >>
> https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/storing-and-sharing-data-from-a-workflow
> >>>>    .
> >>>>
> >>>> To share the Docker image within a single build workflow, we use
> GitHub
> >>>> Artifacts upload/download with a custom CLI tool that uses the
> >>>> GitHub-provided JavaScript libraries for interacting with the GitHub
> >>>> Artifacts backend API. The benefit of the CLI tool for GitHub Actions
> >>>> Artifacts is that it can upload from stdin and download to stdout.
> >> Sharing
> >>>> the Docker images in the GitHub Actions workflow is simply done with
> the
> >>>> CLI tool and standard "docker load" and "docker save" commands.
> >>>>
> >>>> These are the shell script functions that Apache Pulsar uses:
> >>>>
> >>>>
> >>
> https://github.com/apache/pulsar/blob/1344167328c31ea39054ec2a6019f003fb8bab50/build/pulsar_ci_tool.sh#L82-L101
> >>>> In Pulsar CI, the command for saving the image is:
> >>>> docker save ${image} | zstd | pv -ft -i 5 | pv -Wbaf -i 5 | timeout
> 20m
> >>>> gh-actions-artifact-client.js upload
> >>>> --retentionDays=$ARTIFACT_RETENTION_DAYS "${artifactname}"
> >>>>
> >>>> For restoring, the command used is:
> >>>> timeout 20m gh-actions-artifact-client.js download "${artifactname}" |
> >> pv
> >>>> -batf -i 5 | unzstd | docker load
> >>>>
> >>>> The throughput is very impressive. Transfer speed can exceed 180MiB/s
> >> when
> >>>> uploading the Docker image, and downloads are commonly over 100MiB/s
> in
> >>>> apache/pulsar builds. It's notable that the transfer includes the
> >> execution
> >>>> of "docker load" and "docker save" since it's directly operating on
> >> stdin
> >>>> and stdout.
> >>>> Examples:
> >>>> upload:
> >>>>
> >>>>
> >>
> https://github.com/apache/pulsar/actions/runs/11454093832/job/31880154863#step:15:26
> >>>> download:
> >>>>
> >>>>
> >>
> https://github.com/apache/pulsar/actions/runs/11454093832/job/31880164467#step:9:20
> >>>> Since GitHub Artifacts doesn't provide an official CLI tool, I have
> >> written
> >>>> a GitHub Action for that purpose. It's available at
> >>>> https://github.com/lhotari/gh-actions-artifact-client.
> >>>> When you use the action, it will install the CLI tool available as
> >>>> "gh-actions-artifact-client.js" in the PATH of the runner so that it's
> >>>> available in subsequent build steps. In Apache Pulsar, we fork
> external
> >>>> actions to our own repository, so we use the version forked to
> >>>> https://github.com/apache/pulsar-test-infra.
> >>>>
> >>>> In Pulsar, we have been using this solution successfully for several
> >> years.
> >>>> I recently upgraded the action to support the GitHub Actions Artifacts
> >> API
> >>>> v4, as earlier API versions will be removed after November 30th.
> >>>>
> >>>> I hope this helps other projects that face similar CI challenges as
> >> Pulsar
> >>>> has. Please let me know if you need any help in using a similar
> solution
> >>>> for your Apache project's CI.
> >>>>
> >>>> -Lari
> >>>>
> >>>> (end of forwarded message)
> >>>>
> >>>> WDYT? Relevant to us?
> >>>>
> >>>> Cheers,
> >>>> Nathan
> >>>>
> >>>> On Thu, Oct 17, 2024 at 2:10 AM Lee, Lup Yuen <lu...@appkaki.com>
> >> wrote:
> >>>>> Hi All: We have an ultimatum to reduce (drastically) our usage of
> >> GitHub
> >>>>> Actions. Or our Continuous Integration will halt totally in Two
> Weeks.
> >>>>> Here's what I'll implement within 24 hours for `nuttx` and
> `nuttx-apps`
> >>>>> repos:
> >>>>>
> >>>>> (1) When we submit or update a Complex PR that affects All
> >> Architectures
> >>>>> (Arm, RISC-V, Xtensa, etc): CI Workflow shall run only half the jobs.
> >>>>> Previously CI Workflow will run `arm-01` to `arm-14`, now we will run
> >>>> only
> >>>>> `arm-01` to `arm-07`. (This will reduce GitHub Cost by 32%)
> >>>>>
> >>>>> (2) When the Complex PR is Merged: CI Workflow will still run all
> jobs
> >>>>> `arm-01` to `arm-14`
> >>>>>
> >>>>> (3) For NuttX Admins: We shall have only Four Scheduled Merge Jobs
> per
> >>>> day.
> >>>>> Which means I shall quickly cancel any Merge Jobs that appear. Then
> at
> >>>>> 00:00 / 06:00 / 12:00 / 18:00 UTC: I shall restart the Latest Merge
> Job
> >>>>> that I cancelled.  (This will reduce GitHub Cost by 17%)
> >>>>>
> >>>>> (4) macOS and Windows Jobs (msys2 / msvc): They shall be totally
> >> disabled
> >>>>> until we find a way to manage their costs. (GitHub charges 10x
> premium
> >>>> for
> >>>>> macOS runners, 2x premium for Windows runners!)
> >>>>>
> >>>>> We have done an Analysis of CI Jobs over the past 24 hours:
> >>>>>
> >>>>> - Many CI Jobs are Incomplete: We waste GitHub Runners on jobs that
> >>>>> eventually get superseded and cancelled
> >>>>>
> >>>>> - When we Half the CI Jobs: We reduce the wastage of GitHub Runners
> >>>>>
> >>>>> - Scheduled Merge Jobs will also reduce wastage of GitHub Runners,
> >> since
> >>>>> most Merge Jobs don't complete (only 1 completed yesterday)
> >>>>>
> >>>>> Please check out the analysis below. And let's discuss further in
> this
> >>>>> NuttX Issue. Thanks!
> >>>>>
> >>>>> https://github.com/apache/nuttx/issues/14376
> >>>>>
> >>>>> Lup
> >>>>>
> >>>>>
> >>>>>>> ---------- Forwarded message ---------
> >>>>>>> From: Daniel Gruno <humbed...@apache.org>
> >>>>>>> Date: Wed, Oct 16, 2024 at 12:08 PM
> >>>>>>> Subject: [WARNING] All NuttX builds to be turned off by October
> 30th
> >>>>>>> UNLESS...
> >>>>>>> To: <priv...@nuttx.apache.org>
> >>>>>>> Cc: ASF Infrastructure <priv...@infra.apache.org>
> >>>>>>>
> >>>>>>>
> >>>>>>> Hello again, NuttX folks.
> >>>>>>> This is a formal notice that your CI builds are far exceeding the
> >>>>>>> maximum resource use set out by our CI policies[1]. As you are
> >>>> currently
> >>>>>>> exceeding your limits by more than 300%[2] and have not shown any
> >>>> signs
> >>>>>>> of decreasing, we will be disabling GitHub Actions for your project
> >> on
> >>>>>>> October 30th unless you manage to get the usage under control and
> >>>> below
> >>>>>>> the established limits of 25 full-time runners in a single week.
> >>>>>>>
> >>>>>>> If you have any further questions, feel free to reach out to us at
> >>>>>>> priv...@infra.apache.org
> >>>>>>>
> >>>>>>> With regards,
> >>>>>>> Daniel on behalf of ASF Infra.
> >>>>>>>
> >>>>>>>
> >>>>>>> [1] https://infra.apache.org/github-actions-policy.html
> >>>>>>> [2] https://infra-reports.apache.org/#ghactions&project=nuttx
> >>>>>>>
>

Reply via email to