Maintaining Your Sanity While Maintaining Your Open Source App

Summary

Django has a thriving community of open source pluggable applications. Maintaining an external application can be a rewarding experience and doesn't need to take over your life. Learn what it takes to package, document and test your Django app so that others can use and contribute to what you've built.

Description

Introduction/Overview

So you want to release your Django app into the wild. Now what? I'll go over packaging your application to add to the Python Package Index (PyPi), creating documentation to host on Read The Docs and setup an environment to test your application against different versions of Python and Django. I'll also go over some things you should and shouldn't do when maintaining your app over the years.

Packaging

  • Creating a setup.py
  • Registering your package
  • Uploading your package
  • Sane versioning with PEP386

Documentation

  • Getting started with Sphinx
  • Using Read the Docs

Testing

  • Running your app tests
  • Testing multiple Python/Django versions with tox
  • Testing your documentation build

Things to Do

  • State your goals
  • Let others help you
  • Include a license
  • Prepare for the future

Things to Avoid

  • Rejecting every contribution
  • Accepting every contribution
  • Developer burnout

Conclusion

Reusable applications are my favorite feature of Django. It does take work to maintain an open source app but it can be quite rewarding. If you use these tools you can help provide your users with the best experience and empower them to help you with your application.