PyCon India 2025

Reviving, modernizing, and packaging unmaintained code
2025-09-14 , Track 2

Osdag is a steel structure design tool intended to comply with Indian standards, in development at IIT Bombay. In this talk I share my experience developing an installation for the same after it has been in stasis for 4-5 years.

Topics touched include changes in the python ecosystem in this time that affect this tool, conda/pixi packaging and testing.


  1. Introduce Osdag: purpose of software, increasing confidence in steel within India, steel standards covered etc.
  2. Describe development scenario and challenges: mainly developed through interns, hadn’t had active development for 5 years. In this time there were drastic changes in python itself as well as dependencies. This led to even the existing installer (with dependencies included) to fail in newer operating systems. The Windows installer itself involved 3 entities (Conda, MikTeX, and Osdag itsef), which wouldn’t always work well.
  3. (Re-)building experience: making changes relevant to Python dependencies (e.g. changing all floats to ints for certain PyQt methods) and using modern entry-point based techniques (e.g. relative imports and pyproject.toml); making osdag itself available on Conda.
    3.1. Issues with first rebuild: Conda sometimes has issues resolving dependencies (with possible, unreliable workarounds). MikTeX (used to generate reports) has a mind of its own.
  4. Current build approach and plans: Pixi to ease conda build and lock dependency versions; one click installer for windows including own LaTeX distribution; move from PyQt5; more robust testing framework; UI improvements
  5. Gain wisdom about next steps and invite contributions: Any first opinions (part of Q&A or offline chat); Internships and other contribution options for students; Open positions (depending on situation at time of talk) for professionals; screening task based application for recruitment

Target Audience

Intermediate

A mechanical engineer by training, I am now a software developer based in India, currently working as a project staff at IIT Bombay, Mumbai. I have been a contributor to FreeCAD since 2016.

In FreeCAD, my focus has been mostly in the 2D constrained drawing workbench “Sketcher”, as well as the underlying solver “planegcs”. In further detail, my interest has been in adding support for general curved geometry.