「人生の苦痛」なしにPPAにPythonパッケージを送信する

雑誌の視聴に関する投稿の後、字幕をダウンロードするためにサブリミナルを追加したいという要望がありました。 その依存関係を見ると、リポジトリには2つのパッケージしか存在せず、それらは適切なバージョンではありません。 人生は苦痛であることに気づき、ジェンキンスで5つのデビアン/コントロールを作成し、5つの変更ログを作成し、20のタスクを作成する必要があります。



しかし、このプロセスを自動化するのにほんの数日しか費やせないのであれば、なぜこのすべてに2時間を費やすのでしょうか。 結果はpytoppaでした:





設置



Ubuntu



ubuntuでは、ppaからパッケージを配信できます。

sudo add-apt-repository ppa:nvbn-rm/ppa sudo apt-get update sudo apt-get install pytoppa
      
      





その他のディストリビューション



dh-make



cdbs



を手動でインストールする必要があります。その後、pyppaをpip経由でインストールします。

 pip install pytoppa
      
      





使用する



プロジェクトを含むリポジトリのルートで、.pytoppa.ymlを作成する必要があります。その形式は次のとおりです。

 section:  #   python,    dependencies: - -1 - -2 releases: - -1 - -2
      
      





たとえば、series_listアプリケーションの場合:

 section: net dependencies: - python-requests - python-beautifulsoup - python-gevent - python-decorator - python-libtorrent - python-pyside - subliminal releases: - saucy - precise - quantal - raring
      
      







そして実行:

 pytoppa ---launchpad ppa
      
      





たとえば、私は実行します:

 pytoppa 'Vladimir Iakovlev <nvbn.rm@gmail.com>' 'ppa:nvbn-rm/ppa'
      
      





仕組み



setup.pyからパラメーターを読み取ることは、少し重要であることがわかりました。 最も簡単な方法は、 setuptools.setup



およびdistutils.core.setup



を独自のメソッドに置き換えることで、単純にパラメーターを保存します。



そしてchangelog形成、彼にとってそれは必要でした:

  1. setup.pyが存在するすべてのコミットを取得します
  2. コミットごとに、リポジトリを一時フォルダーにコピーし、コミットに切り替えます。 当初、アプリケーションはsetup.pyが変更されたコミットによってのみ渡されましたが、多くの場合、バージョンは別のファイルからインポートされます。
  3. setup.pyからバージョンを読み取ります。
  4. 異なるバージョン間でコミットログから変更を取得します。


残りの手順は、単にコマンドをコピーまたは実行することです。



参照資料



githubプロジェクト ;

プロジェクトのPPA



All Articles