3月26日、Jenkinsの公式ブログで「Redesigning Jenkins (Part One)」と題した記事が公開された。この記事では、Jenkinsのフロントエンド刷新に関する課題とその解決策について詳しく紹介されている。
以下に、その内容を簡潔にまとめて紹介する。
課題
Jenkinsは世界的に広く利用されるCI/CDプラットフォームであり、長い歴史の中で膨大なレガシー技術を抱え込んできた。Prototype.jsやYUI、LESS、初期のjQueryといった時代を感じさせる要素が混在しており、既存コードを維持・拡張することは容易ではなかった。2005年当時のベストプラクティスが2025年には技術的負債と化していた、という点が象徴的である。
しかしJenkinsが企業のミッションクリティカルなCI/CDを支えている以上、 互換性の確保が絶対に欠かせない。 プラットフォームの安定性を守りつつ、ユーザーのパイプラインや膨大なプラグインに影響を与えないよう、段階的なアプローチが選択されている。週次リリースと徹底したテストによって、問題があれば早期に検知・修正が行われる仕組みを整えている。
基盤の再構築
Jenkinsの刷新における最初の大きな取り組みは、レガシー技術の抜本的な整理であった。たとえば、Prototype.jsの排除やYUIの無効化(Jenkins 2.492.1でデフォルト無効に)によって、85,000行以上のコードが整理され、フロントエンドの土台を刷新した。
同時に、LESSからSCSSへの移行やJavaScriptのES6+対応など、モダンな開発手法を少しずつ導入している。レガシーコードを一掃するのではなく、堅実なステップを重ねることで、Jenkinsという大規模プラットフォームを安全に変革しようとしている。
また、大がかりな新フレームワークを導入するのではなく、 標準的なモダンJavaScriptに依拠する方針を取っている。 不要な依存を避け、より多くの開発者や寄稿者が参加しやすい環境を作ることが狙いである。
これらの取り組みは小さな一歩に見えるかもしれないが、次世代のUIコンポーネントやアクセシビリティ向上、改善されたナビゲーションなど、大きな変化へつながる基盤を築くうえで不可欠なものといえる。
今後について
今回紹介した記事は、Jenkinsのフロントエンド刷新に関するシリーズ記事の第一回である。次回の「パート2」では、新UI機能のデザインや開発者体験の改善策、そしてプラグインエコシステムとの両立についてさらに掘り下げる予定だという。
また、本記事を読んで更に興味をそそられた方は、以下のリソースにもアクセスしてみて欲しい。
- JenkinsのUI/UXに興味がある場合はUser Experience SIGが活動拠点となっている。
- プラグインに新しいコンポーネントやデザインパターンを導入する場合はDesign Libraryを利用できる。
- 月次ミーティングはYouTubeで視聴可能であり、GitHubに進捗が公開されている。
詳細はRedesigning Jenkins (Part One)を参照していただきたい。