ビギナー
これからPythonっていう言語の勉強を始めようと思うんですけど・・・

先生
うん。

ビギナー
ブログとかを読んでたら、PEP?ってものがよく出てくるんです。

先生
ああ、あるね。

ビギナー
あれなんですか?読んでたほうがいいんですか?

先生
PEPはコーディングの規則や新しくこんな機能つけるよーなんていう情報をまとめた文書だね。

先生
だから読んでおいて損はないと思うよ。

ビギナー
う…でも英語なんですよね。どうにかしてください。

先生
….わかりました。(はぁ)

PEP(Python Enhancement Proposal)はPythonを改良する案、リリーススケジュール、コーディングスタイルなど開発を円滑に進める上で重要なことを文書にまとめておく場所。ここには、Pythonをコーディングするすべての人にとって重要な内容がきっと入っているはず。ビギナーが言うようにもちろん、英語。よって、これをできるだけ毎日、翻訳しながら読み解きまとめていくことで備忘録としていきたいと思います。英語は非常に苦手なので誤訳はご指摘ください。

※以下、アイコンが出てくる箇所は私のコメントになります。それ以外は、翻訳または翻訳のまとめです。

基本情報

Python 2.0 Release Schedule

PEP: 200
Title: Python 2.0 Release Schedule
Python2.0リリーススケジュール
Author: Jeremy Hylton <jeremy at alum.mit.edu>
Status: Final
Type: Informational
Created:
Python-Version: 2.0
Post-History:

イントロ

このPEPでは、Python2.0のリリーススケジュール、主要な新機能の状況と所有権の追跡、メーリングリストフォーラムでの議論のまとめ、さらなる情報、パッチ、その他未解決の問題へのURLを提供します。このファイルのCVS改訂履歴には、決定履歴が含まれています。

リリーススケジュール

[2000年10月5日改訂]

  • 26-Sep-2000: 2.0 beta 2
  • 9-Oct-2000: 2.0 release candidate 1 (2.0c1)
  • 16-Oct-2000: 2.0 final

以前のマイルストーン

  • 14-Aug-2000: All 2.0 PEPs finished / feature freeze
  • 5-Sep-2000: 2.0 beta 1

RC1とは何ですか?

RC1は、2.0の最終リリースで修正予定の既知のバグをすべて修正するものと考えています。このリリースは、ベータ版よりも少し安定しているはずです。最終リリースの前にもっと広範囲なテストをするために、このRCを作成しています。 最終リリースは、RCテストの担当者によって、重大なバグが発見されない限り、同じものになります。

パッチを送信して変更を加えるためのガイドライン

変更をコミットするときは良い意味で使ってください。私たちが何を意図とするのかをよく理解しておくべきです。そうでなければ、あなたにコミット特権を与えないでしょう<0.5 wink>。良い意味のいくつかの具体例は次のとおりです。

  • ディレクターがあなたに言うことなら何でもしなさい。
  • まずpython-devで物議を醸している変更について討論してください。あなたがたくさんの+1票を獲得し、-1票を獲得しない場合、変更を加えます。あなたがいくらかの-1票を得たら、もう一度考えなさい。Guidoに彼の考えを尋ねることを検討してください。
  • あなたが貢献したコードに対する変更であれば、それを修正することはおそらく意味があります。
  • その変更が他の誰かが書いたコードに影響を与えるのであれば、最初に当事者に依頼するのが理にかなっています。
  • SFパッチマネージャを使ってパッチを送信し、確認のために誰かに割り当てることができます。

重要な新機能は、チェックインする前にPEPに記述して承認する必要があります。

新しいモジュールや大きなパッチなど、コードを大幅に追加する場合は、回帰テストとドキュメントのテストケースを含める必要があります。テストとドキュメントの準備ができるまでパッチをチェックインしないでください。

バグを修正したら、そのバグを確認できるテストケースを書くべきです。

SF Patch Managerからパッチをコミットする場合、またはJitterbugデータベースからバグを修正する場合は、必ずCVSログメッセージでパッチ/バグ番号を参照してください。また、パッチマネージャまたはバグデータベースのステータスを変更してください(バグデータベースにアクセスできる場合)。

チェックインされたコードが回帰テストを失敗させることは許されません。チェックインが失敗した場合は、24時間以内に修正する必要があります。そうしないとバックアウトされます。

提供されたCコードはすべてANSI Cでなければなりません。可能であれば、2つの異なるコンパイラで確認してください。gccとMSVC
寄稿されたすべてのPythonコードは、GuidoのPythonスタイルガイドに従う必要があります。http://www.python.org/doc/essays/styleguide.html

提供されたコードはすべてオープンソースライセンスの下でリリースされることが理解されています。この方法でリリースできない場合は、コードを寄稿しないでください。

失敗したテストケースは修正する必要がある

回帰テストのエラーは迅速に解決する必要があります。変更が適用された状態で回帰テストが正しく実行されない場合、変更をCVSツリーにコミットしないでください。失敗した場合、コードにバグが潜んでいるかもしれません。(そもそもバグがあるかもしれませんが、それはまた別の問題です。)テストケースが失敗することがわかっているならば、それらは有用な目的を果たしません。

未解決事項 – 2.0の最終リリース前に解決が必要

cycle-gcをデフォルトで有効にするかどうかを決めます。

core XMLパッケージとXML-SIG XMLパッケージの間の互換性の問題を解決します。

リスト内包表記、import as、およびその他の新しい言語機能と互換性があるように、ツール類/コンパイラを更新します。

テストスイートのコードカバレッジを改善しました。

2.0b1で出てきた機能のためのPEPを書き終えてください(!悲しい、しかし現実的です – 訓練をすればもっと良くなるでしょう)。

バグデータベースのサイズを縮小するための大きな努力が必要です。私(ティム)はこれを以前に見ました:あなたがすべての未解決のバグを1つのスクリーンに収めることができるならば、人々は一般にそのようにそれを保つでしょう。しかし、それを一ヶ月間続けることは地獄に行くようなものです(「目に見える進歩」ではありません!)。

承認され進行中

  • 現在何も残っていません。 [2000年9月4日 guido]

オープン:提案されたが承認または却下されなかった

  • オープンパッチがいくつかあります。私達はこれらをすぐに解決する必要があります。

過去、失敗したテストケース

このセクションと前のセクションとの間で不渡りを起こすテストを見つけた場合は、それがテストしているコードに問題があります!

未解決事項 – 完了/修正済み

受領かつ完了

  • xエスケープの意味を変更 – PEP223 – Fredrik Lundh
  • u""の文字列にU1234678エスケープを追加 – Fredrik Lundh
  • オペコード引数2 ** 16のサポート – Charles Waldman SF Patch 100893
  • import as” – Thomas Woutersシンボルを別の名前でインポートできるようにするために’import‘および’from ... import‘メカニズムを拡張(新しいキーワードを追加せずに)
  • リスト内包表記 – Skip Montanaro Tim PetersはまだPEPが必要
  • os.path.commonprefixの古い動作を復元するすべてのプラットフォームで動作するテストケースはありますか?
  • Tim O’Malleyの優れたライセンスを持つCookieモジュール
  • ロックステップ反復(「zip」関数)- Barry Warsaw
  • SRE – Fredrik Lundh [少なくとも2000年8月15日現在には行われた – tim]
  • xrangeprint時の挙動を修正 – Fred Drakexrangeタイプのtp_printハンドラを削除しました。’xrange(...)‘の代わりにリスト表示を生成していました。新しいコードは、N!= 1のとき、(... * N)で囲まれたxrange()への最小限を呼び出します。これにより、repr()の可読性を高め、reprをアドバタイズします。対話的なインタプリタで作業するとき、xrangeオブジェクトを明確にします。
  • 拡張printステートメント – Barry WarsawPEP214 http://www.python.org/dev/peps/pep-0214/ SF Patch #100970 http://sourceforge.net/patch/?func=detailpatch&patch_id=100970&group_id=5470
  • システムコールをポーリングするためのインタフェース – Andrew Kuchling SF Patch 100852
  • 拡張された割り当て – Thomas Wouters+=とその家族、PythonとCのフック、API関数の追加
  • gettext.pyモジュール – Barry Warsaw

延期

  • リスト上の拡張スライス – Michael Hudson Makeリスト(および他の組み込み型)は拡張スライスを処理
  • Unicodeデータベースの圧縮 – Fredrik LundhSF Patch 100899:少なくとも2.0b1用。バグ修正として2.0に含まれるかもしれません。
  • 範囲リテラル – Thomas Wouters SF Patch 100902:私たちはその提案について多くの疑問を抱いてしまいました。
  • SET_LINENO命令コードの削除 – Vladimir MarangozovSET_LINENO命令の代わりにコードオブジェクトのlnotabを使用することで小さな最適化が達成されました。SET_LINENOを使用するデバッガをサポートするために、コード書き換え技術(Guidoの反対意見)を使用します。
    http://starship.python.net/~vlad/lineno/パッチ(当時の作業用)
    python-devに関する議論:

  • Cコード用テストハーネス – Trent Mick

リジェクト

  • indexing-for‘ – Thomas WoutersPythonコードが’for‘ループ内のループカウンターにアクセスできるようにするための特別な構文。(新しいキーワードを追加せずに)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です