For those on a budget or trying to achieve maximum longevity I think that the best time to upgrade is one year into the next console generation, which is probably when I'll go through with it. First-year games will be cross-gen so they'll surely run on whatever hardware you've already got and by then we'll have a clear indication of AAA multiplatform game system requirements.
On a budget, perhaps, but for longevity now will be fine. I built my current PC back in mid 2011, two and a half years before the PS4 launched (i7 2600k, 16GB 1600mhz RAM, GTX 560 Ti upgraded to 970 then upgraded again to 1070). I feel like I could get another year out of this 8 year old stallion, but I'm starting to worry about the health of my SSD and HDD (also both 8 years old).
We know consoles will use a slow variant of an 8 core Zen 2 CPU, so the 12 and 16 core variants are absolutely future proof for the entire gen, allowing for mid gen console refreshes to up the core count in consoles without posing a threat to your build. SATA SSDs are fairly cheap today and not noticeably slower than NVME SSDs for gaming. 3600mhz+ RAM will also be fine for the entire gen. 4000mhz+ would be ideal. GPUs I think are the only part of a future proof build in a rough spot this year, but then... GPUs are rarely ever future proof and need upgrading every 3 or 4 years at the latest if you want to keep hitting high/ultra settings in the latest games.
I'll be putting together a build at the end of this year with whichever 12+ core CPU is fastest for gaming, 32GB of 4000+ MHz RAM, and a 4TB SSD (personal choice, I hate managing multiple drives, and need a big drive for all my work, not just gaming). I'll keep hold of my GTX 1070 and my 1080p monitor until late next year, then buy an ultrawide monitor and probably a 3000 series RTX card.