Embracing the Replace: Our Journey to Fixing the Plugin System in HashiCorp Packer
summary
Fixes a broken Gob-based serialization in the shared cty type library by forking cty, reinstating Gob, backporting features and automating propagation to 40+ plugins using Go’s replace directive and a new packer sdk fix command; rollout runs over eight weeks with CI checks, Dependabot upgrade notes, and nightly internal builds; result: plugins keep working while a longer-term migration to protobuf and msgpack for serialization is developed and staged for release.
AI-written summary · about
chapters (13)
- 0:00Introduction to Packer
- 0:30Packer architecture
- 1:14The critical dependency issue
- 1:50Impact of breaking changes
- 5:56Evaluating solutions
- 6:31The plan to fork cty
- 6:53Using go replace
- 7:29Automating the solution
- 7:47The packer-sdc tool
- 8:45Tooling and testing
- 9:40Dependabot rollout
- 10:08Current state and future
- 10:24Key takeaways








