The latest is always going to be the "best" independent of the python version. There's constantly bug fixes and features going into flake8 and the tools it wraps. 2.5.4 was released in 2016 when many of the python features that are supported by the latest versions didn't even exist (f-strings, generalized expansion, etc.)
My team has been testing all of our python code for years using flake8==2.5.4 and this has worked well for us until recently.
We are having more and more strictly python3 code beijing written and we have found a bug in flake8==2.5.4 that has been fixed and an upgrade of the version will solve our problem.
The issue is that upgrading the version leads to a lot of our code that has already been checked in to have syntax problems. We are willing to update our flake8 version if we can find evidence that it is more effective to test python3 code with a newer version of flake8 such has flake8==3.7.9.
Please let me know any and all of your thoughts on this topic.