Tools for maintaining an open source Python project

A walkthrough of some great tools I use for developing, testing, maintaining and managing projects

Ben Nuttall

Community Documentation Git Open-Source Test Libraries (pytest/nose/...)

See in schedule

There is a wealth of amazing tools freely available to open source software developers to use to maintain their projects. Practically every problem we face or are likely to face in software development has been lived through and solved many times over. Patterns emerge for dealing with development practises and we build our software using the tools made by the previous generation of developers.

We're very fortunate to operate in an amazing open source ecosystem where we've learned we're stronger when we build on each other's foundations. We're constantly laying new foundations for ourselves and we share our ways of working with the world. We now have a very sophisticated set of tools for developing, managing, testing and documenting our new projects without reinventing the wheel.

But we don't discover all the tools at once - we pick them up as we go along, as we find uses for them and we hear about them. I'm going to share a range of great tools I use to maintain some popular open source Python projects, and explain how the difference they've made.

The talk covers:

- Software packaging and distribution
- Licensing
- Virtual environments
- Software testing
- Continuous integration
- Git & GitHub
- Contributor community
- Project management tools
- Documentation tools

The talk demonstrates examples for development of Python projects on Linux, but the tools can be used cross-language and cross-platform.

Type: Talk (45 mins); Python level: Beginner; Domain level: Beginner


Ben Nuttall

BBC News Labs

Ben is a software engineer at the BBC, working on building prototypes in BBC News Labs. Previously Ben was community manager and technical manager at the Raspberry Pi Foundation. He's the creator of the gpiozero library and the piwheels project, as well as maintaining and contributing to other open source projects. He also writes articles about Python, Linux and more for opensource.com.