Effort - is this actually something the team wants to undertake
Value - we want to highlight upgrades the same way we highlight merges
Architecture
Flask monolith - were using pip tools, now poetry for deps
Some other apps have fallen by the wayside
Stephen has a particular focus on performance - database can be a bottleneck
Infra team owns AWS layer
Teams can add new packages as they see fit
Security
Eli from Security frequently getting tagged in to review Dependabot alerts
Part of the move to Poetry was better support from Dependabot
Dependency Management
At one point there was an effort to upgrade everything, which was deprioritized
Nothing stopping folks from adding new / small packages - less layers of approvals at Ramp
Non-security upgrade decisions for smaller packages are generally due to performance / feature improvements. This is generally happening reactively
Big upgrades become items on the backlog (Flask, SQLAlchemy, Celery, etc) - these aren’t just one engineer. Particularly gnarly for packages like Celery, which aren’t well maintained
Typically Stephen’s team curates docs / tooling for folks that need to fix breaking changes associated with large upgrades
Rolling out punch lists to guide and track upgrade progress
Codemods
Stephen’s team writes codemods where appropriate to make a lot of the simple changes (typically can do 60%) of the work
Have used Semgrep - good for detection, bad for rewriting