
About
Open Source

@_KtorZ_
@KtorZ


KtorZ <Matthias Benkort>
Technical Director of Open Source Development

What is Open Source
A decentralized software development model focused on public collaboration.
It's about sharing
- code
- development effort
- roadmap
- design decisions
- accountability

It not (only) about making source code public.
Why this project exists?
Is there any, better or worse, alternative?
How can I contribute to this project?
Where can I find more information about how to use the project?
How can I assess the quality / maturity / robustness of the project?
What if the maintainers die tomorrow, can someone take over?
...
How to Open Source

Project Management

Choose a license
Keep a Changelog

Have a Roadmap

Keep README succinct

Document design decisions

Know your platform
Github issues / discussions
- labels & milestones
- Polls, Q&A, discussion threads
- TODO lists
- Automatic cross-referencing
- Pinned items
Github projects
- Kanban boards
- Multi-view spreadsheets
- Automated issues / PR templates
- Insights & charts
Use questions in templates

Respect your own rules

Tidy your repository


Engineering
Provide instructions

Use standard tools


Document interfaces

Test your code
Embrace continuous integration

Know your platform
Github flavored markdown
- lists, tables, images
- todo lists
- folded sections
- footnotes
- info/warning admonitions
- diagrams (via Mermaid)
- LaTeX (via MathJax)
Github workflows
- Multi-jobs matrix
- Workflow template / dispatch
- Cron jobs
- Build artifacts
- Self-hosted runners
Package your software


Don't break things

If you have to break things
- Provide alternatives or migration paths
- Give heads up well ahead of time
- If possible, deprecate first
- DOCUMENT IT
Provide benchmarks / demo


Community
Establish a Code of Conduct

Respect your own rules
- Don't take it personally
- Use non-violent communication
- Think before you write
- Avoid replying if you're not in the mood
- Assume people do their best
- Be humble
Engage with your community




Have a brand


Provide clarity


Be a good neighbor



Help contributors

Please add tests, write a changelog, move files around, repair our CI, change all variable names to my liking, move this function to another module, rebase on an unknown branch...




Thanks!
I'll take it away from here.
Be patient
... and with people
With your project...

Merci.

Open Source Handbook for Software Engineers
By Matthias Benkort
Open Source Handbook for Software Engineers
- 156