According to CNet, the free upgrade still works -- cnet[.]com/how-to/upgrade-to-windows-10-free-heres-how/
Because it’s not supposed to work – the free upgrade officially ended years ago – I don’t feel comfortable saying with any certainty that all of the ways you could upgrade 7 to 10 for free would work today, but you might decide it’s worth a try.
Originally the free upgrade only worked if you upgraded an existing, activated copy of Windows 7 or 8. Later it worked installing a fresh copy of Windows 10 on a device where an activated copy of Windows 7 was present. And Microsoft loosened their upgrade policies further, where all you needed was the key used to activate a copy of Windows 7 or 8 – it would work to activate Windows 10 on a device that had never had Windows installed. If you take a DIY approach, upgrading your PC or building a new one, restoring a backup of Windows 7 or 8 from your old hardware to a new partition on the new PC before installing Windows 10, and not attempting to start that old copy [which would deactivate it], *might* cause that copy of Windows 10 to self-activate. And if that didn’t work, maybe entering the key for that older copy of Windows will.
If you buy a new PC or laptop it’ll probably come with a copy of Windows 10 Home. If you have a key for a non-Home version of Windows 7 or 8 [Windows 8.1 Pro was common], it *might* work to activate a pro license for that installed copy of Windows 10. If you have a new laptop or PC, or if you’ve upgraded the hardware on your PC, or built a new one, if you can get your existing copy of Windows 7 or 8 running on the new hardware, upgrading that copy to Windows 10 should preserve most of the software installed in that older copy of Windows. And if it’s a new device that came with a Windows 10 license, that license is tied to the hardware, so that copy of Windows 10 you got from upgrading Windows 7 or 8 should activate regardless. However, Microsoft has not made it easy to run Windows 7 on new hardware.
When you install Windows, or when you migrate an existing copy to new hardware, Windows setup will look for any needed drivers so Windows can talk to the new hardware. Microsoft has made sure that Windows 7 Will Not find the drivers it needs to run on newer chipsets. Notably this means no working USB, so no working keyboard or mouse. There are lots of work-a-rounds – Google, usually including your new hardware in the search terms – but I don’t think any of them are certain to work every time. You might use a Bluetooth dongle, especially one that includes its drivers stored on the device, and then use a Bluetooth mouse & keyboard to install the needed drivers, e.g. AMD offers Windows 7 drivers for its X470 chipset. Or you might try installing the needed drivers beforehand or include them using 3rd party migration software [e.g. Paragon’s tools], or maybe simply add a USB card to the motherboard.
Alternatively, you can upgrade the copy of Windows 7 or 8 to Windows 10 on your old hardware, preserving most of your software, then copy that installation to your new hardware. This might not always work, & if Windows 10 activated on your old device, you’ll probably loose that activation on the new one [with a cheap key from SCDKey that might not matter much]. Windows 10 will automatically look for new drivers as needed when moved to new hardware, and that usually works, but again, not always.
Migrating a copy of Windows to new hardware can mean working with partitions and boot files. Windows 10 normally uses a small FAT32 partition with the boot files, a 16 MB partition for Windows use, the system partition where Windows is installed, and a 500 MB recovery partition with the basic files needed for Windows 10 to repair or restore itself. If you bought a new PC or laptop, you’d probably want to reduce the size of the system partition, adding a new system partition in the now available free space for the copy of Windows with all your software. Use the free EasyBCD to add that copy of Windows 10 to the boot menu – then every time you cold start or reboot the device you’ll see a menu asking which copy of Windows to start. If later you wanted to get rid of either copy of Windows 10, delete its system partition, and optionally enlarge the remaining system partition to take up that free space – you may want to use the partition to store stuff like games – and the next Windows 10 version update in early 2020 should redo that recovery partition to match. You can use EasyBCD to remove the copy of Windows 10 from the boot menu and set it to not display.
That’s the safest route, since if the copy of Windows with all your software doesn’t work for some reason, you’ve still got the copy of Windows 10 that came with the device. It also preserves the working boot files on the new PC or laptop – you just add the 2nd copy of Windows to that existing setup. There is a chance that you could have problems related to Secure Boot, requiring research for a fix for your device, or possibly turning off Secure Boot. Where it could get more complicated is if you replace the copy of Windows that came with a new device with Windows 7 or 8, or a copy of Windows 7 or 8 that’s been upgraded to Windows 10, because then you have to worry about the Windows boot files. Unfortunately, there’s an awful lot that has not been well documented regarding Windows boot files [BCD], while device BIOS vary widely, and what works with some hardware will not work with other hardware -- you can’t usually predict the outcome.
The copy of Windows 7 or 8 on your old hardware might be set up to boot UEFI or Legacy, and that would carry over to the copy of Windows 10 if you upgraded it on that old hardware. A new PC or laptop that came with Windows 10 would probably be UEFI. If you replace that new copy of Windows 10, rather than adding a 2nd copy, there’s a chance that if you deleted the system partition, and replaced it with a restored backup image of the old Windows system partition, it might start normally. If not, and if your old hardware used UEFI, you could just copy the boot files over – restore an image backup for the boot, system, & recovery etc. partitions. If it won’t start and the old hardware used Legacy booting, you could try to set the new PC or laptop BIOS to use Legacy mode, and use the old boot files. You could also modify the existing boot files to work with that old copy of Windows [the one with your software] or add a new set of the needed UEFI boot files. That’s usually best done with the new PC or laptop hard drive connected to another running copy of Windows, either connecting the drive to another Windows PC or laptop, or booting the new PC or laptop to a drive or USB stick with WinPE or Windows To Go. You can use Windows built-in cli tools &/or EasyBCD – in rare cases you might have to use specialized tools from Paragon or Macrium etc. to modify/repair the boot files.