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