I am not familiar with buildbot ore this sort of setup so please forgive for some simple minded questions.
Is this SW CI or HW CI or both? How does the RPi/BBB/Laptop fit into the picture. Any Pictures? David -----Original Message----- From: Fabio Balzano [mailto:fa...@elfarolab.com] Sent: Friday, December 20, 2019 5:22 AM To: dev@nuttx.apache.org Subject: Re: [DISCUSS - NuttX Workflow] 2 hours is a configured parameter, it is to allow burst of commits, it can reduced to 0 if you need real time building, then the buildbot server can also provision remote testing of the builds. > On 20 Dec 2019, at 13:09, David Sidrane <david.sidr...@nscdg.com> wrote: > > Hi Fabio, > > What are the capabilities? > > It this 1 RPi/BBB per board nuttx board? > > David > > -----Original Message----- > From: Fabio Balzano [mailto:fa...@elfarolab.com] > Sent: Friday, December 20, 2019 5:06 AM > To: dev@nuttx.apache.org > Subject: Re: [DISCUSS - NuttX Workflow] > > Hello, > > yes the buildbot server is down, later today I will bring it up. Yes you > can > do remote builds using a RPI/BBB or similars or local builds performed by > the server itself. I can setup and maintain the server for the Nuttx > project > in case you think it is useful. > > Thank you so much > Fabio Balzano > >> On 20 Dec 2019, at 13:00, Alan Carvalho de Assis <acas...@gmail.com> >> wrote: >> >> Hi David, >> >> Sorry for scolding you in public as well, but I think we don't need to >> find guilt. >> >> So, I got the impression you were doing it to promote PX4 test >> workflow as the best solution for all the NuttX issues. >> >> And although 300K drones are a lot, there are many commercial products >> using NuttX. Many Sony audio recorders, Moto Z Snaps, Thermal >> printers, etc. Probably we have products that overcome that number. >> >> I think recently Fabio changed the buildbot link. BTW I just remember >> other alternative that Sebastien and I did about 3 years ago: >> >> https://bitbucket.org/acassis/raspi-nuttx-farm/src/master/ >> >> The idea was to use low cost Raspberry PIs as a distributed build test >> for NuttX. It worked fine! You just define a board file with the >> configuration you want to test and it is done. >> >> BR, >> >> Alan >> >>> On 12/20/19, David Sidrane <davi...@apache.org> wrote: >>> Hi Alan, >>> >>> Sorry if my intent was misunderstood. I am merely stating facts on were >>> we >>> are and how got there.I am not assigning blame. I am not forcing >>> anything >>> I >>> am giving some examples of how we can make it the project complete and >>> better. We can use all of it, some of it none of it. The is a group >>> decision. >>> >>> Also Pleases do fill us in on where we can see the SW CI & HW CI you >>> mentioned. Do you have links maybe be we can use it now? >>> >>> Again Sorry! >>> >>> David >>> >>>> On 2019/12/20 11:44:23, Alan Carvalho de Assis <acas...@gmail.com> >>>> wrote: >>>> Hi David, >>>> >>>>> On 12/20/19, David Sidrane <davi...@apache.org> wrote: >>>>> Hi Nathan, >>>>> >>>>> On 2019/12/20 02:51:56, Nathan Hartman <hartman.nat...@gmail.com> >>>>> wrote: >>>>>> On Thu, Dec 19, 2019 at 6:24 PM Gregory Nutt <spudan...@gmail.com> >>>>>> wrote: >>>>>>>>> ] A bad build system change can cause serious problems for a lot >>>>>>>>> of >>>>>> people around the world. A bad change in the core OS can destroy the >>>>>> good >>>>>> reputation of the OS. >>>>>>>> Why is this the case? Users should not be using unreleased code or >>>>>>>> be >>>>>> encouraged to use it.. If they are one solution is to make more >>>>>> frequent >>>>>> releases. >>>>>>> I don't think that the number of releases is the factor. It is time >>>>>>> in >>>>>>> people's hand. Subtle corruption of OS real time behavior is not >>>>>>> easily >>>>>>> testing. You normally have to specially instrument the software >>>>>>> and >>>>>>> setup a special test environment perhaps with a logic analyzer to >>>>>>> detect >>>>>>> these errors. Errors in the core OS can persists for months and in >>>>>>> at >>>>>>> least one case I am aware of, years, until some sets up the correct >>>>>>> instrumented test. >>>>>> >>>>>> And: >>>>>> >>>>>> On Thu, Dec 19, 2019 at 4:20 PM Justin Mclean >>>>>> <jus...@classsoftware.com> >>>>>> wrote: >>>>>>>> ] A bad build system change can cause serious problems for a lot >>>>>>>> of >>>>>> people around the world. A bad change in the core OS can destroy the >>>>>> good >>>>>> reputation of the OS. >>>>>>> >>>>>>> Why is this the case? Users should not be using unreleased code or >>>>>>> be >>>>>> encouraged to use it.. If they are one solution is to make more >>>>>> frequent >>>>>> releases. >>>>>> >>>>>> Many users are only using released code. However, whatever is in >>>>>> "master" >>>>>> eventually gets released. So if problems creep in unnoticed, >>>>>> downstream >>>>>> users will be affected. It is only delayed. >>>>>> >>>>>> I can personally attest that those kinds of errors are extremely >>>>>> difficult >>>>>> to detect and trace. It does require a special setup with logic >>>>>> analyzer >>>>>> or >>>>>> oscilloscope, and sometimes other tools, not to mention a whole setup >>>>>> to >>>>>> produce the right stimuli, several pieces of software that may have >>>>>> to >>>>>> be >>>>>> written specifically for the test.... >>>>>> >>>>>> I have been wracking my brain on and off thinking about how we could >>>>>> set >>>>>> up >>>>>> an automated test system to find errors related to timing etc. >>>>>> Unfortunately unlike ordinary software for which you can write an >>>>>> automated >>>>>> test suite, this sort of embedded RTOS will need specialized hardware >>>>>> to >>>>>> conduct the tests. That's a subject for another thread and i don't >>>>>> know >>>>>> if >>>>>> now is the time, but I will post my thoughts eventually. >>>>>> >>>>>> Nathan >>>>> >>>>> From the proposal >>>>> >>>>> "Community >>>>> >>>>> NuttX has a large, active community. Communication is via a Google >>>>> group at >>>>> https://groups.google.com/forum/#!forum/nuttx where there are 395 >>>>> members as >>>>> of this writing. Code is currently maintained at Bitbucket.org at >>>>> https://bitbucket.org/nuttx/. Other communications are through >>>>> Bitbucket >>>>> issues and also via Slack for focused, interactive discussions." >>>>> >>>>> >>>>>> Many users are only using released code. >>>>> >>>>> Can we ask the 395 members? >>>>> >>>>> I can only share my experience with NuttX since I began working on the >>>>> project in 2012 for multiple companies. >>>>> >>>>> Historically (based on my time on the project) releases - were build >>>>> tested >>>>> - by this I mean that the configurations were updated and the thus >>>>> created a >>>>> set of "Build Test vectors" BTV. Given the number of permutations >>>>> solely >>>>> based on the load time of >>>>> (http://nuttx.org/doku.php?id=documentation:configvars) with 95,338 >>>>> CONFIG_* >>>>> hits. Yes there are duplicates on the page and dependencies. This is >>>>> just >>>>> meant to give a number of bits.... >>>>> >>>>> The total space is very large >>>>> >>>>> The BTV space was very sparse coverage. >>>>> >>>>> IIRC Greg gave the build testing task a day of time. It was repeated >>>>> after >>>>> errors were found. I am not aware of any other testing. Are you? >>>>> >>>>> There were no Release Candidate (rc) nor alpha nor beta test that ran >>>>> this >>>>> code one real systems and very little, if any Run Test Vectors (RTV) - >>>>> I >>>>> have never seen a test report - has anyone? >>>>> >>>>> One way to look at this is Sporadic Integration. (SI) with limited BTV >>>>> and >>>>> minimal RTV. Total Test Vector Coverage TTVC = BTV + RTV; The ROI of >>>>> way >>>>> of working, from a reliability perspective was and is very small. >>>>> >>>>> A herculean effort Greg's part with little return: We released code >>>>> with >>>>> many significant and critical errors in it. See the ReleaseNotes and >>>>> the >>>>> commit log. >>>>> >>>>> Over the years Greg referred to TRUNK (yes it was on SVN) and master >>>>> as >>>>> his >>>>> "own sandbox" stating is should not be considered stable or >>>>> build-able. >>>>> This >>>>> is evident in the commit log. >>>> >>>> Please stop focusing on the people (Greg) and let talk about how the >>>> workflow. >>>> We are here to discuss how we can improve the process, we are not >>>> talking about throw away NuttX Build System and move to PX4. >>>> >>>> You are picturing something that is not true. >>>> >>>> We have issues, as FreeRTOS, MBEB and Zephyr also have. But it is not >>>> Greg or the Build System guilt. >>>> >>>> Please, stop! It is disgusting! >>>> >>>>> I have personally never used a release from a tarball. Given the above >>>>> why >>>>> would I? It is less stable then master at TC = N >>>>> (https://www.electronics-tutorials.ws/rc/rc_1.html) where N Is some >>>>> number >>>>> of days after a release. - unfortunately based on the current >>>>> practices >>>>> (a >>>>> very unprofessional workflow) N is also dictated by when apps and >>>>> nuttx >>>>> actually building for a given target's set of BTV. >>>> >>>> It is not "unprofessional" it was what we could do based or our >>>> hardware limitations. >>>> >>>>> With the tools and resources that exist in our work today, Quite >>>>> frankly: >>>>> This unacceptable and is an embarrassment. >>>> >>>> Oh my Gosh! Please don't do it. >>>> >>>> >>>>> I suspect this is why there is a Tizen. The modern era - gets it. >>>>> (Disclaimer I am an old dog - I am learning to get it) >>>> >>>> Tizen exists because companies want to have control. >>>> This is the same logic why Redhat and others maintain their own Linux >>>> kernel by themselves. >>>> >>>>> --- Disclaimer --- >>>>> >>>>> In the following, I'm am not bragging about PX4 or selling tools, I am >>>>> merely trying to share our experiences for the betterment of NuttX. >>>>> >>>>> From what I understand PX4 has the most instances of NuttX running on >>>>> real >>>>> HW in the world. Over 300K. (I welcome other users to share their >>>>> numbers) >>>>> >>>>> PX4's Total TTVC is still limited, but much, much greater than NuttX. >>>>> >>>>> We use Continuous integration (CI) on Nuttx on PX4 on every commit on >>>>> PRs. >>>>> >>>>> C/C++ CI / build (push) Successful in 3m >>>>> Compile MacOS Pending — This commit is being built >>>>> Compile All Boards — This commit looks good >>>>> Hardware Test — This commit looks good >>>>> SITL Tests — This commit looks good >>>>> SITL Tests (code coverage) — This commit looks good >>>>> ci/circleci — Your tests passed on CircleCI! >>>>> continuous-integration/appveyor/pr — AppVeyor build succeeded >>>>> continuous-integration/jenkins/pr-head — This commit looks good >>>>> >>>>> >>>>> We run tests on HW. >>>>> >>>>> http://ci.px4.io:8080/blue/organizations/jenkins/PX4_misc%2FFirmware-hardware/detail/pr-mag-str-preflt/1/pipeline >>>>> >>>>> I say limited because of the set of arch we use and the way we >>>>> configure >>>>> the >>>>> OS. >>>>> >>>>> I believe this to be true of all users. >>>>> >>>>> The benefit of a community is that the sum of all TTVC that finds the >>>>> problems and fix them. >>>>> >>>>> Why not maximize TTVC - if it will have a huge ROI and it is free: >>>>> >>>>> PX4 will contribute all that we have. We just need to build temporally >>>>> consistent build. Yeah he is on the submodule thing AGAIN :) >>>> >>>> Just to make the history short: we already have solutions for SW and HW >>>> CI. >>>> >>>> Besides the buildbot (https://buildbot.net) that was implemented and >>>> tested by Fabio Balzano, Xiaomi also has a build test for NuttX. >>>> >>>> At end of the day, it is not only Greg testing the system, we all are >>>> testing it as well. >>>> >>>> Don't try to push PX4 down your throat, it will not work this way. >>>> Let's keep the Apache way, it is a democracy! >>>> >>>> BR, >>>> >>>> Alan >>>