Versioning components can be done in any tool, but is especially nice in Figma because you can add and update component descriptions. Using this method will help keep consistency throughout your product design system and linked design files.
Before hopping into the tutorial, I should note that I learned this tip from the man, the myth, the legend, Anthony DiSpezio @edispezio on a Twitch livestream via /FigmaDesign. Anthony has some awesome tweets, so go check him out. Also, pay a visit to FigmaDesign on Twitch during their streaming hours. They have some awesome tutorial sessions that will help you become a better designer.
For this tutorial, I used the Contra Wireframe Kit available the Figma community. Check out the link here!
In this example I'll be using a button component to show how components can be versioned out/in. The first step in our process of versioning components is to change our master button component to a light red hue (or a color that makes sense to you that would be a good indication of an old component).
While the component is selected, add a component description such as "old component + emoji"
Next, create an artboard or page within your file and call it "old components" and move the old component to that artboard or page.
As a result, you will see that where-ever you had the old component, it will be updated to reflect the old component color.
From here, you'll want to design your new component and start versioning it into your file. You can do this by duplicating the old component → Detaching the instance (Option + Command + B) → Creating a new component (Option + Command + K). Then, simply add the new component back to your components page & artboard.
When you are ready, you can now swap out any old components within your product. Boom! Easy component versioning!!
This concept of versioning components may be sort of common sense, but I promise that if you practice this and use it over time, it will help you keep a log and record of all old components while allowing you to stay consistent and know what needs to be updated across your entire product.