I run into issues when I use emerge update world on stable. Yes I know they are solvable by using testing in the keywords file, but still there is room for improvement. Yes I'm aware of --keep-going. Even with that it still breaks on the following scenario. If I am running stable but have a few testing ebuilds installed I run into the case where the a new testing ebuild will be released and it will have deps that I dont have the testing keyword enabled for. There should be an option for either or both of the following behaviors: 1) Portage tries to emerge a testing ebuild encounters a dep in testing that it only has the stable keyword for. The dep in this case "inherits" the testing keyword from the pulling package. The emerge completes successfully and the update world completes successfully. For the sake of this bug lets refer to this as --deps-inherit-keyword. 2) Portage tries to emerge a testing ebuild and encounters a dep that it only has the stable keyword for. The ebuild inherits the block from the dep and is skipped in an update world. The emerge of that specific package is skipped and the update world completes successfully. For the sake of this bug lets call this --skip-on-dep-block. This would make update world much more robust. My driving desire is that I want update --deep --newuse --keep-going world running in a cron job and be able to count on that it will update the system when the ebuilds go stable (even if it has to wait for the deps to go stable). It should never break and always update what it can and log when it cant. Reproducible: Always
(In reply to comment #0) > 1) Portage tries to emerge a testing ebuild encounters a dep in testing that it > only has the stable keyword for. The dep in this case "inherits" the testing > keyword from the pulling package. The emerge completes successfully and the > update world completes successfully. This is somewhat related to bug 280097. > 2) Portage tries to emerge a testing ebuild and encounters a dep that it only > has the stable keyword for. The ebuild inherits the block from the dep and is > skipped in an update world. The emerge of that specific package is skipped and > the update world completes successfully. This is already handled automatically by the code from bug 137562.