📝

はじめてBiocondaにパッケージ登録をした話

2023/08/07に公開

3行まとめ

  • Biocondaの登録は思ったよりも簡単でした
  • Gitが不慣れのためにつまずくところがありました
  • Biocondaサポートメンバーが親切にガイドをしてくれます。感謝しかありません🙇

はじめに

先日、Pythonの習作を兼ねて3つほどBiocondaにコマンドラインツールを登録しました。
思った以上に簡便に登録できましたが、いくつか(とくにGitの知識不足で)やり直したところがあったため、備忘録です。

今回登録したパッケージは以下の3つです。

https://github.com/akikuno/calcs

https://github.com/akikuno/seq2onehot

https://github.com/akikuno/onehot2seq

Biocondaとは

Biocondaはパッケージ管理システムのcondaにあるチャンネルのひとつで、名前のとおり生物情報学関連のソフトウェアが登録されています。
samtoolsなどの超有名ツールもbiocondaに登録されています。

どうしてBiocondaに登録したのか

Pythonでのソフトウェア開発は初めてだったので、PyPIおよびBiocondaの登録をひとつの目標にしました。
(BiocondaはPython以外のツールも登録できますが、おもにPyPIからの登録を想定しているようです。)

せっかくツールを開発するのだからできるだけインストールの負担を減らしたい、というのも理由のひとつです。

どうやって登録するのか

基本的にはBiocondaの公式ドキュメントに従います。
私が取り組んだのはこのうちのInitial SetupContribution Workflowの2つです。

つまずいたところ

fork先のリポジトリがアップデートできなかった

Biocondaのドキュメントには、fork先のリポジトリを最新版にする指示があります。

# Make sure our master is up to date with Bioconda
git checkout master
git pull upstream master
git push origin master

これをやってAlready up to dateと確認しても、なぜか新しく登録されたパッケージが更新されておらず、レビューワーから「ほかのリポジトリを削除しているよ」との忠告を受けました。

https://github.com/bioconda/bioconda-recipes/pull/30808#issuecomment-931945476

コメントのとおりgit rebaseにも取り組んでは見たものの、Git力が足りず解決できそうになかったため、一番はじめのforkするところからやり直しました。

Take home messagesです。

*こちらはダメな例です (Files changedが12)。

meta.yamlの書き方

meta.yamlを編集しますが、初めてなのでよくわからないまま編集していました。
デフォルトで生成されるmeta.yamlについて、下記の点を変更すれば問題なく通るようになりました。

1. 空白の情報はきちんと削除する
doc_urldev_urlなど、削除して大丈夫です


2. buildnoarch: pythonをつける (Python製の場合)
CircleCIによる自動テストではnoarch: genericをオススメされますが、レビューワーからはnoarch: pythonへの変更を求められました


3. aboutsummaryには十分かつ簡潔な記載をする
簡単でも冗長でも好まれません。(こちら)

コマンドのコピペミスに注意

そうそうないケースかと思いますが…

CircleCIによる自動テストをパスすると、レビューを頼むために@BiocondaBot please add labelというコマンドを入力します。
はじめてこれをしたとき、操作ミスで@BiocondaBotplease add labelの間に改行を入れてポストしてしまいました。
1時間ほど待ってもラベルが付与されなかったので、やり直したところ10秒ほどでplease review & mergeというラベルがつきました😇

@BiocondaBotはボットなので、当然ですがうまく行けばすぐに反応が返ってくるので、1分待っても反応がない場合には操作ミスを疑ってやり直すのが懸命です…

おわりに

Biocondaへの登録はオープンソースに貢献するはじめの一歩としてとても有用だと思いました。
自分自身の勉強の動機づけとしても、ちょうどよい難易度でした。
右も左もわからずに不安でしたが、Biocondaのレビューワーの方々のチェックがあるため(おそらく)大惨事には至りません。
ご対応いただいたレビューワーには感謝しかございません🙇

Discussion