Boost Asset Stewardship Review from René
From the beginning of my interactions in Boost I learned one key fact.. Progress got made by those that acted and obtained buy-in from
== Distractions: Before I get to the meat of the review I need to point out that I will not talk about: if Boost needs a new website, whether Boost needs to be revitalized, if policing communications in Boost is a good idea or not, if Boost is relevant any longer, what build system Boost should use, what documentation system Boost should use, if Boost is attractive, if some other project is the new-old Boost, if Discord is better than email. All of those, and more, are distractions to the key questions that we are deciding on: * Who should manage the assets that sustain the development of Boost Libraries? * Who should decide how those assets are managed? == Disclosure, Present Seeing as the C++ Alliance proposal lists me as one of the initial members of a new Committee I thought I'd include additional biographical background for those that may not be aware of what I've done, and do, both in the foreground and background of programming. In case some are not aware I wear many hats in my life. And some of them intersect with the Boost community. Because of the kind of work that I've traditionally done, and still do, in game development and contracting in that domain I have learned to compartmentalize facets of my life. And how to reorient my thinking to each facet as needed. Below is a very brief exposition of current and past involvement arenas. *Chicago Developer Development NFP* I currently serve as a member of the board of the Chicago Developer Development NFP. This is a non-profit that manages the finances of the Chicago C/C++ User Group. Although the non-profit is very new, the user group has been around for almost as long as Boost. And I've helped manage it for just about as long. *Disbelief LLC* My day job for Disbelief is now at about 9.5 years doing AAA game development consulting. Mainly doing Unreal Engine systems and graphics programming. The one intersection with Boost here is that we happen to use Boost in an internal project. And Boost is used in the internals of Unreal Engine (at one point it had at least 4 different copies of Boost in it at once). *C++ Alliance* I currently serve as a member of the board of the C++ Alliance and hold the position of Secretary. As mentioned in the C++ Alliance proposal my duties include advising on the non-profit operation and alignment of initiatives with the goal of advancing the C++ ecosystem. My experience in Boost and running various nonprofits and for-profit corporations is particularly useful. The C++ Alliance also makes it possible for me to participate in WG21 where much of my time has been spent in C++ tooling and the standardization of tool interop. *Boost C++ Libraries* I currently maintain Predef and B2. I am currently working to make the B2 build support in Boost allow for modular usage. With the hope of making it easier to support package managers and the desire from some users to depend on just the Boost libraries they need. In the past I created the current Boost website, which is the second iteration. I provide advice on the development of the new website. I provide advice on the packaging of Boost for Conan. I maintain the B2 Conan package which is separate from the Boost Conan package. In the past I've also served as Boost Documentation Manager during which I helped maintain Quickbook. I also served as Boost Release Manager during which I automated much of the labor using cloud CI. I also served as Boost Testing Manager during which I tried, but failed, to improve the global test matrix but at least kept it running. And long ago I minimally helped to start BoostCon. *Bincrafters* Bincrafters is a group that got started at the early stages of the Conan package manager. We created many packages for libraries of all sorts. I joined at its foundation to do one main task, to create the first modular set of Boost packages. Although that modular Boost packaged release is no longer available it taught me many lessons that I applied to the current modular B2 building. That effort also provided the conceptual model for the current modular vcpkg Boost packages. Currently the group does minimal support of some existing packages. But otherwise we've ported most of the packages we created to the public Conan Index. Of particular relevance is that we organized using the Open Source Collective as a Fiscal Sponsor (https://opencollective.com/bincrafters). == Disclosure, Past As the past is an indicator of the future I thought it important to also include some of the related organizations I've been part of before now. *Redshift Software* I was President of a software development S-Corp that did all kinds of contracting projects during the 16.5 years it operated. We did everything from tools, games, and web sites. It was during the early days here that our need for a build system for the version control system we developed came from and how I came to find Boost. We went on to use Boost heavily during that time. Which necessitated myself fixing bugs across many of the Boost libraries. This is also where I taught myself how to run a corporation, by reading Illinois corporate law books and IRS rules. *Couchworld Games* I was also President of this game development C-corp (minor note, I was "volunteered" for the position in this one and in Redshift). Even though this corp got created to develop some AAA games, we ended up creating some iPhone puzzle games in C++. Which was a rather hard endeavor given the iPhone ecosystem in the early days. And, yes, we used Boost and B2 in the engines we developed for those games. *BoostPro Computing* BoostPro was a consulting company started by Dave Abrahams to support Boost developers by having clients pay for the technical support of their use of Boost and general development for the clients. Some of that work ended up as new Boost libraries. I worked, as a subcontractor, for 3 years alongside Dave, Eric Neibler, and Joel de Guzman. In summary, I've been involved in most aspects of Boost for more than 22 years. == Executive Committee: When I say "Executive Committee" I'm referring to a group that performs actions on behalf of a group. In this case I'm avoiding the "Steering Committee" term as it appears to have additional connotations because of the past use in Boost. I think it's important that I explain what I think how a group (like an Executive Committee but applies to any group claiming an equivalent role) representing Boost developers should operate. For an Executive Committee it is paramount to gain and maintain the trust of the developers. To achieve that, decisions need to have the support of the developers. Actions by an Executive Committee should not come as a surprise to developers. the Boost developer community. Of the various achievements Boost created early on, the one that made it possible to get such buy-in, has been the community review process. It is a bottom up process that is designed to remove doubt from the ethos of Boost. It is the community review process that we are using now to clarify how Boost moves forward, and hopefully upward. It should be the process that we follow for Boost developers to make decisions about the assets that sustain Boost development. And it should be the results of such a process that the group representing Boost developers accept as binding to make further decisions. I am hopeful that the machinations we are currently following will become the norm. Some have mentioned concerns about conflicts of interest in our governance moving forward. Irrespective of my current inclusion in the proposed composition of the Committee by the Alliance, it is my hope that any future Committee will adopt policies that uses the Boost Community Review process to drive decisions. Any actions the Committee makes, including, but not limited to, its future composition, should have community consensus by the time the Committee votes. It is the only fair, open, and clear way to make decisions. == Inclusivity: As this topic has been mentioned a couple of times I feel like I need to explain my philosophy on this and some related context. I believe that a varied set of ideas and understanding is essential to any life endeavor. As such I believe that keeping doors open to conversation is key in understanding and inclusion. Even though I think that words are important, I place actions above rhetoric. In other words, I think being a decent person is more important than telling others how they should be decent. My philosophy likely stems from learning to live with conflicts in my life. I became an immigrant to the US when I was a teenager. I'm also not an immigrant because I was born in Puerto Rico with US citizenship. English is not my native language. But I am also more fluent in English than my native Spanish. I am a straight man in a field (game development programming) dominated by straight men. I am also Hispanic in a field where they are an underpaid minority. Part of my ancestry is European and originates in Mallorca, Spain and further back in Catalonia. Another part of my ancestry is Native American of the Caribbean Taino Civilization. Even though I came to Boost searching for a build system, that is not what kept me in Boost. And it was not racial, language, biological (I say that one from the perspective of having a name that is often confused as female in the US), theological, or cultural inclusivity that kept me in Boost. It was intellectual inclusivity that has kept me here for more than 2 decades. It was, and in my opinion still is, a community where I can expect an honest consideration and assessment of technical ideas. == Are you knowledgeable about the problem domain? Yes. I have managed for-profit companies. I have helped, and currently help, to manage non-profit companies. I am versed in managing organization assets of those companies. == Proposals: Given all that preamble, below is my review of each proposal. Foundation:: I found this proposal spent most of its wording explaining the ethos it aims to operate within. It is helpful to get that detailed exposition as it has been something that has been missing from the Foundation (and the SC before it) for a long time. What I see in that exposition though is in dissonance with my experience. The mentioned transparency is limited in time, the past two years publishing minutes, and scope, process on how decisions like board membership are made have been lacking. Consensus building is mentioned as a core aspect. But it is unclear how the consensus process is achieved for Foundation decisions that impact Boost. The items mentioned as the actionable parts of this proposal are "Community building", "Improve relevance", and "Adopt governance best practices". Of those, the one that enumerates some steps that apply to the stewardship of Boost assets is the last one. The first three items, as far as I understand, apply to how Boost developers operate and make decisions as envisioned by the Foundation. The fourth and last items pertain to how the Foundation intends to improve its composition with, I can only assume, the intent to increase participation from Boost developers. The fifth item is the only one that directly addresses the aspect of managing Boost assets. Outlining how the Foundation would take control, and possibly ownership, of assets. But it doesn't mention which assets. Is the library source an asset in this model? Who decides which assets? What this proposal lacks throughout is consideration for accountability to Boost developers wishes. While placing all control in the Foundation. This is an arrangement that would require the utmost trust in the Foundation by Boost developers. And given past history I don't see evidence of such a level of trust being merited. Alliance:: The background of the proposal is thoroughly researched and explained in detail. Although there is a fair amount of background information in the proposal I think it can be summarized as "it gives Boost developers control over Boost assets through a Steering Committee". And although this specific proposal is for the Alliance to be the Fiscal Sponsor that is, as we like saying, "an implementation detail". As the control of what happens with the assets goes to the Committee who represents the Boost developers. The proposed Transition Plan recognizes the roles of the various parties and does a good job of remunerating the parties for the work in the transition. The operation of such a Committee and the Agreement match what I know of the requirements for managing non-profit assets. == Conclusion: I support the C++ Alliance proposal to transfer assets to it and to form a new Steering Committee. There are various details to be worked out if the proposal is accepted by the Boost community. For example, the name of the Committee, its final composition, a final contract, and so on. But that's expected, and natural to achieve a structure that the Boost community can grow with. Thank you for reading this far, René
On Wed, Sep 18, 2024 at 12:31 AM René Ferdinand Rivera Morell wrote:
I support the C++ Alliance proposal to transfer assets to it and to form a new Steering Committee.
There are various details to be worked out if the proposal is accepted by the Boost community. For example, the name of the Committee, its final composition, a final contract, and so on. But that's expected, and natural to achieve a structure that the Boost community can grow with.
Rene, thank you for the review. Glen
participants (2)
-
Glen Fernandes
-
René Ferdinand Rivera Morell