There are different type of releases in Yocto project
Can anyone explain the difference between these all releases, which release should a developer pick up for their hardware platform
Let me quote the official documentation, since it answers it quite well:
Major release number changes imply compatibility changes with previous releases. Minor release number changes imply significant changes up to, but not including compatibility changes. Minor rev number changes are for minor issues such as simple bugfixes, security updates, etc.
This is basically the popular semver versioning scheme
And for milestone releases we have:
These releases are performed at the end of a milestone period and are used to measure our progress in delivering new features to Yocto Linux.
More info on the milestones can be found here
When it comes to which version to choose it's something that you need to do based on the demands of the project. Basically I'd say you would either choose the latest LTS release or the latest release. You might also want to keep using the latest during the early development phase, to later settle on an LTS release to maximize the amount of time the release will be supported after it's complete.