Perl Toolchain Summit 2024

今年は Japan Perl Association が4月末にリスボンで開催された Perl Toolchain Summit のスポンサーについてくださったということで、久しぶりに日本語の記事も用意します。細かなことまで興味のある方は英語版のレポートもあわせてご覧いただければとおもいますが、ざっくり本年の成果を説明しますと、

  • Perl 5.37 で導入された class 宣言を PAUSE が認識できるようにしました。
  • PAUSE にアップロードしたモジュールがインデックスに掲載されない事件の原因となっていたデッドロックの問題を解消してきました。
  • 将来の Perl や PAUSE の開発に関する議論などに参加してきました。

class 宣言については、2000年に Perl 6 の構想が発表されてからというもの、MooseX::Declare を代表とするいくつかの実験的なモジュールが独自の実装を行ってきましたが、 Perl 5.37 で class キーワードが実験的な機能として実装されたのを受けて、 feature プラグマ(や、experimental プラグマ)で有効になる class キーワードと、その試験的な実装である Object::Pad 、互換性維持のための Feature::Compat::Class による class キーワードのみを正当なクラスとして認識するようにしました。過去の記事や発表では、class キーワードを使ったモジュールを CPAN にアップロードする際には package 宣言も必要になるという話をしましたが、今回の修正で package 宣言がなくてもモジュールのバージョンを適切に取得できるようになります。

デッドロックの件については、直接的には上記の修正にあたって CPAN ミラーから PAUSE のデータを復元して 02packages という索引を生成する際の障害となっていたので手を入れたのですが、この修正によって、近年増えてきていたモジュールが正しく登録できなかったり権限が落ちたりしていた問題が改善していくものと期待しています。

なお、既存のデータについてはまだ検証が済んでいません。こちらでも今後時間を見つけて調べる予定でいますが、アップロードしたはずなのに最新版が MetaCPAN に出てこない等の問題が確認できた場合は、 PAUSE にアクセスして force_reindex していただけると助かります。

Perl の将来に関する議論についてはまた機会を見てまとめようとおもいます。PAUSE については新しくメーリングリストが作られ、Toolchain Summit 後も多少なりと継続的に活動していこうという話になりました。

その他、現地で関わったり議論したりしたこととしては、

  • PAUSE のサーバが新しくなりました。昨年始めた docker 対応については宙ぶらりんになっていますが、関心がある方がいるようでしたら再度調整しようとはおもっています。
  • PAUSE の MFA 対応は先送りになりました。現行の PR が入る可能性はありますが、来年以降、 Basic 認証ではない方法でも PAUSE にアクセスできるようにしていく過程で再実装しようと目論んではいます。
  • CPAN Security グループが cpanm などの CPAN クライアントのデフォルトをセキュアにしようという活動を進めています。 cpanm については https://github.com/miyagawa/cpanminus/pull/674 で議論が行われたあとしばらく止まっているようですが、Perl 本体の SSL サポート等ふくめて今後の動向に注目しています。
  • 同じく CPAN Security がらみで、 CPANTS にサイバーセキュリティがらみの対応が入っているかどうか等の基準を追加してはどうかという提案を受けました。具体的なところが見えていないので実装は先のことになりそうですが。
  • Toolchain Summit にも新しい人を呼ぼうという動きが始まっています。実際、今年は新規参加者が四名もいましたし、招待候補者リストの中には日本の方も数名混じっていました。興味がある方がいらしたらお声がけくださいませ。

今回も多くの方のお世話になりました。あらためて主催の Breno Oliveira 、 Philippe Bruhat 、Laurent Boivin 各氏、以下のスポンサー各社・各氏にお礼申し上げます。

Monetary sponsors: Booking.com, The Perl and Raku Foundation, Deriv, cPanel, Inc Japan Perl Association, Perl-Services, Simplelists Ltd, Ctrl O Ltd, Findus Internet-OPAC, Harald Joerg, Steven Schubiger.

In-kind sponsors: Fastmail, Grant Street Group, Deft, Procura, Healex GmbH, SUSE, Zoopla.