Releasing an open source project is easy. Push code on Github and (optionally) release the package on PyPI and distribution packages. How do you build trust into releases so that your users can trust your product? If your product is critical to someone’s infrastructure, trust is even more critical. This talk aims to lay down basic guidelines for releases. I’ll be specifically taking examples of requests, Gluster, and Gerrit to talk about trust.
This talk is intended to remind the audience about their users. A good product is not only about good code. It’s also about good experience and empathy for solving your user’s problems. For instance, your users are not going to be happy if you force large changes after an upgrade.
- Trust and importance of trust in releases
- What not to do.
- Importance of publically visible tests: Linting, Unit tests, Functional tests, API tests.
- Everything cannot be tested, some things may need to be manually done. Build your pipeline so you only test what cannot be automated.
- The need for Release notes and Upgrade guides.
- Remember to create a good experience for all your consumers - end users, sysadmins, and developers.
- Lessons from requests for developer experience.
- Lessons from ansible for for sysadmin experience.
- Lessons from Gerrit for user experience and upgrade experience.