Welcome¶
Note
This guide and collection of resources was created as part of a workshop at the Openmod 2025 in Stockholm and to create a database for classic questions in general.
Software development can be hard and most people struggle with similar problems. But there are many low hanging fruits with tools and processes that make it easy to build your own open source software.
This document will give you a brief introduction to the different steps you can take to get your project up running and sustain a healthy open source project.
Topics¶
- Write - Get started with writing your code
- Build - Create a python package
- Test - Add testing strategies to your project
- Format - Use code formatters to make your code look nice
- Type - Use type hints to make your code more readable and maintainable
- Document - Publish documentation and a API reference
- Release - Choose a release strategy
- CI - Use continuous integration to automate your workflow
- Publish - Get your package out to the world
- Maintain - Keep your project alive
Info
It is not a complete guide but rather a collection of resources and links to help you get started. The goal is to provide you with a starting point and some best practices that you can follow to make your project more successful.
Contributing
Any contribution is welcome!
- The guide only provides a couple of tools and topics. If you have a tool or topic that you think is missing, please add it to the list.
- Any typos or mistakes in the text? Please open an issue or a pull request. You can get to the source code of this page by clicking on the pencil icon in the top right corner.
Guide for the Workshop¶
The document only provides information. During the workshop there are multiple things you can do:
-
Demo project
Each section links to a demo project that shows how you could implement the topic. You can create your own project and use the demo project as an example. Or just jump into the topic you are interested in. Maybe you want to publish the project on the PyPi test server or play around with different testing strategies.
-
Improve your own project
If you have a project that you want to improve, you can jump in at any topic and work on your own project. Maybe it's time to add a formatter to your project and discover some linting rules. Or you start to add some tests which you always wanted to do. Maybe you have a running PyPi package already, but you want to make it available via conda as well.
-
Share your own experience
If you already know most of the common steps involved in package development, you can share your own experiences. Maybe this guide misses a topic you think is important, or you think GitLab is a better alternative to GitHub.