What is the best way to upgrade TF code repo built on version 0.12.31 to latest version

We have a very old terraform code repo built on version 0.12.31. We need to upgrade it to latest version. What are the best practices we need to follow ? On searching I found out that such a big upgrade should not be done directly, rather first upgrade to some intermediate version ex: 0.13.x . Looking for proper steps we need to carry on for upgrade.

There are migration guides for each version here: Upgrade Guides | Terraform | HashiCorp Developer

So if you are on 0.12.x currently, you should follow the guide for 0.13.x first, then 0.14.x next, and so on… You can use the drop-down menu at the top of the page to see the guides for versions newer than 1.1.x when you eventually get there.

Your providers may or may not also have their own migration guides as you move through their versions too. The AWS provider, for example, has a Guides section on the left sidebar for their migration guides: Terraform Registry