Openlibrary: Python2とPython3の両方で実行

作成日 2018年03月19日  ·  20コメント  ·  ソース: internetarchive/openlibrary

ブロック:internetarchive / infogami#56、internetarchive / infogami#50

#846で説明したように、インターネットアーカイブコードベースには、現在Python 2で記述され、Python3で非推奨になっているコードがたくさんあります。

次のリンクは、Python2とPython3の主な違いについて説明しています。

編集: @cclaussの提案

  • [x]コードベースをPython3構文互換にする(ステータスについては、Py3で実行する場合は__make lint__を参照)

    • [x]#1466 Python3で例外が発生する方法を修正

    • [x]#1509要件に__six__を追加します(以下で説明する__future__よりも微妙ではないと思います)。

    • [x]#1517Python 3では、関数パラメーターは明示的なタプルではない可能性があります

    • [x]#1603#1466から元に戻された__lambda__修正をやり直します

    • [x]#1468 catalog / marc /load.pyの不正な形式の\ N文字エスケープ

    • [x]#1501 __print()__は、plugins / upload /acs4.pyにあるPython3の関数です。

    • [x]未定義の名前__python3-mflake8。 --count --exclude = scripts / 20 、vendor / --select = F821__

    • [x] __basestring __#1563のPR

    • [x] __cmp()__#1643のPR

    • [x] __execfile()__#1525のPR

    • [x] __file()__#1564のPR

    • [x] __raw_input()__#1526のPR

    • [x] __unicode__のPR(これはトリッキーなものであり、最後まで保存するのが最善です。)



      • [x] __xrange()__#1524のPR



  • [x]依存関係を更新して、Python 3がサポートされていることを確認します(ヒントについては、#1454を参照してください)。
  • [x] __ infogami__のようなものでベンダーを修正します

    • [x] __その他のオプション__、__トリガービルド__( https://travis-ci.org/internetarchive/acs4_py)

    • [x] internetarchive / acs4_py#7

    • [x] internetarchive / infogami#40

    • [x] internetarchive / infogami#42

    • [x] internetarchive / infogami#43

    • [x] internetarchive / infogami#56#50からのCherrypickの安全なインポート

    • [x] internetarchive / infogami#50その他のPython3アップデート

    • [x] internetarchive / infogamiがPython3でTravisCIテストに合格

  • [x] Travisテストに合格し、Python3で__allow_failures__モードをオフにします
  • []テスト、テスト、テスト
@cclauss 2 Work In Progress Epic

最も参考になるコメント

これを追跡するために別の問題を作成していただきありがとうございます。 このタスクは間違いなく優先度が低いですが、簡単でも初心者のプロジェクトでもないので、これらのラベルを両方とも削除しました。

このようなものは時間に敏感であるため、3〜4歳のランダムなブログ投稿は良い情報源ではありません。 計画の目的で重要なのは、必要なライブラリがすべてPython 3をサポートする場合、Python 2のサポートを終了する場合、最新の移行ツールがどのように見えるかなどです。

ただし、優先度が低いため、当面はもっと重要なことを考える必要があります。

全てのコメント20件

明らかなことを述べるリスクを冒して、a)Python 3で機能しなくなり、b)OLで使用されるPython2の機能を特定することを優先する必要があります。

これを追跡するために別の問題を作成していただきありがとうございます。 このタスクは間違いなく優先度が低いですが、簡単でも初心者のプロジェクトでもないので、これらのラベルを両方とも削除しました。

このようなものは時間に敏感であるため、3〜4歳のランダムなブログ投稿は良い情報源ではありません。 計画の目的で重要なのは、必要なライブラリがすべてPython 3をサポートする場合、Python 2のサポートを終了する場合、最新の移行ツールがどのように見えるかなどです。

ただし、優先度が低いため、当面はもっと重要なことを考える必要があります。

すべての面で@tfmorrisとの完全な合意。
この問題を整理していただきありがとうございます。最終的にはinfogamiを維持するためのパスを把握する必要があります。

うーん、「優先順位」があり、次に「優先順位」があります。 重要なことは緊急ではないかもしれませんし、その逆もあります。 これは重要ですが、緊急ではないと思います。 十分に長く無視すると、確実に破損の原因になります。

@LeadSongDog誰に反対しますか? 優先順位に対して何を変更してほしいですか?

@tfmorris正確にあなたに反対しているわけではありませんが、一次元の優先順位が危機管理につながると言っています。 難しいものに優先度が低いとラベル付けされると、破損が発生して緊急になるまで、無人になるか閉じられます。 まったく優先しないほうがいいですか?

PR#1273のおかげで、これに関する進捗状況を追跡するTravisCIジョブがあります。

こんにちは、私はOpenLibraryを初めて使用しますが、これは私がやりたいと思っていることのようです。 これは「良い最初の問題」ではありませんが、ゆっくりではありますが、これを続行してもよろしいですか?

注:このリストは、この問題の先頭に移動されました。

また、この問題のタイトルを「__Python2とPython3の両方で実行__」に変更することをお勧めします。Python2のサポートを削除する前に両方で動作するコードベースを用意することが明らかにベストプラクティスだからです。 Python2の寿命が切れるまで423日。

@cclaussの許可を得て、タイトルが変更され、チェックリストが更新されたので、上記のメッセージを更新できますか? (2つのチェックリストが同期しなくなるのを防ぐため)

Infogami以外に、推奨できる追加のフォローアップ手順をいただければ幸いです:bowing_man:

これを実現するための原動力になってくれてありがとう!

自分にとって意味のある編集を自由に行ってください。 InfogamiをTravisテストをブロックしなくなるポイントに到達させることに焦点を当てましょう。 私の焦点は他の場所にありましたが、うまくいけば、今後数週間で再び従事することができます。

Python 2のサポートが終了するまでの100日を祝うために、上記のタスクリストを更新しました。

ここでのおしゃべりとたるみから、これを進行中の作業としてラベル付けしています。 ただし、譲受人はいません。 @cclaussと@ salman-bhaiは、Python3のチームリーダーであるため、最適な候補になると思います。

@cclaussその絵文字は譲受人であることへの賛成ですか? あなたと@horncは、タスクの内訳におけるほぼすべてのPRを担当しているようです。

Python3の特定の残りのステップ/ブロッカーを再ハッシュしますか?

なぜ優先度が下がったのかわかりません。 これは1月1日までに行う必要はありませんが、すぐに行う必要があります。

現在の主なブロッカーはinfogamiですが、移植すると、システムの他の部分に残っている問題が明らかになる可能性があります。 ここで各infogamiの問題を個別に追跡しようとするよりも、infogamiのトップレベルのPython3の壮大な問題を指摘する方が理にかなっているかもしれません。

あと数ヶ月の猶予があったようです。 12月末に、Python Software Foundationは引退日を(再び!)2020年4月に延期しました。

https://www.python.org/psf/press-release/pr20191220/

はい、しかしこのプロジェクトは私が知っている最後の主要なプロジェクトであり、まだラインを超えていません。

Python 2の最終リリースが作成されました: https

これから毎日(実際には数か月前から)、OpenLibrary本番システムを危険にさらすパッチが適用されていない脆弱性への露出が増加します。

これを閉じる時が来ました! Python3への移行を支援してくれた皆さんに感謝します!!

このページは役に立ちましたか?
0 / 5 - 0 評価