Boost logo

Boost :

From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2024-09-07 02:24:31


Hi,

[Sorry, this post is going to be long and mostly boring]

This is my review of the proposed Asset Stewardship. I'm not affiliated
with the C++ Alliance or Boost Foundation, though I have great respect
for both institutions. Background: I’ve been participating in Boost
since 2004, as a library designer and maintainer with occasional patches
to other libraries. Recently I joined the release team.

Trying to elaborate an ordered review, I will loosely follow the scheme
of C++ Alliance’s proposal, commenting both Alliance and Foundation’s
statements related to that chapter. So, let’s start…

------------------
State of Boost
------------------

I also perceive that Boost’s vitality has declined, although mailing
list posts might have declined in part because “high frequency”
interactions moved to Slack and some technical bug discussions to Github
issues. The mailing list remains the method for more formal interactions.

It is true that many new libraries skip Boost now. Possible reasons:

a) The technical level required to pass a review in Boost is very high

b) Boost’s image in the community might not be that positive (we have
our own haters) and it’s considered a mature, “oldish” project.

c) Standard library and compiler compliance is much better in recent
compilers and many libraries can avoid dependencies that previously were
available only in Boost.

d) The number of libraries is outstanding with higher than desirable
dependencies IMHO (but this is improving). 160+ libraries create
friction, a sense of “too big for my project”.

e) There is a tendency to propose and accept libraries to the C++
standard without requiring a widespread and mature open source library
as existing practice. This is somehow conditioned by WG21 procedures and
release cycles (3 years) that I’m not sure how Boost could be adapted to
and maybe that’s the reason the Boost Foundation has created the Beman
Project.

I agree that Boost could be improved with a fresher image including the
new website, but also with better documentation tools (current
Boostbook/Quicbook/Doxygen is lacking modern C++ support). I think both
C++ Alliance and Boost Foundation agree on the need for newer
image/tools (although they might differ in tools/assets we need to improve).

In general, it is good to think how we can attract new talent to the
project. Boost Foundation states that values like “transparency,
consensus building, honoring governance process, volunteerism, and
inclusivity” will be key to Boost’s success whereas C++Alliance’s
proposal focuses on image, strategic vision, motivation, and resources
with a developer-guided steering proposal.

Regarding Foundation’s “inclusivity” focus, I agree the community should
think about this. In the Boost tradition I think the best Boost can do
is to base the participation on merit, non-discrimination and
collaboration. We have an infinite number of classifications/identities
that could be employed (gender, nationality, ethnicity, income,
religion, age...) and the discussion based on those parameters (“I only
believe in statistics that I doctored myself” comes to my mind) would be
endless. I also prefer to set aside controversial issues like Codes of
Conduct (who defines “hate”/”harassment”/” inappropriate”? who enforces
it? etc.), because I don’t think will help increase participation in the
project.

I hope we agree that we should make easier to receive proposals from
programmers with diverse backgrounds and judge the inclusion of the
proposed library exclusively on technical merits. How to make the review
process a bit less “frightening” or “challenging” so that all possible
high level C++ programmers can have the opportunity to contribute is
maybe one of the most interesting debates that we should have.

-----------------------------------------------------
Boost Foundation vs C++ Alliance "negative points" discussion
-----------------------------------------------------

Both in Alliance and Foundation’s proposal, some negative points are
identified from the other part. I’d like to have some words on them:

--- Boost.org domain / New website---

Although I personally don’t consider the domain the most critical asset
of the project, (I know it’s an annoyance that a change would require
re-subscribing to the ML and we would need to find-replace “boost.org”
mentions in all source files and documentation) I understand it is
something important for a lot of Boost stakeholders.

Foundation has emphasized the recent “secret attempt to purchase the
boost.org domain to the Beman state”. I certainly don’t approve any
movement that could put Boost project assets outside the effective
control of the project. Unfortunately this domain ownership problem is
older than this last episode.

According to Boost Foundation minutes
(https://docs.google.com/document/d/1zMKUX3nfdcOXT6nUIU4M_YRlCU4ywGoG40ouo3IKydM/edit?pli=1
, “2023-04-06 Monthly Meeting”) there was a previous offer: “Discussed
the C Plus Plus Alliance’s offer to take responsibility and ownership of
BOOST.ORG in exchange for a donation. This offer was subsequently
withdrawn”.

I’m a bit puzzled that after that first attempt or when Boost domain
registration problem happened the community was not informed that the
Foundation was not the real owner of the domain. I believe the community
would have understood the situation after Beman's passing. I feel the
transparency-first claim of the Foundation was not applied in this case
so I have to express it.

The only positive thing about the recent events is that the community
has been able to gain visibility into the situation of the said domain.

Hopefully, in Alliance’s proposal the domain is hold by the sponsor on
behalf of the project with a SC taking the important decisions with the
possibility to transfer the domain to a new sponsor if needed.

--- New website / Promotion ---

One of my recent frustrations with the community process we have is how
the website issue was managed. A new website was proposed, we had a
discussion, requested the website to be under BSL, filled bugs, a lot of
them were fixed, etc. and after hard work, we requested that boost.org
should point to the new website. However, that never happened, so the
new government scheme should allow that the decision of the developers
is effective.

Regarding boost project promotion, anyone can promote Boost, but it is
my opinion that no one should speak on behalf of the project without
consulting and obtaining approval from the community, represented in the
proposed model by the SC. That representation will never be perfect, but
IMHO is better if SC members are active and well known Boost developers
that deal not only with coding, but also with users that post questions
and fill bugs.

--- Beman Project ---

It gives me a bittersweet feeling. I think the project is useful, but it
is presented as a project claimed to be “what Boost was and no longer
is”. With no discussion or input from the Boost community, with
unanswered questions, no explanations, no effort to collect ideas on how
both projects could collaborate. An important opportunity to strengthen
confidence between the Foundation and developers was lost.

The fact that the recommended license for that project is not BSL it’s
also disappointing. If BSL is not the best answer so that code can be
freely reused, I would expect Boost Foundation to work on BSL
improvements (as I consider BSL as one of the most important
achievements of the Boost project). My disappointment is best summarized
by Peter Dimov’s post
(https://lists.boost.org/Archives/boost/2024/07/257080.php):

"I think that the primary purpose of an entity named "the Boost
Foundation" should be to support Boost, and if it currently isn't,
something not quite right"

In any case, it would be nice to discuss, even if no agreement is
reached, how Boost and Beman could collaborate in the future.

---------------------------------
Proposed Fiscal Sponsorship model
---------------------------------

First of all, I must say that regardless of the chosen sponsor
(Alliance, Foundation, Software Freedom Conservancy), I find the fiscal
sponsorship model appealing. As Beman himself stated
(https://lists.boost.org/boost-announce/2007/08/0141.php) when Boost
became a member project of the Software Freedom Conservancy, it is a
model that *allows developers to focus on what they do best* with very
little cost:

“The SFC provides the same legal abilities of a foundation at NO cost to
the Boost project. It also minimizes the amount of legal and
administrative hassles for project members -- allowing us to stay
focused on technical matters rather than tax law”

Disclaimer: My name is in the Current/Steering Committee (SC) of
Alliance’s proposal. C++ Alliance asked for my permission to include my
name, and precisely for the previously mentioned reason, I gave my consent.

I’m happy that the current proposal addresses a major concern expressed
by the Boost Foundation
(https://lists.boost.org/Archives/boost/2024/07/257301.php). It is the
risk of “a single individual exerting such a level of control over the
Boost Libraries”. Precisely the SC + fiscal sponsor proposal addresses
this concern, because it is not the C++ Alliance who will establish
Boost’s direction but the SC.

This is aligned with the “principle of subsidiarity” (issues should be
dealt with at the most immediate or local level that is consistent with
their resolution). In this case, I can’t imagine something more
effective than a SC formed by active developers trying to build
consensus and setting an example for the community.

Alliance’s proposal is very similar to the SFC agreement that Beman
signed
(https://github.com/boostorg/more/blob/master/BoostSponsorshipAgreement.pdf)
and worked fine for the project in the past.

Considering that the Alliance is saying that the Boost project will have
sufficient funding to maintain its infrastructure (which I imagine is in
part the reason why the project started BoostCon) I would say that this
would free SC’s precious time, members can mostly ignoring budget
issues, so that the SC can focus on the technical/artistic side.

------------------------------------------
Composition of Current/Steering Committee
------------------------------------------

One of the complicated questions to have an agreement between “the
project” and the sponsor is “¿Who represents the project?”. Regarding
the original SFC agreement
(https://github.com/boostorg/more/blob/master/BoostSponsorshipAgreement.pdf)
Beman explicitly answered this question
(https://lists.boost.org/boost-announce/2007/08/0141.php ): “I signed
for Boost, since I was the founder and am the owner of the boost.org
domain”.

In Alliance’s proposal the “Current Committee” takes the challenge to
sign the legal agreement “on behalf of the project known as Boost” and
becomes the Steering Committee that will manage “the technical, artistic
and philanthropic direction”.

I’m honored to have been nominated as a representative and I have the
greatest respect for Joaquín and René (with more than 20 years of
dedication to Boost). However, I think that the Committee that will sign
and “manage” on behalf of the project would be improved if Peter Dimov
and Glen Fernandes want to join. Reasons:

- They are key figures in the project.

- Their independence and impartiality are beyond any doubt.

- They are technically brilliant.

- They have an enthusiastic dedication to the project.

- They are members of the Boost Foundation: their experience in the
Boost governance issues will be helpful in the future.

Finally, if the proposal is accepted, the new Steering Committee will
make mistakes but at least it should try to learn from past mistakes.
Trying to impose project-wide decision is something that historically
has not worked for Boost.

---------------------
Conclusion
---------------------

Q: What is your evaluation of the proposal?

A: I think Alliance’s proposal is well thought, and they have listened
community concerns so that the proposal puts focus on the developers,
including the effective “ownership” of the assets by the SC, even
offering legal way to change the fiscal sponsor in case of disagreements
with the Alliance.

Q: What is your evaluation of the documentation?

A: I think the documentation is detailed, with a lot of links to useful
background information, important annexes and a clear FAQ section.

Q: What is your evaluation of the potential usefulness of the proposal?

A: I believe that returning to a SFC-like governance structure will be
useful for the community, and I hope, to be able to focus our energy
again on technical matters.

Q: How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?

A: Several hours of study of both Alliance and Foundation proposals,
additional hours searching for complementary information in the mailing
list archives and writing this review.

Q: Are you knowledgeable about the problem domain?

A: I’m not an expert on software project governance, but I have
participated in the project long enough to have an informed opinion

Q: Do you think the proposal should be accepted.

A: Yes, I think C++ Alliance’s proposal should be accepted, with a few
suggestions:

- Enrich the SC with the addition of Glen Fernandes and Peter Dimov.

- Encourage a reflection within the community on how to increase
participation.

- Reflect on how to collaborate with the Beman project

Best,

Ion


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk