<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">I can see following small tasks which need refactoring<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">IPMID:<o:p></o:p></p>
<p class="MsoNormal">Some of standard commands are incomplete here like “restore power policies”, some of sensors sdrs etc.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Dbus interface:<o:p></o:p></p>
<p class="MsoNormal">Define more dbus interfaces being used in common code. I see multiple repos has these interfaces hard coded. And I agree for client side code would really be helpful.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Phosphor package clean up:<o:p></o:p></p>
<p class="MsoNormal">There are many phosphor packages in image which are added by default and lots of systemd unit are running irrespective of platform requirements.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Documentation:<o:p></o:p></p>
<p class="MsoNormal">Many repos doesn’t have proper documentations and it will be really good to add and a root level documents giving an idea about different features and mapped to multiple available repos.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I will add more once I remember back.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards<o:p></o:p></p>
<p class="MsoNormal">-Vijay<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on behalf of Richard Hanley <rhanley@google.com><br>
<b>Date: </b>Thursday, April 9, 2020 at 2:57 PM<br>
<b>To: </b>OpenBMC Maillist <openbmc@lists.ozlabs.org><br>
<b>Subject: </b>Re: Call for Gardening Tasks<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Here are some ideas I have as a wishlist for gardening/improvements.
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Client Models for DBus</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Right now sdbusplus does a pretty good job of making server development easy. However, I wish we had some more tooling on the client side. I see a decent amount of repeated code around ObjectMapper. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">One way to separate concerns and cut down on boilerplate is to have a model library. A call to a model would spin off an async method call to manage the data marshalling, which would then call a lambda with a fully reified object. This
is similar in concept to the way models work in web development.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Unit Testing in bmcweb</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">This is pretty easy to say, and harder to do. I've been thinking a bit about how to add in unit tests without them being too fragile. (This was also something that geissonator mentioned).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>DBus Virtualization and Playback</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">One thing that I think makes unit testing in some modules hard is that there is a high barrier around mocking DBus. I'm not sure the best way to build this sustainably, but it would help improve our CI testing.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>OpenAPI for Redfish</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">So far the general impression I've seen with this is that the Swagger output for OpenAPI isn't really good for C++. Either the ergonomics aren't really good, or there is a lot of code bloat. I'd love to have some OpenAPI bindings that
work well in OpenBMC.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>RUST!?!?</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I'm betting a lot of people have thought about Rust. I'd love to hear what people have tried and what are the sticking points. Any thoughts on what module/functionality could be a decent candidate for breaking ground here?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Richard<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Apr 9, 2020 at 2:54 PM Richard Hanley <<a href="mailto:rhanley@google.com">rhanley@google.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">Hi everyone, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Last week I started a thread on <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.ozlabs.org_pipermail_openbmc_2020-2DApril_021100.html&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=v9MU0Ki9pWnTXCWwjHPVgpnCR80vXkkcrIaqU7USl5g&m=fAZZtmWl4g8Vngk56_Rs09hgS96TYQMeyRsyZKGHzAo&s=HXdHl56jq4p5eXbhyUHUkkmoF_hGh5tJWMUaVKQ68VM&e=" target="_blank">
Open BMC Gardening</a>, and I wanted to kick off the process.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The basic idea here is to get a survey of various improvement tasks throughout OpenBMC. Some things might be small refactoring or changes that can be done incrementally (i.e. weeding the garden). Other tasks might be more research or structural
(i.e. excavating the garden).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Just getting these in writing can be helpful for others to gauge what they should focus on. It also helps leave breadcrumbs for any new developer interested in the subject.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So here's how I see this working. Anyone who has some ideas can reply to this thread with a short to medium description. Try to avoid new features, and instead look at ways we could improve the status quo. Think about changes and tools
that would make your day to day life better.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">From there we can do a write up about what we know about the issue. This can function as an early stage design doc that gives a broad overview on where the dev's head is at right now.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Finally, we can do a quarterly review to keep the garden refreshed. Obviously, things can change between that time, but having a semi-regular cadence will hopefully give us a better chance of keeping this up to date.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">- Richard<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>