Python Project Workflows - Continuous Deployment Friendly

Abhijit Gadgil (~gabhijit)




  • Have conflicting dependencies (unpleasantly) surprised you? (Darn: It worked on my laptop!)
  • Do deterministic builds matter?
  • What about those run-time errors, which were a typo while accessing an attribute of a class?
  • Has the codebase already started smelling a bit?
  • Unit tests and what about Dockerization?

Typically, when your Python project grows beyond a few modules and your team size is more than a couple of developers, having the right tools built into your project development workflow saves one from a lot of surprises (and perhaps late night calls). In this talk, we start with challenges typically seen in Python Projects and look at ways of overcoming them, so that the velocity of code deployment increases. Specifically we are going to be looking at tools that are out there that allow you to -

  1. Properly track dependencies (pip, virtualenv and the new Pipenv)
  2. Have a separate Dev and Production environment - so that dependencies in Dev environment don't spill into Production environment.
  3. Ensure that the builds are deterministic (across developer/build machines and time.)
  4. Enforce certain coding guidelines and capture the potential 'run-time' errors right during the development (pylint)
  5. and Eventually Dockerize your application.


It's an intermediate level talk where you have already done some Python development and are at a point where you want to package, distribute or deploy your pet Project. If you are a beginner in Python, but have been involved in build/release of packages in any other languages, likely this talk is for you. If you do an equivalent of sudo pip install <foo> or sudo apt-get install <python-foo> when you want to download and use package foo, chances are you will benefit from this talk quite a bit.

Content URLs:

This talk is going to be based on a series of blog posts I have written about the same topic -

  1. Python Project Workflows - Part 1
  2. Python Project Workflows - Part 2 (Pipenv)
  3. Python Project Workflows - Part 3 (pylint)

Speaker Info:

Running a Consulting Company 'hyphenOs Software Labs' in Pune, India.

  1. Python/Go programmer - Mostly for things that pay the bills and ideas that I want to try out.
  2. Datacenter Networking Enthusiast (hacking a yet another Container Networking technology, borrowing ideas from different Projects)
  3. Eternally grateful to whoever wrote tcpdump and the new Wireshark. Number of problems solved using these tools could run into triple digits.
  4. Hates trailing white spaces in a file.

Speaker Links:

  1. Stack Overflow
  2. Github
  3. LinkedIn

Id: 696
Section: Developer tools and Automation
Type: Talks
Target Audience: Intermediate
Last Updated: