I’m nearing the end of my GSoC project (adding support for the Scrutiny Debugger) and I’m trying to find out the best possible methodology to add Scrutiny as a package.
Initially, I was looking at an RSB recipe + example code + documentation. I already have a functioning RSB recipe working in my fork which is open as a draft MR. The example code is just initialization code according to Scrutinys C wrapper library. You can see it here. Keep in mind there is still some cleaning to do so the code is a bit rough, and I am almost finished converting the CMake stuff to waf.
The confusion came up when I was talking to my mentor about where exactly my example code should go. I initially suggested it be under rtems-examples, which still seems like the likely area to put something like this (correct me if I’m wrong), but my mentor brought up that Scrutiny could also be maintained as a package under the packages project (where lwip and littlevgl are). This would mean Scrutiny would now build through just waf from its own fork repository within RTEMS.
Anyway, I don’t know how to approach this. RSB recipe + documentation + example code? If so, would the example code go in rtems-examples? Or should Scrutiny be a new repo under packages built through waf + example code in either that specific directory or rtems-examples + documentation.
Also on the topic of documentation, right now I’m planning on putting the documentation for Scrutiny under the Debugging category (10) of the RTEMS user manual right under GDB. Is this alright? In the case that Scrutiny does become a package under the packages tab, then it would go in the Packages (17) category I assume?
I still think it should go into it’s own package but the other option is we include it directly within RTEMS in it’s own directory and have it be shipped with the project.
If we did it this way it would be a flag in config.ini to enable or disable it. Examples would go into rtems-examples.
If we do choose a separate package I think the examples should go in that package but I agree it makes it confusing since littlevgl has it’s examples outside of it’s package.
I would think it makes more sense when we have a package the examples stay with that package but I have no strong opinion on it.
The closer we can stay to the upstream the better. I would much prefer to see a build recipe for Scrutiny via RSB with the fewer patches applied to it the better. Then a user can build that package via RSB and install it to their RTEMS, and build an application. That means the demo would be best served as rtems-examples with a note/constraint on the availability of the scrutiny package.
This approach gives us the least maintenance overhead. Past experience such as with littlevgl shows that if we clone-and-own these packages they get bit-rotted or drift from the upstream. Integration through build/packaging with the upstream is preferred where possible, unless there is a good reason not to have it.
If it can be built as a second step after building/installing rtems, this is preferred to directly integrating with rtems.git also, for similar reasons of maintaining sync with the upstream.
Alright. Then I’ll probably aim for the simpler approach since I do have a bare bones RSB recipe working already.
Then what we’re looking at so far:
RSB package
Example code under a scrutiny folder in rtems-examples
Documentation in the user manuals section 10 for Debugging, underneath GDB
Does this look fine to you?
And as I add more instrumentation metrics, even after GSoC (which I plan to do), I can add them as extra examples under the scrutiny folder in the examples repo.
It’s for the Scrutiny Embedded library. The pip install/download binaries are for the Scrutiny server and GUI, Scrutiny Embedded is a separate library that builds with your firmware/application. You can cross-compile it with any RTOS you’re using but in the case of adding RTEMS support, it would make sense to be an RSB package (as a build recipe) right?
No i mean, what do you mean by “RSB Package” because the source has to sit somewhere. Anything can be an RSB package but the source has to sit at a location in order for it to bring it in.
What we’re talking about is where that source should sit. If it’s within RTEMS there is no need for the RSB … if it’s as package rtems-scrutiny then it has to be a package.
I’d prefer it sits within RTEMS so we can push as a core ability of RTEMS but I’m open to having it outside, too. Our meeting is tomorrow so we can discuss it then.
Okay, so we figured this out during the meeting aftwasiq came on … there is no RTEMS source to compile just examples. These will go into the rtems-examples repo.