Recommend Establishing Dedicated Working Group for External Contributions

I cc the following content to core@freebsd.org.

Dear Members of the FreeBSD Community and the FreeBSD Core Team,

Proposal to Establish a Dedicated Working Group to Improve the Handling of External Contributions to FreeBSD src, ports, and doc

Please allow me to begin with an ancient story from our country:

Once upon a time, there was a mountain with a dilapidated temple on it. One day, a young monk came to the temple and saw that the water jar was empty. So, he fetched water and filled the jar. Every day, he fetched water, chanted scriptures, and struck the wooden fish, living a peaceful and contented life.

Shortly afterward, a tall monk arrived. Feeling thirsty, he drank half the water in the jar. When the young monk asked him to fetch more water, the tall monk objected to fetching it alone and insisted that they carry it together. So the two monks carried a bucket of water down the mountain. The bucket had to be placed precisely at the center of the carrying pole; otherwise, any imbalance would cause each to push the burden toward the other, with neither willing to do more than his share.

Later, a fat monk came. He also wanted to drink water, but there was no water left in the jar. The young monk and the senior monk asked him to fetch water by himself. The fat monk carried a bucket of water, put it down, and immediately drank greedily. The two buckets of water were completely consumed.

After that, no one fetched water anymore, and the three monks had no water to drink.

This is the story of “One boy is a boy, two boys half a boy, three boys no boy.”

Overview

Given the numerous challenges currently faced by the FreeBSD project in handling external contributions, especially within the three core areas of src, ports, and doc, contributor experience has been seriously affected, and project development has been correspondingly constrained. Therefore, the following proposal is submitted in hopes of drawing attention and promoting relevant improvements:

Focus on Handling GitHub Pull Requests

To avoid fragmented and complicated contribution channels, it is recommended that the proposed working group focus exclusively on Pull Requests (PRs) submitted through GitHub.

Implement time-limit tagging on all submissions via GitHub Actions to enhance time awareness among all involved parties, requiring both external committers and internal FreeBSD committers to respond and handle submissions within the specified deadlines.

Establish a Mandatory Response Mechanism

While understanding that all participants are volunteers, as an external committer who has long experienced delayed handling of submissions (and I am not an isolated case), a clear response and processing timeframe is particularly necessary and reasonable.

This mechanism will help avoid situations where low-complexity submissions, such as simple spelling corrections, are left pending for as long as a year and a half.

Involve More Community Volunteers as Reviewers

It is recommended to involve more community volunteers in review work (a community advisory group may be established simultaneously) to alleviate the pressure on core committers and improve review efficiency.

Core committers would primarily be responsible for final approval and merging, establishing a reasonable division of labor.

Current Project Status Overview

Doc Project: There is a severe shortage of committers, and updates have stagnated. Approximately 30% of the Handbook content is outdated, and most articles are completely obsolete. The current documentation toolchain is complex and outdated, and most committers themselves do not understand it. Furthermore, the documentation mailing list is almost entirely ignored.

Ports Project: Although the number of committers appears sufficient on the surface, external contribution PRs are actually processed slowly, typically taking several months, sometimes even longer.

Src Project: The submission experience requires significant improvement, with overly long processing cycles and a lack of transparent and public handling processes.

Deficiencies of the Current System

Bugzilla only assigns issues to mailing lists without specific responsible individuals, resulting in low handling efficiency.

Phabricator (reviews.freebsd.org) receives very few review responses, with PRs left pending for extended periods and no merging progress.

I have observed that most committers on Phabricator simply say the change is too large and needs further discussion, but in reality, no discussion takes place, causing contributors to simply give up. However, for those familiar with FreeBSD committers, their code is more easily accepted — such as the recent large-scale changes to the Ports category. For those who do not know any committers, their identical contributions are merely told “needs further discussion.” Discuss with whom? The core team or others? In fact, no one. Moreover, based on my personal experience, even after thorough discussion and unanimous agreement, no one steps forward to merge the different patch.

GitHub PRs suffer from similar processing delays.

Lack of Transparency in External Committer Integration

The process by which external contributors become FreeBSD committers is not sufficiently open and transparent. I believe the current problem with FreeBSD is a severe shortage of manpower, but external contributors find it difficult to participate and help share the workload.

I suggest setting up an automated commit bot. There seems to be one currently, but it is seldom used. Such a bot could automatically extract the diff information of the current PR and perform merging.

Additionally, PRs submitted by external contributors are often left pending for long periods, not due to substantive technical discussion but simple procrastination.

Selection of Committer Handling Working Group and Community Advisory Group

The committer handling working group should consist of active FreeBSD committers.

The community advisory group: I believe this should be open to university students, possibly as part of their academic credits, satisfying the need for an active open-source community. The community always needs fresh energy.

I believe the most important thing for external contributors to FreeBSD currently is to enhance the sense of timing among all community volunteers. I fully agree and understand that everyone in the community is unpaid and voluntary; we should not impose KPIs on anyone. However, we all love FreeBSD and are willing to spend time on it, and if we want more people to help us develop and build FreeBSD together, we must implement certain restrictions. I propose a mechanism to suspend inactive members from these two groups. My suggestion is that anyone with no activity for three months should be removed from the group.

At the same time, I think a supervision mechanism should be introduced, holding regular public community video meetings and publishing monthly reports.

We can recognize active contributors in the community monthly reports (I have seen the Ports team sometimes do this in quarterly reports), award special statuses or badges (or simply grant a @freebsd.org email), and invite participation in decision-making meetings to enhance engagement and sense of belonging.

We can also use GitHub projects for progress tracking.

Summary

My view is that if responsibility is simply assigned to a large group, it is very likely that no individual will effectively take action because everyone assumes someone else will do it. We must assign tasks to specific individuals.

Establishing a dedicated external contribution handling working group and a community advisory group, focusing on GitHub PRs, implementing mandatory response deadlines (I consider fifteen days a reasonable limit), and involving more community volunteers in reviews will effectively improve the current external contribution handling efficiency, enhance contributor experience, and promote the sustainable healthy development of the FreeBSD project.

For PRs that cannot be processed promptly, consider introducing a second or third 15-day cycle.

I respectfully urge the Core Team to consider and adopt this proposal.

Thank you!

ykla
Chinese FreeBSD Community
 
Last edited:
Sorry, but I don’t believe my post belongs in Off-Topic. The description says, “Have some non-FreeBSD related questions, or want just to chit-chat about anything that is not related to FreeBSD?” I understand that many topics may appear to be "bike shed" issues to some people. However, we should not reject any proposed changes on that basis alone. I believe the issue I raised is something the FreeBSD community truly needs to take seriously, rather than casually labeling it as chit-chat or a bike-shedding matter.


Do you really think that brushing it off as a bike-shed issue will help solve the current difficulties faced by the documentation project? Or address the reality that most contributors can’t even understand the toolchain? There isn’t even an online preview site for AsciiDoc documentation (I did see one, but it was made by an intern). Most people are neither familiar with nor willing to accept this syntax. Classifying such discussions as Off-Topic is exactly the kind of behavior that alienates external contributors from the FreeBSD project. But I believe it’s time we start making changes.


I fully understand the importance of maintaining order in the forums and I respect the efforts and time of all volunteers. But I must still express my opinion sincerely:


Many of us are not committers and don’t have the privilege to commit code or documentation directly to the FreeBSD repositories. Meanwhile, there is clearly a shortage of FreeBSD committers, or at least from the perspective of external contributors, it feels like there is a severe lack of responsiveness, which fails to meet the needs of existing contributors. I am not complaining—complaining is pointless and no one listens. I wrote a handbook three years ago and have been maintaining it ever since, aiming to replace the current Handbook. Yes, the doc committers also simply dismissed my previous proposal to improve the toolchain as a “bicycle shed” issue. I have no objection; I just replaced it in my own way.


What I want to emphasize is this: FreeBSD needs to improve the experience for external contributors, and the process for turning new contributors into committers must become more transparent—whether you use KPIs or anything else, that’s up to you, but we need to see it.

This will be the last time I initiate a proposal on such issues. Complaining is useless, and no one listens. I am simply doing my best to make a change and contribute. Although I know that any of my contributions will be delayed for eighteen months, or even three or five years, until I give up myself.

I am not doing this because of my own difficulties—if that were the case, I would have spoken up years ago. I have seen, I have heard, and I have responded to those whose contributions were abandoned due to this lack of time awareness, causing them to completely leave FreeBSD. I sincerely hope they can come back and try submitting PRs again on GitHub, rather than simply being shelved and ignored. But no one has replied to me.
 
I’m not saying this because of any personal issue, nor am I complaining about a specific patch of mine not being accepted. If that were the case, everything would have ended three years ago. As I stated, the FreeBSD project currently needs change. Compared to patches that receive no replies for a year or even several years — and there are countless such reviews, most of which have already been thoroughly discussed and accepted but never committed — the situation is even worse when it comes to new port submissions.

I believe most people would prefer to simply receive a response, even just a “we can’t accept this, you need to do X” — any reply at all would be better. I believe it’s necessary to establish a working group dedicated to improving the experience for external contributors. This group should also work within a defined timeframe.

I understand that everyone is a volunteer, but if the FreeBSD project is to move forward, then someone must be willing to make greater sacrifices and put in more effort. I’ve noticed that most FreeBSD subprojects are being maintained by just a few individuals — such as Wi-Fi and the GNOME desktop — and this is a very unhealthy situation for the FreeBSD project as a whole.

We absolutely need young people to get involved. FreeBSD ultimately belongs to the younger generation. Without their participation, and without more external contributors becoming committers, nothing else can truly begin.
 
In a nutshell, you are asking the committers to do more work, and to do it faster. And spend more of their time on meetings, in particular working group video meetings. Did I understand correctly?
We need to solve real problems right now, not debate who should have more KPI.

You said that I am asking committers to do more work, especially wasting their time on meaningless things. Hearing you say this really saddens me. Over the past three years, I have actually given up on FreeBSD twice—because no voices get any responses, and the work you do is not recognized. Because of this, I created a community to try to change all this, but I failed; in the end, I was the only one doing it.


I understand what you mean: committers are volunteers, and we have no authority to impose any KPIs on them. However, the increasing workload on committers is precisely caused by the unclear path for external contributors to become committers and the failure to accept contributions. My point is to have more external contributors share the workload of committers—they can handle the reviews, while committers decide whether to merge.

At the same time, I am not asking them to do things faster, but simply to do them. I understand everyone is busy and is taking time out of their schedules to contribute. The problem is whether we are truly getting things done. The current reality is that almost no external contributions get accepted and merged unless you know some of the committers personally.


No one likes lengthy and boring meetings. I don’t believe anyone watches the 5-6 hour meeting videos FreeBSD uploads on YouTube—I certainly don’t. But as external contributors, we need to get feedback. That’s also one of the important reasons why quarterly reports are crucial: we want the community to understand the progress and status of our projects.
 
What problems are your "real problems"? Me more specific. What kind of problems?

You perceive responsibility diffusion. I do understand that and I do share your concern, but in part only.
You are telling us a monk's narrative that suggests "three boys are no boy". With all respects to your cultural background, I think that is totally wrong. Three boys are stronger, have more capabilities, at least they should. If that is not the case it is mostly a problem of their egos, but this can be overcome.

I could point you to PRs where the "one boy" has become the "real problem" sitting on the brake to an extent that is making think about sabotage. This is an example where a committer accumulated too much power and others became dependent on his quirks which may be procrastination, nick-picking others etc..

What I do favor is a 3-boy group ideally with equal rights and capabilities. They share responsibility and reputation of the group as a group. If one fails temporarily or completely for any reason that is not going to have severe effects. And there is more supervision within the group for not acting bad.
 
What problems are your "real problems"? Me more specific. What kind of problems?

You perceive responsibility diffusion. I do understand that and I do share your concern, but in part only.
You are telling us a monk's narrative that suggests "three boys are no boy". With all respects to your cultural background, I think that is totally wrong. Three boys are stronger, have more capabilities, at least they should. If that is not the case mostly it is a problem of their egos, but this can been overcome.

I could point you to PRs where the "one boy" has become the "real problem" sitting on the brake to an extent that is making think about sabotage. This is an example where a committer accumulated too much power and others became dependent on this quirks which may be procrastination, nick-picking others etc..

What I do favor is a 3-boy group ideally with equal rights and capabilities. They share responsibility and reputation of the group. If one fails temporarily or completely for any reason that is not going to have severe effects. And there is more supervision within the group for not acting bad.
I don't think our views are in conflict. In fact, some versions of the story do end the way you described.

On the night when there was no water, a little mouse came out to steal food. The three monks saw it, but none of them cared. The mouse then bit the candle, which fell over and set the temple on fire. The fire grew bigger and bigger. The three monks wanted to put out the fire, but there was no water in the temple. They became anxious and all rushed to fetch water to put out the fire. Working together, the three of them finally extinguished the fire. The temple was saved, and they learned an important lesson: only through unity and cooperation can difficulties be overcome and good days come. From then on, regardless of wind or rain, they took turns every day going down the mountain to fetch water. In this way, the temple never lacked water again.


Also, to be honest, I’d rather have someone actively blocking me than be endlessly ignored until I give up on my own.
 
drhowarddrfine
Applying "sayings" to selfish interests is not spreading wisdom.
Maybe that is a common saying from the low grounds of fast food restaurants, while in the kitchens of haute cuisine a brigade of skilled cooks is doing an outstanding work.

Now what should apply to the FreeBSD contributers' environment?
 
Do you really think that brushing it off as a bike-shed issue will help solve the current difficulties faced by the documentation project?
Not brushing it off as a bike-shed issue, but this support forum is run by end-users for helping other end-users. Nobody here can do anything about the issues you're raising.
 
Anybody can file code reviews on reviews.freebsd.org.

That is quite a bit more likely to get attention than a patch (or series of revisions to a patch) in a bug report.
 
Just one thing to note.

If Bugzilla and Phablicator are disposed (and MLs are ignored) and centralied to GitHub, which the accounts are NOT managed neither by FreeBSD project nor FreeBSD foundation, I'll stop contributing just at the moment, as I don't intend to have GitHub account.
 
What would it take to be changed?
Sorry, the question was not directed at me,
but in my eyes first point was to stop flog FreeBSD to death.

Every couple of months we see here a kind of "FreeBSD is dead/dying/doomed" thread. (Seems to me, some people wish it.)
Doesn't matter if it's true or not (There are also several signs and examples telling me the exact opposite, in contrary FreeBSD is prospering, like companys recently switched from Linux to FreeBSD, newbies join the forums, and become new FreeBSD users in several weeks et al; every new user may tell/convince others to also join!) but you can kill a perfectly healthy system by just repeatedly conjure its death. Which is called a self-fulfilling prophecy (Beat it to death to say afterwards:"See? I was right. It was dying.")

Especially when you have such a sensible system based on volunteers.

If you want to keep it alive - and I will, because neither any Linux, nor Apple, and especially not Windows were real alternatives to me (I don't see any other to be taken even remotely serious at the moment [OpenBSD maybe, but all I heard they are also doomed.]) - you need to convince people to use and join it - grow the community! Not put them off!
Thus growing the pool of potential contributers.
Especially when the going gets tough.
Nobody joins a dying show.
No newbie can differ if it's just whining ("If FreeBSD will not soon [support all WiFi/Bluetooth/GPUs/my most exotic multimedia gaming equipment] at once, it's dead") from real issues.
Which there always be as long as you have more needs and wishes as manpower and money to realize it, but to make the right decisions where to focus. Long term decisions for the purpose of the whole project, not to give in the individual interest of who whines loudest.

So, be more constructive! Be more positive!
At least here in this forums - FreeBSD's flagship for newcomers.
Spotlight the benefits, and signs of prosper to win people.
Grow the pool!
Then some day there may be enough monks to stop carrying buckets but dig wells instead.
Please.
 
Ah, another to note.
If something like gtihub.freebsd.org that its accounts are managed by FreeBSD project and/or FreeBSD foundation, without sharing my account info with GitHub.com, is possible, I'll be happy to register and keep on contributing.
 
Maturin
In principle yes, but ...

... problems have to be addressed. There is a point where advocacy does not help anymore. I do see contributors leaving the ship because of frustration. Its getting numbers that cannot be ignored, and if it gets further ignored it is a symptom of management failure.
 
Anybody can file code reviews on reviews.freebsd.org.

That is quite a bit more likely to get attention than a patch (or series of revisions to a patch) in a bug report.
A set of my examples:
Bugzilla: PR 287641
Corresponding phablicator review (differential revision): D50915

See History link on PR 287641. This is assigned to x11@ (actually a ML) at the first place but picked by kbowling@.

Another set, having some discussions on review:
Bugzilla: PR 285139
Corresponding review: D49245

These are examples how it goes on Bugzilla and Phablicator.
But Bugzilla is still useful for reporters that cannot provide codes / patches to review.
 
Back
Top