しかし、このプロセスを自動化するのにほんの数日しか費やせないのであれば、なぜこのすべてに2時間を費やすのでしょうか。 結果はpytoppaでした:
- setup.pyのバージョン変更間の履歴から変更ログを生成します。
- 必要な依存関係を自動的に追加します。
- yamlに簡単な設定があります。
設置
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の形成、彼にとってそれは必要でした:
- setup.pyが存在するすべてのコミットを取得します
- コミットごとに、リポジトリを一時フォルダーにコピーし、コミットに切り替えます。 当初、アプリケーションはsetup.pyが変更されたコミットによってのみ渡されましたが、多くの場合、バージョンは別のファイルからインポートされます。
- setup.pyからバージョンを読み取ります。
- 異なるバージョン間でコミットログから変更を取得します。
残りの手順は、単にコマンドをコピーまたは実行することです。
参照資料
githubプロジェクト ;
プロジェクトのPPA 。