Code Modularity and Boundary Enforcement
A Packwerk Retrospective - Shopify

A Packwerk Retrospective - Shopify

2/7/2024

What this post added

This post is a retrospective on Shopify's Packwerk tool, detailing its origins as a dependency management and privacy enforcement tool. It discusses the removal of privacy checks due to implementation issues and misuse as an API design tool. The post highlights Packwerk's weaknesses, such as its inability to infer runtime constants and its reliance on Zeitwerk, and the challenges developers face in defining package dependencies and resolving violations. It also recounts an experiment to isolate a 'Platform Essentials' package, demonstrating the trade-offs involved in achieving zero violations and dependencies, and uncovering a bug in Packwerk.

Read the original post ↗