Skip to content

Recitation 3: Software Archaeology

Overview

In today’s recitation, we will practice getting to know an unknown codebase specifically in the context of a bug in a python-clone of Instagram, Albumy.

Let's fix some bugs!

Check out this issue of the bug. Currently, comments can’t be deleted. Even if we click on the delete button, it does not work.

Task 0: Clone the repo

  • Fork this repository and clone it. Follow the README to install the necessary modules and run Albumy.

Task 1: Reproduce the bug

  • After you've successfully ran the program, go through it to reproduce the bug.

Task 2: Diving into the code and fixing the bug

Let’s learn more about this bug! Your high-level goal is to identify the code producing the bug and remember more about the bug en route to fix it. We’d like you to dive into the codebase and “excavate” the buggy code.

Try some or all of the following tasks:

  • Explore the albumy directory
  • Can you find functions that look like the same buggy code you’ve found?
  • Use your IDE to jump to a definition implicated in the code you’re debugging
  • Try making a change! It will reflect in the UI. Can you fix the bug?

Task 3: Making a Pull Request

If you’ve finished all that,

  • Add and commit your changes
  • Push the code to your forked repository.
  • Create a pull request that links the issue.