概要
- Mockito のメンテナーを10年務めた節目で、次世代への引き継ぎを決意
- JVMエージェントの仕様変更による負担増が理由の一つ
- Kotlin 対応の複雑化が今後の課題
- オープンソース活動の楽しみの変化
- 今後の引き継ぎ計画や議論は別途GitHubで実施予定
Mockitoメンテナー交代を決意した理由
- 2026年3月 でMockitoメンテナー歴10年の節目
- 10年という区切りで、他の人へのバトンタッチを決断
- 引き継ぎに向けて、今後数ヶ月で準備活動を実施予定
- 今後の運営や議論は、別のGitHub Issueで案内予定
JVMエージェント変更による負担
- Mockito 5で メインアーティファクトがエージェント化 される仕様変更
- JVM 22から ダイナミックアタッチ がフラグ付きに変更
- セキュリティ強化の観点から理解はできるが、 メンテナーへの負担増
- 代替案や十分なサポートがないまま、 自主対応を求められる状況
- オープンソース運営のボランティア性と、 個人への過度なプレッシャー
- XKCDのジョークにもある「数人の個人に依存するOSS世界」の現実
Kotlin対応の難しさ
- Kotlin人気の高まり とMockitoの複数JVM言語対応
- 他のJVM言語と異なり、 Kotlin固有の実装や分岐が必要
- mockito-core内で Kotlin専用フローやAPIの重複 が発生
- KotlinのJVM上の挙動の一貫性欠如 (例:suspend関数)
- コードの複雑化・メンテナンス性低下
- Kotlinが主流化する将来に対し、 モチベーション維持が困難
他のオープンソース活動への興味
- オープンソース活動への情熱は継続
- 最近は Rust製WebエンジンServo など他プロジェクトに魅力を感じる
- 限られた時間での活動選択 で、Mockitoへの優先度が低下
- 本来ボランティア活動は「やりがい」が前提
- 義務感での活動継続は長続きしない という気づき
まとめと今後について
- 上記3点が重なり、 メンテナー交代を決断
- 最初の理由で「立場を見直すきっかけ」、2つ目で「将来への不安」、3つ目で「他の楽しみの発見」
- 他のメンテナーには異なるモチベーションもあり、 プロジェクトの多様性を尊重
- 10年間でMockitoを前進させた という満足感
- 今後は 新しい世代にバトンタッチ し、プロジェクトの発展を期待
- オープンソース活動の価値 を改めて実感し、全ての貢献者に感謝