2009-10-03 9 views
5

私はPypiで管理しているいくつかの卵を持っていますが、今までは常にPython 2.5xに焦点を当ててきました。 私は Python Pypi:異なるPythonバージョンのパッケージをリリースするプロセスは何ですか? (Linux)

  • アップロード は、PyPI
    1. テスト実行
    2. 生成するドキュメント
    3. 準備卵、すなわち、自動化された方法で両方のPython 2.5 &のPython 2.6の下で私の卵を解放したいと思います

      どうやってこれを達成するのですか?

      関連する質問:「バージョンに依存しない」卵にタグを付けるにはどうすればよいですか?すべてのバージョンのPythonで動作しますか?

    答えて

    1

    Windows以外のものでは卵をリリースする必要はなく、コンパイル済みの部分を持つようにパッケージがC拡張を使用する場合に限り、卵をリリースする必要はありません。それ以外の場合は、1つのソース配布をリリースするだけです。これは、すべてのプラットフォーム上のすべてのPythonバージョンで十分です。

    ビルドボットを持っていないと、自動化されたバージョンのテストを実行するのは難しいです。しかし、2.5と2.6の両方でテストを実行すると、python setup.py sdist register uploadを実行するだけの問題になります。実行するPythonのバージョンは関係ありません。

    +1

    奇妙な...あなたが描いた方法で卵をアップロードした最後の時間に、それを作るために使われたPythonのバージョンでタグ付けされました...そして、別のPythonバージョンで* easy_install *を試してみたら、うまくいきませんでした...あなたは説明をお願いしますか? – jldupont

    +0

    いいえ、バイナリディストリビューションを作成するときにのみpythonバージョンでタグ付けします。あなたの場合、私が見る限り、bdist_eggを使用しました。あなたのパッケージで見ることのできるCコードがないので、代わりにsdistを使うべきです。 –

    +0

    @Lennart:ありがとうございました!それは私の問題だったに違いない! – jldupont

    0

    スクリプトを使用して、Pythonバージョンの切り替え、テストの実行、次のPythonバージョンへの切り替え、テストの再実行などを行います。私はこれを使って2.3,2.4,2.5,2.6,3.1についてテストします。さらに、私は2つの異なる構成シナリオ(C拡張が利用可能かどうか)の下ですべてのテストを実行するので、これは完全なテストスイートを10回実行します。

    同様のスクリプトを使用してキットを作成しますが、私は各バージョンのWindowsインストーラと1つのソースキットを作成します。

    アップロードするには、すべて手動で行います。

    ドキュメントの場合、ビルドするバージョンは1つだけです。これはMakefileターゲットで完了します。

    これはすべてcoverage.pyです。bitbucketにコードがありますが、警告が必要ですが.cmd Windowsスクリプトです。

    +0

    @ned:寄付いただきありがとうございます。私はLinux上にいるので、Windowsの箱はもう手に入らない。 – jldupont

    +0

    同じアプローチがLinux上で動作します。ちょうどあなたがPythonのバージョンを切り替える方法を決める必要があります。 –

    関連する問題