This is the best summary I could come up with:
True, the Linux Foundation events all now come with child support for young parents, but my expert guestimate is the average age is still well into the 30s.
More specifically, the Cloud Native Computing Foundations (CNCF)'s KubeCons have many tracks for people who want to learn the ins and outs of Kubernetes and other cloud-native programs.
The OSPO for Good conference proposed solutions that have been suggested before, such as hackathons, to engage young developers in open source coding.
As David Nalley, president of the Apache Software Foundation (ASF) and director of open source strategy at Amazon Web Services (AWS), said at the conference: "Getting people to maintain old code isn’t easy.
… I thought if I could hold on just a bit longer, I could help maintain the focus on long term development to improve the user experience.
She also runs the LFX Mentorship program, which seeks to sponsor and train the next generation of open source developers and leaders.
The original article contains 741 words, the summary contains 161 words. Saved 78%. I’m a bot and I’m open source!
What can members of the community who can’t code help with?
Depends on your skills. Documentation is always useful. If you have language skills, translation of documentation or helping create language packs/translations.
That’s just off the top of my head. I’m sure if I thought about it, I could come up with more.
If not code or documentation contributions, then well-written bug reports. Seriously, the quality of bug reports sometimes leaves a lot to be desired. And I don’t necessarily mean a full back-trace attached – and please, if you ever send a back-trace, copy-and-paste the text, never a screenshot – but just details like: system details, OS, version, step-by-step instructions to reproduce that a non-coder could also understand, plus what you expected to happen versus what actually happened.
This stuff (usually) comes naturally to programmers and engineers, but users don’t necessarily see things this way. I sometimes think bug reports need to adopt a “so tell me what happened?” approach, where reporters are encouraged to describe free-form what they think of the software, then providing the specific details that developers need. That at least would collect all the relevant details, plus extra details that no developers thought to ask.
Even just having folks that help gather and distill details from user reporters on a forum is easing a burden off of developers, and that effort should be welcomed by any competently-organized project. Many projects already have a template for reports, although it often gets mistaken for boilerplate. Helping reports recognize that they need to fill in all the details is a useful activity that isn’t code or docs.
The problem I have with bug reports for things like docker containers (I will just use that example for now) is again documentation… I get that most people make really bad “it broke, fix it now” kind of reports with no detail, but unless you actually dig into and know the code, there is often almost no debugging documentation (github issue templates help with that when the devs make one)
Where are the logs? If you refuse to use the docker standard of pushing logs through the log api, don’t respect the LOG_LEVEL environment variable, errors are non-descriptive, and don’t provide documentation to where your logs are stored, how the hell can you expect users to provide relevant logs??
I have run into dozens of pretty big projects that fail with 0 log output and there is 0 log documentation and then the dev auto closes the issue because “not enough logs to help.” The only way to find the logs is to find an old issue where the dev has laid out where the relevant logs are, like WTF? No I am not going to spend an hour looking in every single part of the undocumented directory structure to see if there happen to be logs in there. Use the standard, document your log locations and what they log (no 3ch9qjV7.log is not descriptive enough), or don’t complain about not being able to help without logs.
Good advice. I want to add the option to offer money or hardware support. Writing helpful Bug Reports is also a good, especially if you really care with testing. Maybe even do Testing of software and functionality, Beta Tester with reports. Less technical would be designing logos or buttons or any graphical activity for documentation and websites, or for the application itself.
Documentation and Bug Reports are probably the top way to help if you can’t code.
If you’re an artist, there’s no shortage of potential open source work. Most FOSS apps have an ugly af GUI.
Either making better assets or better overall design would work.
Can’t or don’t want to?
I got into a project starting out with translations. Then community support. Then wrote a web interface to the desktop/server application. Then got into the project itself.
Many projects have a contributing document or page with pointers. In general, being part of the community, providing information or support, improving documentation, or the bug tracker (reproduction, labeling, discussing/guiding), translating.
What can be done and what makes sense varies a lot depending on project size and popularity too.
Project management. See for instance this talk: https://youtu.be/u3PJaiSpbmc?si=FbQGTfx4nERCb0R-
If you look at projects in more popular languages like JS, Rust, Python. There is plenty of new blood in the contributors list. I won’t speculate as to why, but it looks like the new generation doesn’t like c and c++.
I think this is also backed up by the Linux kernel and thunderbird projects. Both are old c/c++ codebases and both have stated they are adopting rust in hopes of drawing interest (and contributors) from the rust community.
I’ll also throw out: aging infrastructure, build systems, coding practices, etc.
I looked into contributing to the kernel - it’s already an uphill battle to understand such a large, complex piece of software written almost entirely in C - but then you also need to subscribe to busy mailing lists and contribute code via email, something I’ve never done at 30 and I’m betting most of the younger generation doesn’t even know is possible. I know it “works” but I’m really doubting it’s the most efficient way to be doing things in 2024 - there’s a reason so many infrastructure tools have been developed over the years.
The barriers to entry for a lot of projects is way too high, and IMO a lot of existing “grey” maintainers, somewhat understandably, have no interest in changing their processes after so much time. But if you make it too hard to contribute, no one will bother.
How do you contribute code through a mailing list? Like I don’t understand…
Found a blog post that gives a quick overview of how to do git via email in general: https://peter.eisentraut.org/blog/2023/05/09/how-to-submit-a-patch-by-email-2023-edition
So at least from my understanding you’d make your changes, email the contents of the patch to the maintainer, and then they’d apply it on their side, do code review, email you comments, etc. until it was in an acceptable state.
There’s also the full kernel development wiki that goes into all the specifics: https://www.kernel.org/doc/html/v4.16/process/howto.html
(I never got through the whole thing)
ELI5: Git has tools built-in to put your changes into emails and send them. People can either bring them in or see the diff in the emails.
Reading and interactive tutorials:
I won’t speculate as to why, but it looks like the new generation doesn’t like c and c++.
It’s not that hard to know why - these languages have footguns literally everywhere. They seem simple and powerful at first, but they turn into a monster soon enough. There are simply objectively better alternatives today, like Rust. It shouldn’t be surprising, it’s been so many decades after all.
I’ve heard a lot about Rust. I’ll have to look into it. I hate myself so my preferred language is PowerShell.
All the old people have learned the old systems (C, Perl, etc) and don’t want to have to learn something new, whereas young people are happy to use something newer and better (Rust, Typescript, etc.) because they don’t mind learning and don’t have a ton of old knowledge to throw away.
Yes that’s a big generalisation and there are plenty of exceptions, but in my experience it’s broadly true.
I work on an open source project which has a C component. I offered them our closed source C++ version which is way better and fixes a load of issues… Not interested. They learnt C in the 70s and don’t see why they should have to change.
Actually that project is a mix of old curmudgeons and young PhD students so there is a bit of a mismatch, but I didn’t feel like fighting the naysaying so…
I’d be glad to help but I have no spare time, and practically just a degree in game programming. I dont really know how to get into open source.
I feel like there’s maybe also a bit of disappointment in open-source going around? The last few years have shown that it’s not the silver bullet, it was thought to be.
Companies will find ways to relicense contributions via CLAs, or to just straight up violate your copyright with GenAI. And even projects that technically tick all the open-source boxes, like Chromium and parts of Android, can and do exert plenty control over users, because no one has the manpower to fork them.
Then there’s plenty unethical companies making use of open-source, and they rarely contribute back to make up for it.
Nevermind that the open-source infrastructure is owned by corporations (GitHub, Discord etc.).
And it feels ever more present to me that publishing things as open-source means maintenance work, which can quickly lead to burnout. People just expect you to provide updates, no matter what your license text says.
Like, I certainly don’t either think that not doing open-source is any closer to a solution. But I’m finally at a point where I feel like my code is useful and good enough to publish, and it just feels like either my only ‘users’ are corporations scraping my code, or if I promote it, then it’s just a ton of maintenance work waiting for me.
I don’t know, maybe that’s also just a me-problem…
And it feels ever more present to me that publishing things as open-source means maintenance work, which can quickly lead to burnout. People just expect you to provide updates, no matter what your license text says.
David Beazley, big in the python world and one of the OGs of the python ecosystem from back in the 90s, kinda had a moment about this a couple of years ago.
He has or had a few somewhat popular libraries and liked to write things and put them out there. But, IIRC, got fed up of the consumeristic culture that had taken over open source.
I think he put it along the lines of “The kind of open source I’m into is the ‘here’s a cool thing I made, feel free to use it however you want’ kind” … and didn’t have positive things to say about the whole “every open source author is now a brand and vendor” thing.
The result of which, IIRC, was him archiving all of his libraries on GitHub. From a distance, it also seemed like he felt burnt out from a hacking culture in which he no longer felt like he belonged.
Nobody has been able to adequately explain how ai is violating any oss licenses.
You are explicitly allowed to read the source code.
When I read code under GPL source and write something like that under a different license, I’m legally liable for copyright infringement. Of course the original owners need to prove it first, but still there’s problems from that.
Some open source projects outright disallow you from contribution if you tell them you’re working on a closed source competitor.