Back to blog

Jenkins 2022 Recap

Alyssa Tong
Alyssa Tong
Kevin Martens
Kevin Martens
Bruno Verachten
Bruno Verachten
January 12, 2023

Jenkins 2022 recap Newsletter

2022 was a fruitful year for Jenkins! Across the Jenkins project, we experienced growth and strong contributions. We want to share deep gratitude to the corporate sponsorships and individual contributions that made it possible to take Jenkins to the next level. We also look forward to welcoming new friends to collaborate with us in working together to make Jenkins even better. There’s still a lot to do within the project, and in 2023, we plan to integrate many more improvements, while sustaining a diversified, inclusive, and welcoming community.

Happy reading!

Got Inspiration? We would love to highlight your cool Jenkins innovations. Share your story, and you could be in the next Jenkins newsletter.

Highlights

Governance Update

Contributed by: Mark Waite

The Jenkins governance board thanks Ewelina Wilkosz and Gavin Mogan for their two years of service as board members. We’re so glad to have talented people serving on the Jenkins governance board.

December 2022 brought two new members to the Jenkins governance board.

We welcome Dr. Ullrich Hafner of the Department of Computer Science and Mathematics at the Munich University of Applied Sciences as a new member of the board. In his role as professor, he tries to win new Jenkins contributors by letting students develop new features and test cases in their student projects and theses. He has been an active contributor in the Jenkins project since 2007, mostly in the acceptance test harness and the static code analysis suite (which is now replaced by the Warnings Next Generation Plugin).

image

We also welcome Alexander Brandes as a new member of the board. Alexander is a Jenkins Core maintainer and the maintainer of the Job Configuration History and Ionicons API plugins.

He is a release team member and actively involved in Jenkins Long Term Support releases and weekly releases. He served as release lead for five of the twelve Jenkins LTS releases in 2022.

In addition to these two new governance board members, we welcome the new documentation officer, Kevin Martens. Kevin leads Jenkins documentation office hours, reviews and merges documentation pull requests, and is actively involved in Jenkins Special Interest Groups.

image

We’re grateful for the Jenkins officers that are continuing their service for another year, including:

Security Update

Contributed by: Wadeck Follonier

The Jenkins security team was incredibly active this year, not only in resolving security concerns, but also providing insight to users through security advisories. The information below provides overall statistics from the Security team in 2022.

Publication

  • 16 Security advisories (stable year over year).

    • Only 5 impacting Jenkins core (also stable).

  • Around 400 CVEs published, which was more than all previous years.

Day to day:

  • Approximately 580 SECURITY tickets handled.

    • Which is ~20% of the total number of tickets since 2009.

  • Around 70 hosting requests proactively audited (introduced in Q2 of 2022).

  • Around 80 UI related PRs audited in Jenkins core (introduced in Q3 of 2022).

We had to deal with even more CVEs with fancy names like Spring4Shell. We analyzed and understood them to confirm that they don’t affect Jenkins.

Delivery

  • General availability for the Jenkins custom rules in CodeQL (message).

  • Improved tooling for the SECURITY tickets handling.

Infrastructure Update

Contributed by: Damien Duportal

2022 was an eventful year for the Jenkins Infrastructure team as well, leading to various updates and improvements.

  • Ci.jenkins.io now has:

    • General availability for Windows 2022 server use.

    • JDK19 availability for developers, providing new functionalities and edge testing options.

    • Kubernetes has been upgraded to version 1.23 to support Azure, AWS, and DigitalOcean.

  • The JFrog sponsored migration of repo.jenkins-ci.org to their new AWS platform, which provides improved performance for artifact downloads.

  • Download mirrors (get.jenkins.io):

    • A new download mirror for Jenkins was added in Asia. We want to thank Servana for providing the mirror!

    • The mirror mirror.gruenehoelle.nl, located in the Netherlands, that had been available previously has been decommissioned. Thank you for the service!

  • The Infrastructure team was also able to review and clean up unused Azure resources, leading to $1,000 of monthly savings!

Platform Modernization Update

Contributed by: Bruno Verachten

Several upgrades were made to modernize the Jenkins platform. These include:

  • Java 11 is now required for Jenkins platform and plugin development.

    • Build toolchain changes arrived in parent pom 4.52.

    • Java 11 provides a better baseline to work from, ensuring that the benefits such as performance and memory improvements are felt across the platform.

    • Jenkins now has more Java 11 installations than Java 8 installations of Jenkins core!

      image

  • Jenkins now fully supports Java 17.

    • Previously, Java 17 was only available in a preview mode, but with the LTS release of 2.361.1, Java 17 functionality is fully available in Jenkins.

  • Migration of Linux installation packages from System V init to systemd.

    • Users have requested this migration since 2017. The goals of the migration were achieved: to provide unification of service management implementation and better integration between Jenkins core and service management framework.

    • Thanks to Basil Crow for his work on the migration.

  • Staying on top of new backend and frontend dependency updates providing better testing, processing, and performance across Jenkins.

  • Container image updates:

    • Added new platform support, such as arm/v7 and aarch64.

    • Removed support for ppc64le.

    • Released the final, definitive version of the JDK8 containers.

    • Removed the deprecated install-plugins.sh script from Docker images.

    • There were also "Exit" and "Restart" lifecycle changes added to the Docker images. As a result, users must ensure they have a Container Restart Policy in their container.

  • The ANTLR 2 grammars and code were upgraded to ANTLR 4, making it easier for Jenkins to read and parse through various programming languages. This means Jenkins core can now compile with more languages!

    • Thanks to Alex Earl and Basil Crow for all of their hard work on completing this transition!

    • This was included in the 2.376 Jenkins weekly release.

  • Platform documentation

    • A short guide about web containers and servlet container support was created.

  • Jenkins releases are now guided by release leads thanks to our release officer, Tim Jacomb. 2022 release leads have included:

  • Platform Work In Progress:

    • For further development, experiments with RISC-V agents with JDK17/19/20 need to be performed.

    • Additional experiments with Windows 2022 server needs to be performed as well.

Localization simplification Update

CrowdIn for plugin localization

Thanks to Alexander Brandes for helping get CrowdIn connected with Jenkins. This will make the plugin localization process easier, allowing for any user to contribute to localizing plugin documentation. This page shows the plugins that have localization work currently open. It also provides some insight as to how many changes have been made and how many people have been contributing to the project.

Jenkins Crowdin

UTF-8 encoding

The Jenkins project also updated how it reads jelly files, making the transition to using UTF-8. This was possible once the transition to Java 11 completed. By utilizing UTF-8, developers and users can build more reliably and have modern property files read correctly. This also aligns Jenkins' ability to read different types of property files, provided the encoding is the same.

User Experience Update

Contributed by: Mark Waite

Jenkins LTS and weekly releases in 2022 included significant user experience improvements thanks to the work of Jan Faracik, Tim Jacomb, Alexander Brandes, Daniel Beck, and many others. Table layouts, menu entries, icons, themes, breadcrumbs, and more were updated to give Jenkins a new, fresh look in 2022.

jenkins modern look

Themes and icons

Jenkins now has much broader support for themes. The dark theme is now installed on over 6,000 Jenkins controllers worldwide. The material theme is also available.

The transition to scalable vector graphics (SVG) icons improved the appearance of Jenkins icons. The SVG icons are specifically selected to work well across a wide range of resolutions and across multiple themes.

The menus of configuration forms moved from the top of each configuration page to the side panel. The side panel locations are more familiar for users and make better use of screen space that was previously empty.

New look

jenkins modern look 2

The improvements to look and feel have made Jenkins more comfortable for users and easier to navigate.

What’s next?

Tim Jacomb and Jan Faracik shared their ideas for further improvements to the Jenkins UI. Watch their DevOps World 2022 talk, "Transformation of the Jenkins User Interface and Where It’s Going Next" (registration required to view the video).

Jenkins io improvements Update

Contributed by: Kevin Martens

This year, the Jenkins project saw documentation contributions from new and seasoned Jenkins users. These contributions included blog posts, documentation additions and updates, documentation migration, and other improvements. All of this has helped expand and empower the Jenkins community.

Over the year, Jenkins project saw 48 blog posts, submitted by 23 different authors. There were 814 contributions throughout 2022. These contributions are a result of the community and collaboration with various projects throughout the year, such as She Code Africa Contributhon, Google Summer of Code, and Hacktoberfest. Our deepest gratitude and appreciation go out to all Jenkins contributors and the open-source community beyond.

Pipeline Steps Reference

Thanks to the work of Vihaan Thora, contributing via Google Summer of Code, the Pipeline Steps reference page provides simplified search for Pipeline steps. The reference page is invaluable for developers when working in Jenkins and utilizing plugins. The updates include search functionality, UI improvements, and faster page loading.

image

image

The Jenkins documentation site search has been updated to use the latest version of Algolia. We recognize and thank Gavin Mogan for his work on site search and on the plugins site. We thank Algolia for donating the search functionality. The site search now provides more relevant results and suggestions for users. A visual update was included as part of the upgrade, resulting in the new look and feel.

image

Outreach and advocacy Update

Contributed by: Alyssa Tong

In 2022, the Jenkins project was able to collaborate on and complete several projects. This included launching two new sites for community engagement and involvement:

  • community.jenkins.io now provides a space for community discourse and communication.

  • stories.jenkins.io is a site dedicated to sharing the experiences and stories of Jenkins users, developers, and contributors that Jenkins has impacted.

Throughout the year, the Jenkins project participated in:

We collaborated with new Jenkins users all over the globe, improved many areas of Jenkins, and celebrated the successes of the community!

The Jenkins project is also excited to share what’s to come in 2023:

Finally, we want to thank our partners and sponsors over the year, as so much of this is possible with the help of their contributions.

About the authors

Alyssa Tong

Alyssa Tong

Member of the Jenkins Advocacy and Outreach SIG. Alyssa drives and manages Jenkins participation in community events and conferences like FOSDEM, SCaLE, cdCON, and KubeCon. She is also responsible for Marketing & Community Programs at CloudBees, Inc.

Kevin Martens

Kevin Martens

Kevin Martens is part of the CloudBees Documentation team, helping with Jenkins documentation creation and maintenance.

Bruno Verachten

Bruno Verachten

Bruno is a father of two, husband of one, geek in denial, beekeeper, permie and a Developer Relations for the Jenkins project. He’s been tinkering with continuous integration and continuous deployment since 2013, with various products/tools/platforms (Gitlab CI, Circle CI, Travis CI, Shippable, Github Actions, …​), mostly for mobile and embedded development.
He’s passionate about embedded platforms, the ARM&RISC-V ecosystems, and Edge Computing. His main goal is to add FOSS projects and platforms to the ARM&RISC-V architectures, so that they become as boring as X86_64.
He is also the creator of miniJen, the smallest multi-cpu architectures Jenkins instance known to mankind.