GNOME 3 should reach Factory soon as it got pushed this morning. Since that's a big change, it will likely have some impact in terms of build failures, and create some new ones in Factory. Here are the common cases that should help you fix those issues. If you hit something else, don't hesitate to ask the GNOME team for help.
Common causes for build failures ================================
a) Some devel packages got renamed
Because we have both gtk2 and gtk3 versions of some libraries, some devel packages have been renamed. For example, what used to be gtksourceview-devel in 11.4 is now gtksourceview2-devel. Same for libunique-devel (now libunique1-devel), libwnck-devel (now libwnck2-devel), and more.
The solution here is to move to pkgconfig() BuildRequires: the devel package renaming won't have an impact anymore. This is available since openSUSE 11.3, if I'm not mistaken.
For instance, instead of using BuildRequires: gtksourceview-devel you would use: BuildRequires: pkgconfig(gtksourceview-2.0)
gtksourceview-2.0 is the basename (without the .pc extension) of the pkg-config file provided by the library.
b) configure fails, complaining about a library that cannot be found
It's obviously hard to know what the exact issue is, but it's possible that you were relying on the fact that one of your BuildRequires was requiring a package that should have been in your BuildRequires (a direct dependency of your package). So it was working before, but that was a bit lucky.
The solution here is to explicitly list all the build dependencies as BuildRequires, instead of relying on another package to bring them in (unless some well-known cases, like glibc-devel, or the glib2-devel/pkgconfig(glib-2.0) when you have GTK+ as BuildRequires, etc.)
c) NetworkManager API changed
With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully.
d) libnotify API changed
A few functions were removed, and an argument to notify_notification_new() was removed.
The solution for this issue is not too hard. The first thing to do is to check upstream if a fix got committed already. Else, a patch can be easily written. An example can be found at: https://build.opensuse.org/stage/package/view_file?file=tsclient-libnotify07...
e) Package tries to build a gnome-panel applet
Because of the port to GTK+ 3 and D-Bus, the libpanel-applet API has changed, and some porting is needed. This is not a trivial task, although it's definitely doable. It's unclear to me how many packages outside of GNOME:Apps/GNOME:Factory are affected.
Note that it can affect some python apps that need the gnomeapplet module (which isn't built anymore).
There are several solutions: + look what upstream did in git/svn, and: - if they removed it, just stop building the applet - if they ported it, take the patch and apply it + if nothing is done, ping me so I know how many packages are affected. I might invest time in writing a compatibility layer if it turns out to be needed.