3.0のdisutilsが2to3に対応してるので、
出来る限りブランチ作らないで済むような配慮はあるみたい。
勿論、それぞれのバージョンでのテストは必要になるけど。

3.0の紹介にあるような変更は自動変換で殆ど2to3で自動変換される。
でも、流石に全部とは言い切れない。細かいところは手作業による修正が必要。
特に面倒だと思った所は文字列周り(repr, encoding)かな。
大きな変更は不要なはずなので、テストさえしっかりと書いてれば(大前提)それほど大変な作業にはならない。

python2.6 -3警告オプションでも、2to3でも補足されない変更は python-porting(ML)にも幾つか挙がってる。
* file -> io.FileIO
* doctest内等での文字列の表現。 'foo' -> b'foo'
* os.path.walk
* etc...

後方互換を残し && 読みやすいコードを心掛けたいなら、多少工夫が必要なケースもあるけど、
リファクタリングする丁度良い機会にもなる。


# 3.0対応ライブラリ一覧 @pypi
ttp://pypi.python.org/pypi?:action=browse&c=533&show=all
他のプロジェクトでもtrackerやレポジトリのbranches覗いてみると、patchや3.0移植作業中のものが結構ある。

# djangoの3.0移植の過程のまとめ
ttp://wiki.python.org/moin/PortingDjangoTo3k