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