đ ïž Do you need to version your component library? (#36)
June 22, 2021Iâve heard a lot of horror stories about teams that donât version their component library. Iâve only heard one success story. Not great odds for team no versioning.
Sometimes teams donât version their library because they want to automatically propagate newly-available changes across all subscribing applications. It would be great if teams that own individual repos didnât have to upgrade their codebases to work with new components?
Sadly, this dream is too risky for most teams.
Other teams donât configure versioning because they want to ship components right away. They donât want to âwaste timeâ with infrastructure and automation. I think we especially notice this with component libraries because design systems teams have to prove their value every quarter to stay funded. Itâs easier to sell the value of a design systems team with a lot of pretty buttons than by running commands in your terminal.
Iâm a big believer in YAGNI. I donât like writing code for ânice-to-havesâ or features we âmight needâ when we havenât even built the core product yet. But if youâre building a component library, versioning is part of the core product.
To answer the question: you almost always need to version your component library. Ideally, youâll use semantic versioning, but even just bumping the version incrementally is better than nothing.
I can only think of one case where you donât need versioning. If you work on a component library where all of the subscribing applications have >80% test coverage, youâre using TypeScript, and you have great QA testers, then go ahead. For everyone else, youâre setting yourself and your teammates up to fail. If a bug caused by your component library results in a page at 3am, good luck getting your teammates to adopt it.
Are you struggling with your release strategy, or trying to figure out how to configure versioning and publishing in your own library? I offer 1:1 consulting sessions ââ maybe I can help! Reply to this email and let me know what you're dealing with.
Talk soon,
Mae