Self-Raising Lazarus:
All Contributors and how Open Source can Rise
Again
- I thought this was a witty title, but it isn't easy to understand
The Raising of Lazarus , circa 1310, Duccio di Buoninsegna, egg tempera and gold. This
work is public domain.
Peter Capaldi
at the Glasgow Film Theatre. CC BY-SA 2.0
You're looking at ******* Lazarus, sweetheart. And not just plain
Lazarus. I'm ******* self-raising Lazarus, right?
- The Raising of Lazarus was one of Jesus' miracles
- Resurrected his friend Lazarus, who had been dead for four days
- In English-speaking countries, self-raising flour, is flour with a leavening agent included for baking
- **HIT**: It makes a mix which has all it needs to rise
- Hence, self-raising Lazarus
- Quote from Malcom Tucker, a sinister government spin doctor in The Thick of It
> What? Do you think I can't get it up anymore? Is that it?
> You're looking at fucking Lazarus, sweetheart.
> And not just plain Lazarus. I'm fucking self-raising Lazarus, right?
- So, not only is it a bad joke, it is a bad joke I stole
- But I always loved this quote, and I was reminded of it when thinking about how open source projects can survive a death
This is a story about …
Goat heard by Scriberia ,
CC-BY 4.0
10.5281/zenodo.13882307
This is a story about,
- open source in the small
- community project
- no commercial backers
- about the struggles of small team of volunteers
- about the natural turnover of contributors
no one stays forever
- But also the joy and hope, in how open source projects can survive death
- **HIT**: Just like self-raising flour, FOSS communities have all they need to survive a tricky time and rise again
Me
@JimMadge@fosstodon.org
blog.jmadge.com
I am
- Jim
- Love free and open source software, and everything open
- Work as a RSE at the Turing, UK
- Steering committee member, and working group chair for _The Turing Way_
- Newly a Jupyter Book and MySTMD contributor
- Newly a maintainer of All Contributors
- This is me circa 1994
- My mum is taking the photograph
- I'm telling her there is this man from Finland in this usenet group making a free OS that sounds cool
All Contributors
What is it?
Recognising contributors for all types of
contributions
(not just code)
A specification
A set of tools
A GitHub bot
- A project about recognising the different types of contributions people make to our open source projects
- A specification
- Enforcing that this is displayed prominently
- Display the category of contribution, with a flexible taxonomy
- **Does not** encourage indicating or scrutinising the *level* of contribution
- A set of tools
- Data is a JSON file, hard to read/write by hand
- CLI for managing contributor record
- A GitHub bot
- Probably the *most used* interface
- Manage data through GitHub comments, bot opens PRs
- Encourage contributors to nominate themselves
All Contributors
Who uses it?
Projects who
care deeply about acknowledgement
are not represented by commit history
(often) are adjacent to academia
have a significant web output
- Want their contributors to feel *recognised* and *valued*
- Lots of effort/importance to community management, promotion, funding and sustainability
- Particularly in academic-adjacent projects,
where there is effort to make fairer taxonomies for contributors to papers
- Particularly in projects with a significant web output,
where the generation of an HTML table is a benefit
All Contributors
Who uses it?
The Turing Way Pathway by
Scriberia , CC-BY 4.0
10.5281/zenodo.13882307
- *The Turing Way*, where I'm a community member and contributor
- A collaboratively created guide for open, reproducible and ethical data science
What happened?
Ominous Clouds
No new releases
Longstanding bugs and requests
Little engagement
- If you browsed the GitHub org, you would see signs of poor health
- No new releases
- Longstanding bugs and issues
- Overall lack of development, and lack of maintainer engagement
- **LINK**: But I've just said it is highly valued by users, so how can this be?
What happened?
If it is so popular …
Small maintainer team 🐛
Other commitments 👔
Burnout or loss of interest 🔥
Users not becoming contributors 🚀
- I think there are a few causes, which are quite common
- Lots of work split between just a few people
- Maintainers all have lives, you can't blame them for prioritising other things
- Over time, the project could come to be seen as a burden, rather than a joy
- Not successfully growing users into contributors and contributors into maintainers
- **LINK**: To focus on a key problem, bus factor
What happened?
Bus factor
GitHub
< 5 maintainers (fewer active)
Crowdin
2 managers
Domain and DNS
1 manager!
Hosting
1 manager!
- Small bus factor for
- GitHub org
- Domain and DNS (one person!)
- Hosting (Netlify) (one person!)
- Large parts of the project where essentially reliant on the original developer
- Jake Bolam
- Maintenance of all contributors didn't fit with their life
- Principal Software engineer at Instagram
- Whether professional or personal commitments,
it doesn't matter either is valid
- **LINK**: For resurrection, there has to be death
Resurrection
The Catalyst
- **Trigger** Website goes down,
not too surprising when we are relying on one person
- Noticed by users
- Leah (founder and executive director of pyOpenSci) started a discussion
- People shared how much they valued the project and would be upset to loose it
- helped drive formation of a new maintainer team, with volunteers stepping up
Resurrection
Forming a new maintainer team
Danny
Felipe
Jim
Josh
Leah
Maximilian
- Convened a loose team
- Danny
- Filipe (fi-lee-pay)
- Josh (previous contributor)
- Leah (like Star Wars!)
- Maximilian (previous maintainer)
- And support from creators/maintainers Jeroen (yuh-roon), Kent, and Jake
- Working together through
- discussions/issues (async)
- synchronous calls
- **LINK**: decided the first thing was to approach docs
Resurrection
Docs
Governance maintainers by
Scriberia , CC-BY 4.0
10.5281/zenodo.13882307
Why docs?
- Urgent and fragile, the site had already gone down
- A good way to learn more as a maintainer
- Affects the perception and ability for people to engage
First steps
Making changes
Clean code by
Scriberia , CC-BY 4.0
10.5281/zenodo.13882307
- In the docs "code" the challenges were
- *tech* Relying on old dependencies
- *content* Out of date information, lacking dev documentation
- Docs were built using Docusaurus, more than one major version behind
- There would be breaking changes anyway
- Opportunity to switch to Astro
- Opportunity to document the site build/contribution process
First steps
Building Resilience
Book Dash collaboration by
Scriberia , CC-BY 4.0
10.5281/zenodo.13882307
Wanted to build in resilience from the beginning
- (Email) conversations with previous maintainers about getting access to infrastructure
- Decide whether to transfer, or create new orgs/teams
- A number of things were personal accounts,
and needed to be moved to team access
Where we are now
Back online, back under control ✨
Starting maintenance of CLI 🧑💻
Improved bus factor 🚌
GitHub
9 maintainers (3 admins)
Crowdin
5 managers
Domain and DNS
2 managers
Hosting
5 managers
No live translations 😭
- Site is live using up-to-date dependencies
- Work is starting on CLI maintenance
- Updating deps
- Getting control of publishing
- More resilient with large maintainer team on GitHub and domain/hosting
- We have lost translations from the site in the migration
- As files were moved about, and updates were made at the same time,
it may take some effort to revise the old translations and adapt them
- Some translations have only a small % of lines.
The Crowdin CLI doesn't make it easy to filter based on completeness.
Uncertainty about whether to publish incomplete translations.
Where we are now
Our priorities
Readable code by
Scriberia , CC-BY 4.0
10.5281/zenodo.13882307
- Short term
- Get translations back on the site!
Very important for accessibility (and in respect of those who contributed)
- CLI release
- Get access to remaining infrastructure, bot for example
- Start bot maintenance
- Longer term
- Build up contributors and community
- Build a route for users → contributors
- Better share library components between bot and CLI
- New features and enhancements
- Challenges
- Difficult to pick up a large(ish) codebase as a new contributor
- Team needs to do some work to get more familiar with JS
- Still some infrastructure (possibly undocumented) out of our control
Lessons
Build in resilience 🪢
Focus on what you can contribute ❄️
Embrace going slow 🐢
Work together, with a plan 📜
Put maintenance over features 🛠️
Beware of bike-shedding 🚲
- Build resilience into your team from the ground up.
Document what infrastructure you have, who has access
- Transferring infrastructure is difficult
- Don't attach infrastructure to individuals
- Perhaps most of the time/effort has gone into coordinating with people who are time-poor
but are the only people who can help
- Do what you can, all contributions are valuable
- Don't worry too much about what you can't do
- That doesn't just mean what you are technically able to do,
but also what you have time and capacity for
- Embrace going slow
- We all have other commitments, some things are more important
- After a day or week of work (possibly on software), maintenance in your free time may not seem fun
- Work together and have a plan
- Community projects are about cooperation
- We all had opinions on priorities, choice of tools
- It was difficult, but important to have conversations and come to an agreement
- Put maintenance above features
- The most important thing, is the software keeps working.
- Builds, packaging, dependencies, bug fixes
- But
- Be careful about bike-shedding
- Focus on what is really valuable
Has this happened before?
Depiction of an ouroboros from
Parisinus graecus 2327 , 1478, unknown illuminator. This work is public domain.
If there is a community , a project can live 🌱
- This may have happened before
- Doing some archaeology
- Project has distinct phases with different maintainers
- Project start in 2016 Jeroen Mengels, spec and CLI
- Quiet, various contributors
- Bot start in 2019 Jake Bolam and Maximillian Berkmann flurry of activity
- Quiet but stable, various contributors, Maximillian as maintainer
- You can see distinct periods of development, maintenance and hibernation
- **Closing**: The most important lesson, if there is a community, a project can live
- We are not the first to bring this project back to life, we might not be the last
- Maybe it is natural for smaller, community-focused projects to have an ebb and flow
- Open source means: valued projects don't have to die, they can rise again
Thanks
Jeroen Mengels, Kent Dodds, and Jake Bolam
Leah Wasser
All (All Contributors) contributors,
past and present
The Turing Way community and Scriberia
Thanks to past creators/maintainers Jeroen, Kent and Jake
- As far as I can tell …
- Jeroen (~yuh-roon) was the original maintainer/creator and made huge contributions to the CLI
- Kent was an early maintainer
- Jake was a recent maintainer and started the development of the bot