Normally when you emerge things and don't specify -u, --oneshot (and a few other situations), they're added to the world file. This doesn't happen with emerge -n and I can't work ouh why that would be. There's one really good reason for having this behaivour: adding installed things to the world file without having to re-emerge them. This is very useful when you're using depclean, for example. If there's a good reason for not adding to world file when using -n please mark this WONTFIX or whatever. Otherwise I'm happy to submit code.
This works in portage-2.0.51.20. Are you using 2.0.51.19?
This works here and nothing has changed that could affect that between .19 and .21 that I know of.
Found the source problem by doing diffs of the bin/emerge binary between .19 and .20. Attached. -n adds to world in .19 but not in .20 or above. I have also attached some script output which shows this. No pertinent changes were made between .20 and .21 that I could find. I used clean portage source files from mirrors, so I'm sure the problem isn't local to my box. Please try again to confirm this. If you still can't, then leave the bug closed and I'll try and work out why I've become insane.
Created attachment 58095 [details] type script showing misbehaivour Desired behaivour from .19, undesired from .20
Created attachment 58096 [details] part of a diff between .19 and .20 bin/emerge I don't know python but the removal of this wodge of code looks like a likely culprit.
Verified
Fixed
Thanks. :)