nikkie-ftnextの日記

イベントレポートや読書メモを発信

PyCon JP 2022 Developer & Community Sprint もくもく(1人)チーム 成果発表 #pyconjp

はじめに

ういっすー!✌️ nikkieです。

10/16(日) PyCon JP 2022 Day 3 Sprintでのもくもく(1人)チームの活動報告です。
スプリントリーダーができるほど、関わっているプロジェクトのリポジトリを整理できていなかったので、ソロでもくもく参加していました。

目次

PyCon JP 2022 Developer & Community Sprint

この特定のプロジェクトに興味がある開発者同士がオフラインで集まって、短時間で素早く進捗を出す開発ミートアップを実現するために、スプリントやハッカソンと呼ばれる方法が生まれました
また、今回のスプリントではPythonコミュニティの活動も行うことができます。

PyCon JP 2019以来のスプリントです!

nikkieは何しにスプリントへ?

みんなのPython勉強会の作業やSphinx拡張自作、speech_recognitionのメンテナ活動のもくもくします。

数日ぶりにコードを触るということで、朝の一枚は(技術者としてもマジリスペクトな)りなりー📸

やったこと

sphinx.ext.githubpages活用

Sphinx拡張自作したい」の背景

sphinx-revealjs製のスライドをGitHub Pagesで公開するときの.nojekylltouch、絶対どこかで忘れるので不要にする拡張を自作したいなー(でも手を動かす時間がない)」とここ数ヶ月感じていました。
Sphinx本体にはsphinx.ext.githubpagesという拡張があり、これを有効にするとmake htmlでビルド成果物が置かれるディレクトリに.nojekyllも配置されます。

sphinx-revealjsでも同じ動きをさせたい」と自作を考え始めました。
Day 1にattakeiさんのSphinx拡張の話があり、その資料に目を通していたのもあってスプリントで開発する気でいました。

sphinx-revealjs製のスライド公開もsphinx.ext.githubpagesにおまかせ

結論から言うと自作は不要でした。
ソース1を読む中で、「私が拡張実装しなくても設定でいけるのでは」と気付き、設定したところmake revealjsでも無事.nojekyllが配置されました🙌
これが可能なのはsphinx-revealjsのビルダーがSphinxのHTMLのビルダーを継承している2ためです(詳しい話はまたの機会に別記事で)。

Python Boot Campのページのカスタムドメイン設定もsphinx.ext.githubpagesでできた!

sphinx.ext.githubpagesのソースをさらに読む3と、GitHub Pagesでカスタムドメインを設定する際に置かれるファイルCNAMEも置けそうな雰囲気です。
conf.pyhtml_baseurl変数4を追加すると、make htmlCNAMEも配置されました!

これにより、以下のIssueへの対応が完了しました🙌

みんなのPython勉強会スタッフ活動

みんなのPython勉強会はオンラインで毎月やってます!
11月は10日(木)で準備中です。
ご参加お待ちしています〜

アンケート類に回答!

ダイバーシティ & インクルージョン (D&I)」のアンケートのほか、

connpassからPyCon JP 2022の参加アンケートが送られてきてますよ〜。
(「PSF Memberへの登録」もよろしければ)

TogetterにPyCon JP 2022のスライドまとめ

直近参加したカンファレンスでは、Qiitaに「発表資料に飛べるツイートまとめ」を作っています5が、これは「ツイート数が増えると読み込みが遅い」という感覚がありました。
そこで今回は経験の少ないTogetterにまとめてみています6

後半になってくると、頭があんまり働いていなくて生産性いまひとつな感覚があったのでspeech_recognitionのメンテナ活動は今回はお休みしました。

休憩時間にはブログチェック

ちょっと息抜きしたくなったら、(素晴らしい景色を眺めるほか)#pyconjp ハッシュタグをたどって見つけたブログを読んで、いいね・はてなスター・RTなどなど、「いいわいいわ!」と一人盛り上がっておりました。

私自身繰り返し読みたいと思ったのでまとめちゃいました!

すごくよかったこと:リポジトリメンテナンスのヒント見つかる

成果発表で素敵な出会い🌟がありました。
私はspeech_recognitionライブラリ7のコントリビュータを始めた(Issueを閉じたり、プルリクをマージしたりする権限がある)のですが、どう進めていけばいいか皆目見当が付いていない状態です。
「なにかヒントが得られたら」と思っていましたが、Issueのラベル付けについて真似したいリポジトリが見つかりました!

  • 機能(zip圧縮/解凍)のラベルがあり、どの機能についてのIssueか分かる
  • ステータスについてもラベルではっきりさせている(起票者に情報を求めている、起票者の環境で直ったことの確認待ち)

ラベルでのIssueのトリアージの仕方、そしてGitHub Actionsでの自動化の仕方、参考になります!
お話させていただき、ありがとうございました。

終わりに

10/14(金)からの3日間、久々のオンサイトイベントでとっても充実、そしてクタクタです。
カンファレンスだけからではなくスプリントでも刺激をいただき、開発欲がめちゃくちゃ高まっています。
3日間、ありがとうございました!
Pythonの秋はこれからだ!

登壇報告などなどPyCon JP 2022関連は何回かに分けてアウトプットしようと思います〜


  1. https://github.com/sphinx-doc/sphinx/blob/v5.2.3/sphinx/ext/githubpages.py#L13-L14

  2. https://github.com/attakei/sphinx-revealjs/blob/v2.2.0/sphinx_revealjs/builders.py#L23

  3. https://github.com/sphinx-doc/sphinx/blob/v5.2.3/sphinx/ext/githubpages.py#L16-L24

  4. https://www.sphinx-doc.org/ja/master/usage/configuration.html#confval-html_baseurl

  5. 直近の例:XP祭り2022 発表資料に飛べるツイートまとめ #xpjug - Qiita

  6. このブログのシオン・プロジェクトシリーズで使ったこともあるライブラリです(「喋った内容をプログラムに認識してもらいたい!」というアイデアをPythonで手早く検証する - nikkie-ftnextの日記)。というか実質シオンですね(そう考えるとモチベがむくむく湧いてきます)