Hi,

The only bad thing, well it's not really bad but it has been a challenge,
is that we've been struggling to keep our GitHub CI usage under control.

Would it be possible for this to run once per 24 hours as a nightly build
job, instead of on each build?

Thanks,
Nathan

On Tue, Apr 21, 2026 at 3:12 PM Michael Rogov Papernov <
[email protected]> wrote:

> Hi,
>
> I've opened a pull request: https://github.com/apache/nuttx/pull/18774
> I've added a target from each architecture family supported by Nuttx.
> The github workflow uses a github action:
> https://github.com/membrowse/membrowse-action
> This generates the memory footprint report from the ELF file, the ld script
> and the map file, and then uploads it
> to membrowse.com where you can see the dashboard.
> To your question, Tomak: you can install membrowse with pip (pip install
> membrowse) and generate the reports locally. However, the dashboard and the
> database are hosted.
> (There is a self hosted option as well, but it's not open source)
>
> Kind regards,
>
> Michael Rogov Papernov
> Founder, MemBrowse
> membrowse.com
>
> Kind regards,
>
> Michael Rogov Papernov
> Founder, MemBrowse
> membrowse.com
>
>
> On Mon, 20 Apr 2026 at 16:14, Tomek CEDRO <[email protected]> wrote:
>
> > Hey there Michael!
> >
> > Very nice solution! For sure we can use that to track how much
> > firmware images grow in time.. right next to self-test and benchmark
> > applications :-)
> >
> > Can membrowse constitute a standalone application to be part of
> > nuttx/tools/membrowse? I mean so it can be launched locally too not
> > only by the CI?
> >
> > Thanks :-)
> > Tomek
> >
> > --
> > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
> >
> > On Mon, Apr 20, 2026 at 1:46 PM Michael Rogov Papernov
> > <[email protected]> wrote:
> > >
> > > Hi all,
> > >
> > > I'd like to propose adding a memory footprint tracking integration to
> > > NuttX's CI, and I'm looking for feedback before opening a PR.
> > >
> > > Background: I'm an embedded systems developer, and over the past year
> > > I've been building MemBrowse,
> > > a platform that parses ELF binaries and linker map files at the symbol
> > > level and tracks firmware footprint across commits.
> > > It runs as a CI step, uploads symbol data, and surfaces per-PR diffs
> > > (flash/RAM deltas, symbols that grew or shrank, and library-level
> > > breakdowns).
> > > Similar integrations are already merged in TinyUSB and wolfSSL.
> > >
> > > I've set up a public dashboard with data from real NuttX builds so the
> > > output is evaluable before any code lands:
> > >
> > >   https://membrowse.com/public/michael-membrowse/nuttx
> > >
> > > Proposed scope:
> > >
> > > 1. A new opt-in GitHub Actions workflow (or a job in an existing one)
> > > that runs after a successful build, extracts symbol data from the ELF
> > > and map file, and uploads it.
> > > 2. Tokenless upload for public repos. No secrets in CI, no
> > > pull_request_target, forked PRs work with the standard pull_request
> > > trigger.
> > > 3. No required changes to NuttX's build system. The tool consumes the
> > > ELF and map artifacts the existing CI already produces.
> > >
> > > Feedback welcome.
> > >
> > > Kind regards,
> > >
> > > Michael Rogov Papernov
> > > Founder, MemBrowse
> > > membrowse.com
> >
>

Reply via email to