Quantcast
Channel: Jenkins Blog
Viewing all 1088 articles
Browse latest View live

2020 Elections: Governance Board and Officer candidates

$
0
0
Jenkins 2020 Elections are over, thanks to all participants! Please see the results announcement .

As you probably know, in a few weeks we will have the Jenkins 2020 elections. We will be electing two governance board members and five officers, namely: Security, Events, Release, Infrastructure, and Documentation. After the announcement on Sep 24, we have been accepting nominations from community members.

After the processing and confirmations with potential candidates, the Jenkins 2020 Elections committee is happy to announce the candidates for the Jenkins Governance Board and Officer roles:

  • Governance Board candidates: Andrey Falko, Ewelina Wilkosz, Frederic Gurr, Gavin Mogan, Justin Harringa, Mark Waite, Marky Jackson, Steven Terrana, Zhao Xiaojie (Rick)

  • Release officer: Baptiste Mathus, Tim Jacomb, Victor Martinez

  • Security officer: Daniel Beck (uncontested)

  • Events officer: Marky Jackson (uncontested)

  • Infrastructure Officer: Olivier Vernin (uncontested)

  • Documentation officer: Mark Waite (uncontested)

We encourage all community members to support the candidates and to participate in the elections!

register button

Key dates

  • Nov 10 - Voting begins. Condorcet Internet Voting Service will be used for voting.

  • Nov 24 - Voting sign-up is over.

  • Nov 27 - Voting ends, 11PM UTC.

  • Dec 03 - Election results are announced and take effect.

Signing up for voting

Any Jenkins individual contributor is eligible to vote in the election if there was a contribution made before September 01, 2020.Contribution does not mean a code contribution, all contributions count: documentation patches, code reviews, substantial issue reports, issues and mailing list responses, social media posts, testing, etc. Such a contribution should be public.

You can register to vote in one of two ways:

  1. Fill out this Google Form. This way requires logging into your Google Account to verify authenticity.

  2. Send an email to jenkins-2020-elections@googlegroups.com. You will need to provide the information specified here.

Once sign-up is over, the election committee will process the form submissions and prepare a list of the registered voters. In the case of rejection, one of the election committee members will send a rejection email. Every individual contributor is expected to vote only once.

Candidates

Below you can find statements, affiliations and profile links provided by the candidates.

Minimum copy-editing was applied to the content by the Jenkins 2020 Elections Committee. Candidates are sorted by the first name.

Governance Board

Andrey Falko

I have been a Jenkins user and administrator on and off since around 2010. In 2016, I got into evangelism by organizing aJenkins Area Meetup in San Francisco. I spoke at Jenkins World 2017  and again at Jenkins World 2018. Justin Harringa and I wrote and open sourced the Config Driven Pipeline Plugin. For two years running, I’ve been a mentor for two Google Summer of Code projects: External Fingerprint Storage Project and Remoting over Apache Kafka with Kubernetes features.

With this nomination, I hope to continue helping strengthen and progress the community further. As a member of the governance board, I’ll bring a fresh perspective by asking questions, providing feedback, and finding opportunities for others to contribute.

Profile links:GitHub,LinkedIn

Affiliations: Stripe

Ewelina Wilkosz

As a consultant I support my customers with their Jenkins issues since the beginning of 2017. And almost from the start it was some kind of "as code" approach. The experience I gained during that time resulted in getting myself involved in the development of Configuration as Code Plugin for Jenkins. I consider becoming a part of Jenkins Community one of the most valuable experiences in my career so far. I appreciate how much I have learned and how welcoming the community is.

I am not a very active contributor these days, at least when it comes to code, but what I have to offer is rather extensive experience with Jenkins end users - from small, single instance setups to environments with hundreds of controllers run in a different way on different operating systems. Every day I see challenges those users go through, I know what issues they are facing and which features they consider valuable or missing. As a Jenkins Governance Board Member I can represent those users.

Thanks to my involvement in Configuration as Code Plugin development I had a chance to deliver a number of public presentations where I focused on the benefits of the solution and tried to make it easier for newcomers to try it. Here are a few examples of my activities related to Jenkins Configuration as Code:blogpost,cdCON presentation,podcast recording. So my focus is not only on representing users but also on educating them, and educating myself, so I actually know what they need and why.

Profile links:GitHub,LinkedIn,Twitter

Affiliations: Eficode (former Praqma)

Frederic Gurr

I started to use Jenkins back in 2008, when it still had a different name. In 2011 I started to contribute and created my first little plugin calledextra-columns. Since then, using and administering Jenkins servers has become a major part of my work life, while getting involved with the Jenkins community kickstarted my interest and involvement with open source software and communities.

I’ve been working as a release engineer at the Eclipse Foundation since 2016, supporting 250+ Jenkins instances for various open source projects. I’d be honored to bring a user and admin oriented perspective to the Governance Board and help shape the future of Jenkins.

Profile links:GitHub,Twitter

Affiliations: Eclipse Foundation

Gavin Mogan

I got started with Jenkins early on when I was just getting started with testing. I knew there had to be a way to run the tests automatically and report on them back to people. I started hacking my own tools before I came across Jenkins (then Hudson) and was hooked ever since. Over the years I’ve managed to install and configure Jenkins at various jobs, and even was employed making internal and external plugins and integrations. You’ll often find me on the Jenkins IRC and Gitter channels as well as the subreddit giving a hand to people who are stuck. I also try to get involved with Jenkins Infrastructure projects as much as I can. I currently maintain the plugin site, plugin site API, Jenkins Wiki exporter, and a bunch of other minor projects. I also help run Vancouver’s chapter of Nodeschool.

If elected, I would like to address improving commercial support avenues. Right now it’s a lot of people flailing in isolation. I would like to not only improve things so people can find easier ways to get help, but also encourage more users to help others, and push for a centralized source of companies providing commercial support.

Profile links:GitHub,Twitter

Affiliations: Digital Ocean, Nodeschool Vancouver

Justin Harringa

The nomination is quite an honor for me. I have been a Hudson/Jenkins user since around 2009/2010 when I started working through driving continuous integration in a corporate environment at John Deere. As time went on, I began contributing some small fixes to plugins such as the Job DSL Plugin, OpenID Plugin, and the Workflow Job Plugin. Eventually, I ended up helping maintain Salesforce’s Chatter plugin and then open sourcing plugins such as the Config-Driven Pipeline Plugin with Andrey Falko. More recently, I have also had the extreme pleasure of mentoring in 2 Jenkins projects for Google Summer of Code (Multi-branch Pipeline support for Gitlab in 2019 and Git Plugin Performance Improvements in 2020).

I have learned so much from working with Jenkins and I would love to give back to the project further. Having introduced Jenkins at both small and large companies, I would love to help contribute to the direction of the project through the Roadmap/SIGs/JEPs and encourage others to also contribute / improve Jenkins.

Profile links:GitHub,Twitter,LinkedIn

Affiliations: Salesforce, Spinnaker SIG for Azure

Mark Waite

I’m a Jenkins contributor, a member of the Jenkins core team, one of the leaders of the Platform Special Interest Group, and leader of the Documentation Special Interest Group. I’ve served as the Jenkins Documentation Officer since 2019. I was a mentor for Google Season of Code 2020 and am one of the maintainers of the Git plugin for Jenkins.

If elected and allowed to serve on the Jenkins Board, I’ll work to increase community involvement and community development. I’m deeply interested in tooling and environments that support the Jenkins project, including the Jenkins CI environments, issue tracker, artifact repository, and source code repositories.

Affiliations: CloudBees

Marky Jackson

I have been involved in the Jenkins project for many years. I started out as a plugin maintainer, SIG member and general helper. I moved to a SIG lead, speakers and Google Summer of Code and Docs org admin and mentor. My current goals are to help continue the work of the public roadmap as well and gain most community members by continuing to be a champion of the community.

For me, being on the Jenkins Board is another opportunity to improve upon the great work we have all done as well as work toward branching out our efforts to have more women, people of color and LGBTQIA members. I would be honored to have this opportunity.

Affiliations: Equinix Metal, Continuous Delivery Foundation, Kubernetes, Ortelius

Steven Terrana

I have been a Jenkins user since 2017 and contributor since 2018. I am the primary maintainer of the Jenkins Templating Engine, a plugin that allows users to create truly templated Jenkins pipelines that can be shared across teams. Through that work, I’ve had the great pleasure of helping to organize the Pipeline Authoring Special Interest Group, contributing to the Jenkins Pipeline documentation, and contributing bug fixes to various plugins (including the pipeline plugin and workflow-cps library).

As a Continuous Delivery Foundation Ambassador, I’ve enjoyed doing what I can to advance the community’s approach to CI/CD and simplifying DevSecOps adoption within large organizations. It would be a privilege to serve on the Jenkins Governance Board and offer my support wherever I can.

Profile links:GitHub,LinkedIn

Affiliations: Booz Allen Hamilton, Continuous Delivery Foundation

Zhao Xiaojie (Rick)

Three years ago I joined the Jenkins community. I learned a lot during the process of contributing. I even became a Jenkins hero in my city. The most exciting thing I want to do is help more new users of Jenkins get started, and let more contributors feel comfortable. I always love to host a JAM no matter if it’s online or offline.

Plans: improve the experience of using Jenkins in different countries; reorganize the knowledge of Jenkins, for example the tutorial by text or video format; help other SIG leaders to organize meetings.

Profile links:GitHub,Twitter

Affiliations: N/A

Release Officer

Baptiste Mathus

I have been using and contributing to Jenkins for so long that it is difficult for me to check when it started exactly. My first pull-request to Jenkins was in 2011 and I had started to use it long before it. Throughout the years, I have contributed to various areas: created our local Jenkins Area Meetup with Michaël Pailloncy, helped users and developers on our mailing lists and IRC channels, contributed to the Jenkins infrastructure, the website, processing plugins hosting requests, worked full time on Jenkins Evergreen, and I am still present today.

For all these reasons, it would be an honor to serve as the Release Officer for the Jenkins Project.

Affiliations: CloudBees

Tim Jacomb

I have been a user of Jenkins for the last 8 years and a regular contributor since 2018. I began with maintaining the Slack plugin and over the last couple of years I have since expanded that to many more plugins and the Jenkins core. These are some of the components I maintain when I have time: Slack, Azure Key Vault, Junit, most of the Database plugins, Dark theme, Plugin installation manager, Jenkins Helm chart, Configuration as code plugin. I am also a member of the Jenkins infrastructure team, and I was involved in the release automation project and the mirrors modernisation effort, along with the day to day support helping people regain access to accounts etc.

As a Release Officer I would like to increase automation, ease onboarding of new contributors to the release team, and ensure that responsibilities rotate among people so that I wouldn’t be a bottleneck for any task.

Profile links:GitHub,Jenkins Blog

Affiliations: Kainos

Victor Martinez

I have been involved in the Jenkins project since 2011 by different means, as a user, as an administrator, as a contributor (bug reporting, plugin development, documentation, hackfest), being active in the different Jenkins forums such as the Jenkins-dev and Jenkins-user mailing lists, working with the jenkins-infra shared library and so on. I’m also an advocate for the Jenkins project through some presentations anytime that I had the opportunity such as DevOps World 2020 and Jenkins World 2017.

I’ve been happily nominated for the Release officer role which matches not just my area of professional expertise that I’ve been doing for the last 14 years in different roles for different companies but also that’s an area of personal interest where I’d like to spend time with the Jenkins community to understand, document and automate the process in a way we can keep the project sustainable for a long term as it’s today, it’s not just about what I can bring for the community but also about growing together.

If elected as a Release officer I would aim to focus on the following areas: proceed with the existing responsibilities for this role; document and automate the release process; being an enabler for the Continuous Delivery not just for the plugins but also for the core.

Profile links:GitHub,LinkedIn

Affiliations: Elastic

Security Officer - uncontested

Daniel Beck

I’ve been a Jenkins user since 2011, contributor since 2013, and core maintainer since 2014. In 2015, I took on the scheduling and authoring of security advisories and have been doing that ever since, working with reporters, maintainers, and the Jenkins security team to deliver security fixes. Beyond that, I regularly contribute to Jenkins and project infrastructure.

Since I’ve started in the Security Officer role, we’ve made significant improvements: Plugins no longer allow ordinary users to run arbitrary scripts (no sandbox!) as a regular feature. I introduced fine-grained permission managementfor our GitHub repositories and the Maven repository hosting our releases.Warnings directly in Jenkins inform admins when an installed component has known security issues (and their UX was improved earlier this year). The Jenkins project  is now a CVE Numbers Authority, to ensure timely and high-quality information in the CVE vulnerability database. Working with Tyler, I added telemetry to Jenkins, which allowed us to deliver multiple large-scale security fixes withminimal impact. More recently, I’ve started writing code scanning rules for common problems in Jenkins and invited maintainers to sign their plugins up, which is something I hope to properly publish and roll out more widely soon.

Profile links:GitHubJenkins Blog

Affiliations: CloudBees

Events Officer - uncontested

Marky Jackson

I have been a part of the Jenkins community for some time, and I have received the utmost joy in volunteering. I have been extremely fortunate to have played a lead role in the Outreach & Advocacy SIG, the pipeline-Authoring SIG, and, most recently, the Cloud-Native SIG. I have taken part in many meetups, org admin, and mentor in the GSoC & GSoD. Finally, At DevOps World 2020, I received Jenkins most valuable advocate at DevOps World. I have experience advocating in other communities as well: Kubernetes Release Manager Associate, Kubernetes Mentoring Lead, Ortelius Community Manager.

Jenkins is the most widely used Continuous Integration tool around, and I want to continue to promote that by focusing on the following areas: meetups; conference presentation from the Jenkins community; new user outreach and onboarding; cross-community collaboration (e.g., Kubernetes community); working with the Continuous Delivery Foundation on interoperability; focusing on SIG events.

My roots are open-source, and I am so proud to be a part of the Jenkins community. You can read more about my journey in open-source here. You can also see some of my presentations here andhere.

Affiliations: OpsMx, Continuous Delivery Foundation, Kubernetes, Ortelius, Spinnaker

Infrastructure Officer - uncontested

Olivier Vernin

I have been actively contributing to the Jenkins project for the past four years with contributions across many areas, and infrastructure is one of my favorite topics. Over my previous mandate as a Jenkins infrastructure officer, I focused on improving contribution experience, and let community members opportunities to take ownership of the different services. I worked on various sponsoring initiatives to make the Jenkins infrastructure more sustainable. We provided a new environment for releasing Jenkins core (and one plugin!), and also many more things.

For the coming year, It is hard to make commitments on what it will look like as we have things we know, like services that need some attention (“ci.jenkins.io/) and the things we don’t know yet. Anyway, It’s important to me to have a transparent project where everybody could read, learn, participate, and understand how the Jenkins project manages infrastructure and I want to continue down that path.

Affiliations: CloudBees

Documentation Officer - uncontested

Mark Waite

I’m a Jenkins contributor, a member of the Jenkins core team, one of the leaders of the Platform Special Interest Group, and leader of the Documentation Special Interest Group. I’ve served as the Jenkins Documentation Officer since 2019. I was a mentor for Google Season of Code 2020 and am one of the maintainers of the Git plugin for Jenkins.

If elected and allowed to serve as Documentation Officer, I’ll continue efforts to invite more contributors through regular Documentation Office Hours and outreach programs like Google Season of Docs, CommunityBridge, Outreachy, and Jenkins Hackfests. I’ll work to assure an inviting and welcoming environment for contributors.

Affiliations: CloudBees


First results from using GitHub CodeQL to discover security vulnerabilities in Jenkins plugins

$
0
0

A little over a month ago, GitHub announced the general availability of its code scanning solution. It’s based on CodeQL, which makes it pretty easy to write queries for it and run them using the CodeQL GitHub action, CodeQL command line tools, or on lgtm.com.

Many of the security vulnerabilities discovered in Jenkins plugins are fairly similar to each other, and unfortunately they’re usually specific to Jenkins, which means existing generic tools would not be able to discover them. So I decided to write CodeQL queries for Jenkins-specific issues and invited maintainers to sign their plugins up for a "private beta" of code scanning for these issues.

Today’s security advisory is the first one that includes findings discovered through that initiative. All these issues were discovered with assistance by this tooling:

While there were of course also false positives we had to review and mark as ignored, the integration with the GitHub UI made this pretty straightforward. Overall I’m very happy with the results so far, especially considering how new this initiative is.

Interested in making the plugin you are maintaining more secure? Sign up now by filing an INFRA issue in the github component and list the plugin repositories you’d like to have scanned.

Document Jenkins on Kubernetes: Installing Jenkins on Kubernetes Documentation Release

$
0
0

We are super excited to announce that the Document Jenkins on Kubernetes Project recently merged its first PR into Jenkins.io. This PR adds a new Kubernetes section to the existing Installing Jenkins chapter of Jenkins.io.

Installing Jenkins on Kubernetes Section

This new section describes two options to install/run Jenkins on Kubernetes, how to setup a minikube cluster on which to run your Jenkins deployment and finally a bonus segment that explains some Post-installation setups such as unlocking Jenkins, customizing Jenkins with plugins and creating your first administrator user.

The first installation option covered in this section is helm a package manager for Kubernetes whose package format is called a chart. The helm section covers the prerequisites for installing Jenkins on Kubernetes using Helm, installing and configuring helm, creating a persistent volume and service account, and finally, Installing Jenkins.

The second option describes how to install Jenkins using a set of yaml files. This section explains how to create a Jenkins deployment file, Deploy Jenkins, grant access to jenkins service, and finally access your Jenkins dashboard after installation.

Splitting the Installing Jenkins Chapter

The addition of the Kubernetes section highlighted a long-standing challenge with the Installing Jenkins chapter. It was too long and contained too many topics, making it difficult and unpleasant for most users to navigate. To top the icing on the cake and further improve the experience on Jenkins documentation users, another PR was merged into Jenkins.io to split the Installing Jenkins chapter into smaller chapters for better separation of concerns and easy navigation. This PR also redirects bookmarks that linked to the previous locations like https://www.jenkins.io/doc/book/installing/#debianubuntu using Javascript.

Installing Jenkins chapter before the PR

The image above is a snapshot of what the Installing Jenkins chapter looked like before the PR. All sections of this chapter such as docker, Kubernetes and others were lumped up on the same page making it too long with so much information thereby making it difficult to navigate or even find information on this page.

Installing Jenkins chapter after the PR

This snapshot shows what the Installing Jenkins chapter looks like after the PR. With this chapter split into smaller sections, it’s neater, clearer and most importantly easier to navigate to the section of interest without having to scroll through so much information that’s not necessarily needed.

Testing, Participating and Contributing

The Jenkins Community invites the general public to try out these documentation updates and give feedback to help us further improve the documentation. If you have any feedback, suggestions, or would like to contribute to the Jenkins on Kubernetes project, drop a message indicating your interest in the Jenkins documentation Gitter channel. You can also find the Google season of docs office hour notes and recordings for Jenkins on Kubernetes here. GSOD office hours take place twice a week on Mondays and Thursdays between 6 pm GMT+1 and 7 pm GMT+1, if you would like to be part of these meetings, you can indicate interest in the Jenkins Documentation Gitter channel and we would be happy to have you.

Spring and XStream updates (breaking changes!)

$
0
0

Cleaning up technical debt is a perennial topic among Jenkins core developers, and one of the most visible issues is the use of obsolete and/or forked third-party libraries. In a world where Dependabot is offering updates to libraries released just hours before, it is unpleasant to be working with dependencies that are many years old. Since large organizations in particular are unhappy to install software using obsolete or nonstandard versions, my employer (CloudBees) gave its blessing for me to spend some time cleaning up some of the worst offenders.

The toughest nut to crack was the Acegi Security library used for authentication, which has long since been replaced by Spring Security (and Jenkins was also bundling a long-outdated version of some Spring Framework dependencies).JEP-227 tracks the complicated task of updating to Spring Security without breaking the numerous plugins that interact with authentication, especially those offering a Security Realm.

Another longstanding problem was the XStream library which Jenkins uses to read and write XML configuration files. This had been forked long ago by what was then the Hudson project and a few fixes applied. Unfortunately, some of those fixes were rejected upstream as invalid (representing unsupported usage patterns), and the fork fell behind the upstream version.JEP-228 describes the impact of switching to the upstream library in a more standard usage mode, including fixes to a smaller number of plugins which would otherwise be incompatible.

Now that the Jenkins 2.266 weekly release includes both updates, it is important for both Jenkins administrators and plugin maintainers to check for actual or potential incompatibilities. There are two tables listing the impact of these changes on plugins:

If you use Jenkins then it is a good idea before upgrading to take a look at these tables to see if you are running any plugins considered incompatible. If so, try not to rely on that plugin, or find out if there is an active maintainer who could help. For entries marked unknown, it would be appreciated if you could do a sanity check after upgrading and offer a pull request to the table page (click Edit this file) with a more informative status.

If you find a regression in a plugin, please file a bug report in Jira and link to it from the table. Also please add a JEP-227 or JEP-228 label as appropriate, for ease of tracking:

It is a good idea to update all your plugins before upgrading Jenkins core. In the case of the Spring Security update, some security realm plugins including LDAP and Active Directory must be updated in advance. (You can safely run the new plugin versions on Jenkins releases prior to this change.) Otherwise, you risk being unable to log in to Jenkins—and thus unable to update those plugins from the GUI! The LDAP plugin additionally has a new version available only after the core upgrade, but there is no rush in switching to that.

If you maintain a Jenkins plugin then please check whether it is marked anything less than compatible. In some cases, there are already pull requests awaiting merge. In other cases, some minor aspects of the source code have been identified that could be edited to improve compatibility.

We expect to see a bit of disruption from these changes but hope that in the long run they will save time for core and plugin developers and lead to a more secure and stable tool. Please reach out on the developers’ list with any questions or suggestions.

Jenkins 2.264+: Major changes in the weekly release line

$
0
0

Recently we have selected Jenkins 2.263 as a new baseline for the LTS release line, with ETA in December 2020. It allows delivering significant and in some cases breaking changes which have been previously on hold. Beginning with the Jenkins 2.264 release on October 27, 2020, we’ve entered a period where the Jenkins weekly releases will include more significant changes than usual. That period of more significant changes is expected to continue for a month or more. As you may have seen from the release community ratings, there might be regressions and instabilities during this period.

We’re excited for the changes. They help to improve user experience and to address the technical debt accumulated in the Jenkins core. We invite Jenkins users to evaluate those changes and provide feedback. This is an especially valuable time for users and administrators to test the weekly releases and report issues with them, especially on Jenkins test environments. In the Jenkins project we have invested a lot in test coverage for the main functionality, but in many cases we rely on user feedback for exotic plugins and environments not yet covered by our test automation.

The most notable changes include:

Configuration UI - Tables to Divs

Jenkins 2.264 is the first weekly release to include the "Tables to Divs migration" user interface work of Josh Soref, Tim Jacomb, and Felix Queiruga. It is a significant step to improve forms in the Jenkins user interface (configuration pages, build parameters, etc.), especially for users on narrow devices like tablets and phones.

A better user interface

The transition from using HTML table tags to using HTML div tags provides a more attractive user interface for all users and a much better experience for users on narrower devices. Before the conversion from table tags to div tags, the "Manage Jenkins" page looked like this in a 1024x768 window:

Before the pull request

After the conversion, the "Manage Jenkins" page now looks like this:

After the pull request

The user interface improvements from the transition are a nice step forward for Jenkins. However, because the user interface improvements require changes in plugins, we need your help.

We need users to test the latest weekly Jenkins releases with the plugins and configurations that are most important to them. When users detect an issue, we need them to report the issue with enough detail that a plugin maintainer can fix the issue. Please add the tables-to-divs-regression label to the issues. The tables-to-divs-regression label makes it easier to find issues related to the tables to divs transition.

Plugin developers

Several plugins have already been identified that may need changes. See the Jira epic for plugins that are likely to need changes for the new user interface layout. The list of open tables-to-divs-regression issues can also be used to see plugins that need changes.

If you can assist with plugin testing and code changes, select one of the plugins from that epic, test it, and propose a pull request to help with this user interface transition. If you’re not comfortable proposing a pull request, describe the problems you see in a bug report.

A tables to divs migration guide is available. It describes areas that typically need to be changed as part of the migration from tables to divs. It also includes detailed examples that allow the plugin to continue supporting older Jenkins versions with table layouts and use div layouts for newer Jenkins versions.

Core - Spring Security replaces Acegi Security

The Jenkins 2.266 release on November 10, 2020 will include the migration to the Spring Security libraries from the Acegi security libraries that Jesse Glick has proposed and developed through JEP-227: Jenkins Enhancement Proposal 227.

This upgrade replaces the Acegi Security library with the current release of the Spring Security library. Details of the change are described in JEP-227 and in the pull request.

We need users to test the latest Jenkins weekly releases with their plugins and watch for issues related to authentication.

Refer to Jesse Glick’s blog post that introduces the details of the change and provides links to the Spring Security compatibility table. Jesse’s blog post provides specific instructions for those who report bugs related to this change. Please use those instructions as you submit bug reports related to the Spring Security upgrade.

Core - XStream unfork

Jenkins has been using a fork of the XStream serialization library to read and write XML files. The XStream library was forked over 10 years ago and had a few fixes applied to it. Unfortunately, at that time the fixes were rejected by the upstream maintainers of XStream (unsupported patterns of API use) and the fork fell behind the upstream version.

The Jenkins 2.266 release on November 10, 2020 will include the migration to the upstream version of the XStream library that Jesse Glick has proposed and developed through JEP-228: Jenkins Enhancement Proposal 228.

Refer to Jesse Glick’s blog post that introduces the details of the change and provides links to the XStream compatibility table. Jesse’s blog post provides specific instructions for those who report bugs related to this change. Please use those instructions as you submit bug reports related to the XStream upgrade.

UI - JQuery upgrade

Jenkins uses a 1.x version of the jQuery user interface library for some of its components.Felix Queiruga has started the work to update that library to a current jQuery version.

It will arrive in a future Jenkins weekly release. When it arrives, it will be noted in the Jenkins weekly changelog.

When the jQuery update arrives, We will need users to test the Jenkins weekly release with the plugins and configurations that are most important to them. When users detect an issue, we need them to report the issue with enough detail that a plugin maintainer can fix the issue.

Call to test

This is a great time to help the Jenkins project by testing the weekly releases. We encourage you to test the user interface and the interactions that are most important to you. If you find an issue, please report the issue so that others can benefit from your discovery.

2020 Jenkins Board and Officer Elections Results

$
0
0

Jenkins Elections

The Jenkins community has recently completed the 2020 elections. On behalf of the Jenkins community and the elections committee, we congratulate all newly elected board members and officers! We also thank all candidates and voters who participated this year.

Election results:

The board positions and officer roles are an essential part of Jenkins' community governance and well-being, and we are excited to see contributors taking these roles. If you are interested to learn more, please see the blog post below.

Governance Board election details

This year we had nine candidates participating in Jenkins Governance Board elections: Andrey Falko, Ewelina Wilkosz, Frederic Gurr, Gavin Mogan, Justin Harringa, Mark Waite, Marky Jackson, Steven Terrana, and Zhao Xiaojie (Rick). All of them are awesome community leaders who actively contribute to the Jenkins project and represent its users. It would be an honor to have them on the Jenkins board. Regardless of the election results, we appreciate their participation and the time they invested in these elections.

This year we were electing 2 governance board members. We were using the Condorcet Internet Voting Service that allows voters to rank their choices rather than just picking their one favorite choice. You can find full voting results here:

  1. Mark Waite (Condorcet winner: wins contests with all other choices)

  2. Marky Jackson loses to Mark Waite by 48–12

  3. Gavin Mogan loses to Mark Waite by 51–10, loses to Marky Jackson by 31–20

  4. Ewelina Wilkosz loses to Mark Waite by 48–14, loses to Gavin Mogan by 29–28

  5. Justin Harringa loses to Mark Waite by 51–11, loses to Ewelina Wilkosz by 35–16

  6. Steven Terrana loses to Mark Waite by 47–16, loses to Justin Harringa by 20–19

  7. Zhao Xiaojie (Rick) loses to Mark Waite by 57–5, loses to Steven Terrana by 25–24

  8. Frederic Gurr loses to Mark Waite by 52–10, loses to Zhao Xiaojie (Rick) by 25–24

  9. Andrey Falko loses to Mark Waite by 56–6, loses to Frederic Gurr by 26–13

Although Mark Waite came first in the voting results, being on the board would violate the Corporate Involvement clause which states that "the number of board members affiliated with one company must be less than 50%". Mark will continue to be Documentation officer. Regardless of his official role, Mark has been leading many initiatives and helping a lot with various aspects of the community governance.

Congratulations to Marky and Gavin, and thanks to all candidates! All new board members are elected for a 2-year term unless they decide to step down earlier. The estimated end of the term for them is December 02, 2022. We would also like to thank Alex Earl and R. Tyler Croy who step down from the Jenkins Governance Board this year. Thanks to them for all contributions and for continued community leadership.

Statement from Marky Jackson:

It is a tremendous honor to be elected to this roles. I am so humbled. Being part of this community is a fantastic opportunity that I have had. It has given me so many joys. Whether helping to foster community collaboration, working on the roadmap, leading various SIG’s or helping meetups or conferences, this community has given me so much. My goals are bridging the Jenkins project with other interoperability projects, defining the roadmap, achieving roadmap goals, continuing to help meetups thrive, and our conferences focus on the community. I want to ensure we are transparent in our goals and how we achieved them. I want to continue to build up a welcoming community that holds diversity and inclusion at the forefront. I look forward to working with the other members of the Governance Board to continue to deliver on the incredible things this project is known for.

— Marky Jackson, Jenkins Governance Board Member and Events Officer

Statement from Gavin Mogan:

Gavin here. I’m still in shock that I got voted in for the Jenkins board. It felt like yesterday I just got started helping people randomly on IRC. This is truly exciting. I plan to continue to help out as much as I can wherever I can, just in a bit more official capacity. This is truly exciting. I have no firm plans or agenda, just keep pushing advocacy and getting people to help each other in a positive and safe way. My specialities lie in outside of Jenkins core, whether it be working on the plugin site, or hanging out on IRC, Gitter and Reddit helping out where I can.

— Gavin Mogan, Jenkins Governance Board Member

Officer election details

All 5 officer positions were up for election this year. These roles have a 1-year term, with the estimated end of term on Dec 02, 2021. After the initial review of nominations and confirmations with potential candidates, 4 officer positions were uncontested:

Thanks to all Jenkins officers for their continued leadership! Officers take responsibility for many day-to-day processes in the Jenkins community and lead the contributor teams working on them. It requires significant time commitment, and it is not taken for granted.

Release Officer election results

Tim Jacomb won the biggest support as a Release officer (voting results). Tim will replace in this role Oliver Gondža who has been leading the Release Team and the release processes since 2016 when the role was officially introduced.

  1. Tim Jacomb (Condorcet winner: wins contests with all other choices)

  2. Baptiste Mathus loses to Tim Jacomb by 40–23

  3. Victor Martinez loses to Tim Jacomb by 38–25, loses to Baptiste Mathus by 32–31

Here is a statement from Tim Jacomb:

I’m excited for the year ahead, let’s see where we can take the Jenkins release area in the future. As a Release Officer I would like to increase automation, ease onboarding of new contributors to the release team, and ensure that responsibilities rotate among people so that I wouldn’t be a bottleneck for any task.

— Tim Jacomb, Jenkins Release Officer

Thanks to Alyssa Tong and Oliver Gondža for their long-time service as Jenkins officers! We are looking to continue working with them in the Jenkins community. And congratulations to Tim Jacomb and Marky Jackson for joining the team!

Statistics

This year we had 92 registered voters and around 65 actual votes. It is significantly lower than in the 2019 elections when we had almost 350 voters. It can be partially explained by the change of the communication process. This year we decided to not use the previous voter registration system, and we relied on the user and developer mailing lists instead of sending messages to the entire LDAP user database. This is definitely something we need to review at the retrospective.

What’s next for the board?

The last year was awesome for the Jenkins project governance. With help of many contributors and with the renewed board, we have been able to facilitate many initiatives in the Jenkins project, for example hosting contributor summits, publishing the public roadmap,Code of Conduct update,terminology changes, and graduation in the Continuous Delivery Foundation. There is a lot more work to do to grow the community and to ensure the long term sustainability of the project.

In short term, our key priority is to organize knowledge and permission transfers to the new board members and officers so that they can be effective in their new roles. The board will also focus on maintaining the Jenkins governance processes (meetings, budget approvals, funding, etc.) and defining the next steps and priorities.

There are many longer-term initiatives the board could facilitate: long-anticipated features and architecture changes, changing the Jenkins Enhancement Proposal process, creating better communication channels with Jenkins users, and onboarding of new contributors and maintainers. Such initiatives are instrumental for the evolution of the Jenkins project. The ideas will be discussed in mailing lists and during governance meetings. If you would like to share your vision and ideas about what’s needed in the project, it is definitely a great time to contribute!

Feedback

Jenkins project plans to conduct elections every year. We will appreciate and welcome any feedback regarding the election process so that we can improve the process. We have started a Retrospective document for these elections. Everyone can suggest changes in this document, and we will integrate them. There will be also a public retrospective review at the next Advocacy and Outreach SIG meeting on Dec 17.

If you have any private feedback you would like to share, please send an email to the Jenkins Board. If you would like to raise any issues about the election process, please contact one of the elected Governance Board members.

GSOD Project Report: Document Jenkins on Kubernetes

$
0
0

Jenkins is the world’s leading open-source automation server used by companies large and small around the globe to implement continuous integration and continuous delivery. Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. Kubernetes is compatible with the majority of CI/CD tools which allow developers to run tests, deploy builds in Kubernetes and update applications with no downtime. One of the most popular CI/CD tools now is Jenkins thereby making Jenkins on Kubernetes a popular theme for Jenkins users.

During the Google Season Of Docs program, I worked with the Jenkins organization on the project - Document Jenkins on Kubernetes. The original proposal for this project can be found here.

Project Goals

After my proposal was accepted by the Jenkins organization, my mentors and I agreed on the expectations for the Google Season of Docs project. The goal of this project was to create a new Kubernetes Volume which would describe the concepts, techniques, and choices for Kubernetes users running Jenkins thereby providing the following advantages:

  • Improve the user experience of Jenkins on Kubernetes users by giving them a one-stop-shop for information on Jenkins on Kubernetes.

  • Make it easy to track, update and maintain information on Jenkins on Kubernetes

  • Reference the existing community documentation for Jenkins on K8s (plugins and tools/integrations).

  • How to guides, tutorials and explanations of concepts and techniques in Jenkins on Kubernetes.

  • Just-In-Time documentation which means that rather than documenting every feature comprehensively, we produce and release documentation in bits but continuously based on popular questions, feedback and area of interests gathered from the community and users.

Community Bonding: Planning the solution

Find below an outline of my activities during the community bonding phase:

  • Setting up communication channels: meetings, mailings, chats: My mentors and I agreed on the right time and channel for communication due to time difference. We agreed to meet twice weekly, on Mondays and Thursdays at 7:00 PM GMT +1 and use Jenkins documentation gitter channel for other communications.

  • Contacting Stakeholders and onboarding contributors: The project was announced on social media and different Jenkins channels. I wrote a blog post to announce the project and created a project page on Jenkins.io.

  • Knowledge transfer: I and my mentors planned knowledge sharing sessions and fixed tentative dates based on the availability of the trainers. My mentors also shared useful resources to help me prepare for the project.

  • Getting permissions: I and my mentors agreed I didn’t need any special permissions from the beginning, however, this topic was left open for discussion if the need arose later on in the project.

  • Pre-planning of the project: I refined my goals and set expectations with my mentor and also learned more about the community(Jenkins). I also had to ensure that the proposed documentation structure I drafted was in line with the goals of the organization so my mentors vetted it and we finalized on the proposed sections that I was supposed to work on.

Documentation Development Phase

Knowledge Sharing Sessions

During the development phase, my mentors hosted two knowledge sharing sessions:

Katacoda and Helm by Marky Jackson

See the slides

Helm by Torsten Walter

See the slides

These sessions gave me an in-depth understanding of concepts and tools needed for the project.

Jenkins on Kubernetes Documentation Skeleton

At the application phase, I drafted a structure describing the proposed Jenkins on Kubernetes section. My intention was to use it as a guide during the implementation phase of the project, but when the development phase kicked off, my mentors and I thought of a better approach to creating a new Jenkins on Kubernetes section which was to add the Jenkins on Kubernetes contents to existing related sections for easier navigation and better user experience. An example of this approach would be creating the Installing Jenkins on Kubernetes section under the Installing Jenkins section rather than putting it under an entirely new section. With this new approach, I was assigned a task to create a skeleton with all the proposed Jenkins on Kubernetes sections on Jenkins.io and mark these sections as Work In Progress (WIP). The Plan was to use this skeleton as a guide throughout the GSOD Project. The Jenkins on Kubernetes skeleton PR can be found here.

Documenting Jenkins on Kubernetes

While working on this project, I had to do a lot of research and test all the documented steps locally before pushing the documentation out for review. I also made sure to use updated terms and terminologies where necessary like Controller instead of Master and Agents instead of Slave.

During the documentation phase, I was able to work on documenting Installing Jenkins on Kubernetes with three sections Helm, Set of Yaml files and Jenkins Operator. I also worked on creating a directory for Jenkins on kubernetes sample files in Jenkins.io repository, documenting Scaling Jenkins on Kubernetes and Jenkins on AWS which is still in progress.

Work Done

Pull Requests: All the pull requests I submitted to Jenkins.io documentation can be found here. This spreadsheet contains links to the published documentation on Jenkins.io. The spreadsheet also highlights the initial proposed tasks and the status of each of them.

If you would like to contribute to the Jenkins on Kubernetes documentation, you can check out pending tasks here and reach out in the Jenkins documentation gitter channel.

Challenges

Using a Windows computer was a bit of a challenge for me. To run Jenkins.io locally, the project uses GNU/Make and Docker in order to generate the fully statically generated jenkins.io web site. The key tool for converting source code into the site is the Awestruct static site generator, which is downloaded automatically as part of the build process. To achieve this, I needed to have GNU/Make and Docker available on my machine. Docker was not a problem, but to achieve the latter, I needed to use Windows Subsystem for Linux (WSL). WSL had two versions WSL1 and WSL2. Using WSL2 would have been much more convenient, but my version of windows wasn’t compatible with WSL2 as it required Version 1903 or higher, with Build 18362 or higher for x64 systems. With this obstacle, I had to stick to making WSL1 work but I still couldn’t get this to work, a series of issues came up which I was able to pass through with the help of my mentors until I got stuck at permission issues. I raised the issue with my mentor and after looking through the issue with me and trying to solve it to no avail, he suggested setting up an Ubuntu VM in Hyper-V. This article helped me achieve this and that solved my problem.

What did I learn?

I learned a lot more about the Jenkins project, Kubernetes, helm package manager, Jenkins Operator and much more. This project also gave me the opportunity to work with cloud providers like AWS which was totally new to me and also learn from field experts through knowledge sharing sessions and weekly meetings with my mentors and org admin. My technical writing skill and communication skill have definitely become better and I owe it to this project.

Overall, contributing to the Jenkins.io project is an amazing experience for me. I have been using Jenkins, and the fact that I was able to contribute to the organization and collaborate with the community is an honor.

3 Cases: Jenkins success stories from the community

$
0
0

Back in April, when we started canvassing the Jenkins community for user stories concerning how Jenkins helped enterprise companies, startups, and students, we thought we’d see some exciting tales of DevOps inspiration and CI/CD integration. We found that some submitted stories were far too big to be constrained by our format of 'background/goal/solution/results.'

Some Jenkins users had a much more complex story to tell, whether it was about getting upper management to buy-in, keeping developers happy, or simply making sure pipelines weren’t just bottlenecks in disguise.

Here are a handful of Jenkins Case Studies we’ve published in the past few months, with many more on the way!

Case Study #1: D4Science

Amping up scientific research with CI/CD powered by Jenkins

To promote open science practices and support scientific communities while serving 11k registered users in 45 countries, D4Science introduced a new delivery pipeline that replaced their pre-existing build platform.

Of course, they had to build and release their software framework (gCube) in a way that would support multi-project releases at scale — from 200+ Git repositories within the same day! It had to be fast, automate all release activities, and it had to deliver incremental releases to address user requirements quickly. Most of all, the solution had to be cost-effective.

Using Jenkins, they created an innovative approach to software delivery: a continuous integration/continuous delivery (CI/CD) pipeline, scalable, easy to maintain, and upgradable at a minimal cost.

Discover how D4Science empowers e-Science and virtual research communities with software released via Jenkins. Read the Jenkins case study featuring D4Science here!

Case Study #2: Gainsight

Humanizing CSX with tech innovation and a robust DevSecOps platform

Gainsight’s customer service experience platform helps customer success teams at more than 100 leading IT and healthcare clients. How? By driving engagement for tens of thousands of their customers.

That’s why the engineering team at Gainsight approached the customer experience by building a smarter, faster DevSecOps platform using Jenkins. They stuck to an infrastructure-as-code approach while integrating various tools and programming languages all within the platform. And they secured processes with better visibility and air-tight quality control.

The result was a flexible DevSecOps infrastructure, 95% of which is scalable with code. And the cost of infrastructure costs was 40% less. That provides Gainsight with ease of collaboration, keener operational insight, and — because builds are 30% faster — the ability to stay a step ahead of the competition.

Read why Gainsight’s lead DevOps engineer, Prudviraj Pentakota, says "Jenkins is the epicenter of DevSecOps in our organization." Get the full story here.

Case Study #3: Avoris Travel

Reinventing travel with an inventive technology platform

Part of Barceló Group, Ávoris Travel is behind prominent destination travel brands like LeSki, Le Musik, and a selection of author travels under its "Viagens Com Assinatura" signature travel concept. A proprietary database and a smart, dynamic booking engine are the tickets to offering differentiating and inventive travel opportunities.

Also unique to Avoris is a discreet machining technology that enables agents to enter specific criteria to search and find all types of trips and travel opportunities across the entire network.

"Our infrastructure is very important because we have to be online to meet customer demand anywhere in the world," said Alejandro Alvarez Vazquez, Sysadmin, Avoris Travel. "Our CI/CD platform is used by 200 people. The services that we build and deploy are used by thousands of potential clients and by our network of 675 own agencies located in Spain and Portugal."

Read the case study to learn how the flexibility of Jenkins plugins helped Avoris reduce build times by over 50% and became a go-to, scalable infrastructure supporting 675 agencies and over 2.8 million international consumers.

What’s your story?

We want to know what you’re building with Jenkins and would love to post your case study on our "Jenkins Is The Way" website, a global showcase of how developers and engineers build, deploy, and automate great stuff with Jenkins.

The best way to get started is to share your Jenkins User story with us. We’ll send you a free Jenkins Is The Way T-Shirt in return and publish your account for the entire Jenkins community to see. And if it’s selected for a Case Study, we’ll be in touch for a one-on-one interview! Hope to hear from you soon!


“Jenkins Contributors Awarded Top Honors at DevOps World 2020”

$
0
0

At DevOps World on September 24, 2020, through the sponsorship of CloudBees, three Jenkins contributors were recognized for their contributions to the Jenkins project. The Jenkins Contributor Awards honor those who have made significant contributions to the Jenkins project. The 2020 Jenkins Contributor Award winners are:

Most Valuable Jenkins Contributor

This award is presented to an individual who has contributed to the Jenkins project the most through new features, bug fixes or plugin development efforts.

  • Tim Jacomb - Tim is everywhere in the Jenkins community: plugins, Jenkins core maintenance, Google Summer of Code, infrastructure, and new initiatives like GitHub App authentication and Dark Theme. His software, frontend and infrastructure skills help to push the Jenkins project forward. Several examples of features shipped by Tim in 2020: Read-only Jenkins configuration, GitHub App Authentication support, Jenkins Dark Theme and many other smaller features here and there. Tim is also the second most active code reviewer in the Jenkins core.

Jenkins Security MVP

This award is presented to the individual who most consistently provides excellent Jenkins security reports or resolves Jenkins security issues.

  • James Holderness - Security issues reported by James have been included in nine of the nineteen security advisories published by the Jenkins project in the last 12 months. His issue reports have detected many cases where sensitive information was being stored insecurely by plugin maintainers. Jenkins users and the Jenkins security team are sincerely grateful for the issue reports that James has provided.

Most Valuable Jenkins Advocate

This award is presented to an individual who has helped advocate for Jenkins through organization of a local Jenkins Area Meetup(s), or virtual equivalent.

  • Marky Jackson - Marky has been very active in many Jenkins advocacy & Outreach initiatives. He was a leader of the Advocacy & Outreach SIG, and he participated in many promotional initiatives organized by the SIG. Marky was also a copy-editor of the Jenkins Twitter account where he contributed a lot to it. In addition to that, Marky has presented talks as well as provided technical support on Jenkins at multiple events including Jenkins Online Meetups, in person as well as virtual conferences.

Congratulations to James, Marky and Tim! We are grateful for their contributions to the betterment of the Jenkins project.

Google Summer of Code 2021 call for Project Ideas and Mentors

$
0
0
Google Summer of Code (GSoC) is a program where students are paid a stipend by Google to work on a free open source project. Students work on the project for three months (June to August). Prior to the coding phase, there is a month of community bonding, to welcome students to the Jenkins community and acquaint them with the projects processes for communication and collaboration. Mentors are actively involved with students from March when students start to work on and submit their applications. (see the timeline)

Jenkins GSoC

We are looking for project ideas and mentors to participate in GSoC 2021. GSoC project ideas are coding projects that university or college students can accomplish in about three months. The coding projects can be new features, plugins, test frameworks, infrastructure, etc. Anyone can submit a project idea, but of course we like it even better if you offer to mentor your project idea.

We accept new project ideas at any time, However, project ideas need to be finalised before February 19th, 2021 at 7pm UTC, which is the deadline for the Jenkins organization to apply to the GSoC program. Please send us your project ideas before the beginning of February so they can get a proper review by the GSoC committee and by the community.

How to submit a project idea

Create a pull-request with your idea in a .adoc file in the project ideas. It is not necessary to submit a Google Doc, but it will still work if you want to do that. See the instructions on submitting ideas which include an .adoc template and some examples.

Current list of ideas

We currently have a list of project ideas for students to browse. Note that this list is subject to change.

What does mentoring involve?

Potential mentors are invited to read the information for mentors. Note that being a GSoC mentor does not require expert knowledge of Jenkins. Mentors do not work alone. We make sure that every project has at least two mentors. GSoC org admins will help to find technical advisers, so you can study together with your students.

Mentoring takes about 5 to 8 hours of work per week (more at the start, less at the end). Mentors provide guidance, coaching, and sometimes a bit of cheerleading. They review student proposals, pull-requests and the students presentations at the evaluation phase. They fill in the Google provided evaluation report form at the end of coding periods.

What do you get in exchange?

In return of mentoring, a student works on your project full time for three months. Think about the projects that you’ve always wanted to do but never had the time…​

Mentoring is also an opportunity to improve your management and people skills, while giving back to the community.

There will be a Google Mentor Summit which takes place every year. In 2020, the Mentor Summit was virtual, but in previous years the summit has taken place in person.

See this post about the 2019 in person Mentor Summit.

GSoC is a fantastic program and the Jenkins project is happy to participate in GSoC again in 2021!

For any question, you can find the GSoC Org Admins, mentors and participants on the GSoC SIG Gitter chat.

Jira upgrade for the Jenkins project

$
0
0
jira logo

The Jenkins project has used Jira to track issues for many years. Jenkins core, Jenkins modules, Jenkins infrastructure, and many Jenkins plugins manage their issue reports with our Jira server.

Jira helps the Jenkins project manage issues and tasks related to over 250 000 Jenkins installations. It tracks bugs, enhancement requests, tasks, and security issues. It is used regularly by users around the world.

We’re grateful for the long-standing contribution that Atlassian provides by donating the Jira license to the Jenkins project. We’re grateful to the Oregon State University Open Source Lab for their donation of equipment and bandwidth to host the server.

Upgrade Timeline

We were running Jira 7.13 and had been managing that installation for a few years. Atlassian announced that Jira 7.13 would end its support life on November 28, 2020. We needed to upgrade from Jira 7.13 to a more recent version of Jira. As part of our membership in the Continuous Delivery Foundation, a Linux Foundation initiative, we could use their project services team to manage our Jira server. We decided to move from hosting our own Jira server to having the Jira experts at the Linux Foundation host it.

The upgrade timeline looked like this:

  • November 2019 - Infrastructure team begins discussions about the November 2020 end of support for Jira 7.13

  • August 2020 - First conversations with Linux Foundation to host Jira for the Jenkins project. Draft of the upgrade plan assembled and shared with the community

  • September 2020 - Schedule for testing week and final transition week proposed. Authentication options evaluated and selected

  • October 2020 - Test upgrade performed and tested

  • November 2020 - Final upgrade completed and verified

Confronting the Complications

Initial discussions between the Jenkins infrastructure team and the Linux Foundation identified complications related to authentication and SSL certificates. We planned, negotiated, and tested our assumptions throughout the project.

Authentication

Jira servers at the Linux Foundation typically use Linux Foundation accounts for user access. Unfortunately, the Jenkins LDAP database includes over 100,000 users and for many of them, Linux Foundation username doesn’t correspond to Jenkins account username. It was not feasible to transition 100,000 user accounts from the Jenkins LDAP database to the Linux Foundation accounts system and still complete the Jira upgrade before the November 28, 2020 deadline.

The Linux Foundation Project Services team evaluated authentication alternatives and confirmed that they could use the Jenkins LDAP server. Using the Jenkins LDAP server spared us from two transitions, LDAP and Jira, and kept the project timeline feasible.

SSL Certificates

Jira servers at the Linux Foundation use Let’s Encrypt to generate SSL certificates for HTTPS. The Linux Foundation uses the DNS method to obtain SSL certificates. Unfortunately, the Jenkins project uses the HTTP method to obtain SSL certificates.

Thankfully, Olivier Vernin of the Jenkins project and Anton Baranov of the Linux Foundation found a solution. They created an ACME record in the Jenkins DNS server and pointed the issues.jenkins.io DNS record at the new Linux Foundation Jira server.

Building the Prototype

Anton Baranov created a prototype Jira server, restored an older Jenkins Jira backup, and upgraded it to Jira 8.13. That first restore detected that we had not provided the Jira attachments or the Jira avatars. That attachments and avatars added multiple gigabytes to the initial backup data and were vital to complete the update.

Testing the Upgrade

A group of volunteers including Jenkins users, security team members, and infrastructure team members tested the upgrade during the week of October 26, 2020. The tests confirmed that authentication worked as expected and that the Jira prototype was functioning as expected.

We thank the test team, including:

  • Daniel Beck

  • Tim Jacomb

  • Olivier Vernin

  • Mark Waite

The tests included:

  • Creating and routing issues

  • Commenting on issues

  • Viewing dashboards with the expected content

  • LDAP settings

  • Email notification

The tests detected minor issues that Anton was able to correct in preparation for the final upgrade. The testing team agreed that the tests were successful.

Deploying the Upgrade

Olivier Vernin announced the final upgrade by email to the Jenkins infra list with details of the changes happening during the upgrade. Monday, November 9, 2020, the final backup of the existing Jira server was copied into the new Linux Foundation server.

The final upgrade encountered issues that we had not seen during the initial tests. The "bumps and bruises" from the unexpected issues were resolved by Anton Baranov as he used a multi-step upgrade process. The steps included:

  • Restore the earlier backup to Jira 7.13

  • Restore the most recent backup

  • Upgrade to Jira 8.13

  • Install avatars, attachments, and other images

  • Update DNS entries to point to the new Jenkins Jira server

Lessons from the Upgrade

Lessons were related to timing, estimation, and communication.

Scheduling the Upgrade

The test upgrade started the week of October 19, 2020. It took several days longer than originally expected. Thankfully, we had allowed an extra week between the test upgrade and the production upgrade.

The originally announced schedule for the final upgrade was intentionally placed in a week that would not include a long term support release. That reduced the risk of disruption if the upgrade took longer than required or failed and we had to roll back.

Estimating the Work

Discussions with the Jenkins project Jira administrators and the Linux Foundation Jira experts provided very reasonable estimates of time to complete the work. We intentionally allowed additional time between first test and final upgrade. We needed that additional time and used it well as the testing week.

Communicating the Plan

The distributed nature of the Jenkins project makes communication challenging for major changes. We communicated plans at various stages but still found occasions where the communication was insufficient. In this case, the adage held true that it is, "impossible to communicate too much".

Thanks for your patience during the upgrade and thanks to the Linux Foundation for administering the Jenkins Jira server.

Google Summer of Code 2020 summary

$
0
0

With the mentor summit and the project retrospectives finished in October, now we can call Google Summer of Code 2020 officially over in the Jenkins community. On behalf of the Jenkins org team, we would like to thank all participants: students, mentors, applicants, and dozens of other contributors who participated in the project this year. Google Summer of Code would not be successful without the active participation of the Jenkins community.

Jenkins GSoC

If you follow the Jenkins blog, you may have already seen many GSoC 2020 articles created by the project teams. Here I would like to focus on the key highlights from the project.

Projects

In 2020 we had seven students working in the Jenkins mentoring organization. We had 6 projects focused on Jenkins and one project focused on Jenkins X. As usual, in GSoC we focused on problems important to the Jenkins users and community members. The projects delivered highly anticipated new features and key architecture changes needed for long-term evolution of Jenkins.

Here are the projects we had this year:

Please refer to the project pages for more information, links to the blog posts, and project demos. Let’s focus on the results instead. This is the first ever time in Jenkins when all GSoC students have reached the final evaluation and successfully passed it. It was an incredible effort by all the project members and, most importantly, by the students. Thanks a lot to them!

Events

Thanks to the GSoC organization stipend from Google and other donations, the Jenkins project usually provides travel grants to successful students so that they can visit a major community event, meet their mentors and community members in person, and present their work there. Here are some notes about the GSoC 2019 travel. Unfortunately this year it was not possible, and GSoC went completely virtual this year.

Online meetups

In August we organized Jenkins Online Meetups where students have presented their projects (part 1, part 2). You can find recordings of these presentations in this playlist on the Jenkins YouTube channel.

DevOps World

This year CloudBees, one of the Jenkins corporate sponsors, invited all students to participate in the DevOps World virtual conference on September 23-25. GSoC students did lighting talks about their projects, attended other conference talks, and joined the Continuous Delivery Foundation booth which represented the project at the conference. You can find recordings of the talks and all materials here. Although the conference was in September, the talks were pre-recorded in early August. Please refer to the Jenkins online meetup recordings for the recent versions.

GSoC Mentor summit

This is a regular gathering for Google Summer of Code mentors and org admins where they share their experiences about GSoC, outreach programs, community management, and tools. Usually it is organized as a multi-day unconference after the end of GSoC, with 2-3 representatives from each project. It has been a great learning experience to participate in it. This year it was a single-day virtual event, and all mentors were able to attend.Shivay Lamba, one of the GSoC 2020 mentors, also did a lightning talk about the GSoC projects he was working on in Jenkins and CNCF (slides).

Swag

All Google Summer of Code students and mentors get swag from Google. This year, Contrinuos Delivery Foundation (CDF) has sponsored swag for 50 most active GSoC participants: all students, mentors, and many other contributors who participated and helped the projects to succeed. This is the third year when the Jenkins organization sends extra GSoC swag, In the previous years the swag logistics was one of the most challenging tasks for org admins during the entire project. and we highly appreciate help from CDF with this part. As DevOps World presenters, the students have also received special edition speaker swag from CloudBees.

Retrospective

After completion of the coding phases, org admins have reached out to all GSoC 2020 participants to gather their feedback and suggestions. We also recommended that project teams hold their own retrospective meetings. Such information is instrumental to continuously improving GSoC in the Jenkins community. We thank all contributors who shared their feedback!

The organization-wide retrospective was organized as a survey and a series of retrospective meetings. You can find aggregated results in this Google Doc. Overall, we received very positive feedback from students and mentors. The GSoC framework in Jenkins has matured significantly during the previous years. The effort we invested to create guidelines and recommendations for all parties helped a lot because all the expectations were known in advance. As usual, there is much to improve, especially with regards to the community bonding phases and cross-project communications. We are processing the feedback, and we will expand our documentation and the contributor onboarding plans next year.

Some personal notes

I have been involved in leading and coordinating Google Summer of Code in open source projects since 2016. This year I visited the GSoC stand at FOSDEM and met a few organizers and former students. A few days after, I proposed participating in GSoC at the Jenkins contributor summit in Brussels, and several contributors supported this idea. We spent several hours to create the first Jenkins GSoC page and brainstorm on project ideas. We submitted our application and were accepted. Thanks a lot to the Google team that gave us a chance!

It is great to work with the students and see how they explore the open source community and grow professionally as engineers. It is also awesome to see how some of them stay in the project and keep contributing, including becoming plugin maintainers and GSoC mentors. But, for me, Google Summer of Code is not just about mentoring. It also helps a lot with the community bonding…​ for the existing community like Jenkins which has a lot of isolated sub-communities in plugins. Many maintainers work alone, and it can be quite lonely working to maintain a plugin without feedback, developer ideas, and user interactions. When plugin contributors become project mentors, they join the wider community effort and work in teams. In many cases they start contributing to the organization-wide activities and goals, and it grows the "backbone" of the Jenkins community. Like other community-driven projects, we need such backbone to scale the community and onboard more contributors to the countless Jenkins components. So far it works really well and GSoC excels among outreach programs in this regard.

I would like to thank the Google Open Source team, students and all Jenkins community members for the great Google Summer of Code this year. We also thank the Continuous Delivery Foundation for their help to recognize contributors and allow organization administrators to focus on projects. Last but not least, I would like to thank the Jenkins org admin team:Martin d’Anjou,Marky Jackson, andKara de la Marck. This was a crazy year for everyone. Regardless of that, the org admins stepped up and took responsibility for students and mentors involved in the project, with a serious time commitment. Not all work by the organizers is publicly visible (applications, project selection, resolving conflicts), but this work is essential to the project’s success. Thanks a lot to org admins and mentors who helped with the administrative tasks this year!

What’s about GSoC 2021?

Yes, we plan to participate in Google Summer of Code 2021. The application period for organizations will start in a few months, but we have already started preparing for the next GSoC session. We are looking for mentors, org admins and project ideas. Please contact us if you are interested!

We invite potential students to start exploring the project and the available project ideas. Original ideas are always welcome in the project, and starting early is a great opportunity to get introduced to the Jenkins community, collect more information about the problem areas, and to create a good proposal. "Start early" is the most popular recommendation from GSoC 2020 participants to future GSoC students, and we encourage you to follow this advice!

2020 A Year Like No Other

$
0
0

The Jenkins community congratulates all users and contributors with the New Year! Let’s take a look at some changes this year. We would like to thank all awesome Jenkins users and contributors who have been with us during this year.

NewYear

Highlights

Some of the key highlights:

  • Hundreds of first-timer contributors joined the community

  • Major UI/UX improvements in the Jenkins core, including the landing page, plugin manager, dark theme, and read-only configurations support

  • Outreach programs like Google Summer of Code (7 projects), Google Season of Docs, UI/UX hackfest, etc.

  • Public roadmap for the project

  • Terminology changes in the project, new Code of Conduct

  • Technical debt cleanup: XStream unforking, Acegi Security replacement, etc.

  • Continued evolution of the plugin ecosystem, especially in the area of Cloud Native solutions and tool integrations

  • Continued documentation cleanup, great progress with plugin documentation migration

  • Graduation in the Continuous Delivery Foundation

Jenkins User Interface and User Experience

This year there were many activities around Jenkins user experience and long-anticipated user interface changes. This is a coordinated effort being led by the User Experience SIG, and by many contributors to the project. Key project highlights:

  • Look & Feel updates of the Jenkins Web UI, including styling rework, new typography and layouts

  • Major rework of plugin management UI/UX

  • Dark theme for Jenkins

  • Accessibility improvements

  • Support for read-only configuration pages

In May we also organized a Jenkins UI/UX hackfest where we worked on some key stories improving user experience.

Jenkins security

In 2020 the Jenkins security team has released 19 advisories for the Jenkins core, plugins and other components. In total 198 vulnerabilities were fixed, and 72 plugin vulnerabilities were announced without a fix at the time of advisory publishing. As a project, we are receiving a continuous flow of new reports and continue to provide corrections. Cross-site scripting (XSS) vulnerabilities were the most popular type this year, followed by unprotected credentials.

There have also been developer tooling improvements, including GitHub CodeQL evaluation for targeted security issues search and Find-Sec-Bugs adoption for static analysis of the plugin and Jenkins core code. Along with wider adoption of Dependabot and automated dependency scanning on GitHub.

Documentation

Jenkins Documentation SIG is working on creating more documentation for Jenkins on different platforms, including cloud platforms. Jenkins on Kubernetes was one of the key stories this year for the SIG, along with documentation migration to jenkins.io and wider adoption of Documentation-as-code in plugins. 95% of the 200 most installed Jenkins plugins have moved to "documentation as code" or have a pending pull request with updates. In total, almost 600 plugins have already been migrated. There were major updates in Jenkins documentation on jenkins.io, with a lot of content being moved from the old Jenkins Wiki.

2020 was the first year when Jenkins participated in Google Season of Docs (GSoD). This program brings together open-source and technical writers communities for the benefit of both. This year’s student, Zainab Abubakar, did an amazing job documenting Jenkins on Kubernetes. Now Jenkins users can find official documentation about deploying and scaling Jenkins in Kubernetes. See the project report by Zainab here.

Jenkins Release Automation

The Jenkins project has delivered weekly and long term support releases since it was formed in 2011. Those releases were delivered by Kohsuke Kawaguchi from his release infrastructure.

Beginning in April 2020, those releases are delivered by the new release automation setup. It is hosted within the Jenkins’ Kubernetes cluster, with fully automated management and continuous delivery of services within the setup. We transitioned to new build processes, new code signing certificates, and new release automation jobs. Thanks to Olivier Vernin and all Infrastructure sub-project contributors for the successful completion of the release automation project!

Moreover, there is ongoing work on continuous delivery of Jenkins plugins (JEP-229) and on re-designing other Jenkins instances within the project (infra-ci, trusted-ci, and ci.jenkins.io for plugins). In the next few months these stories should provide Jenkins contributors with a modern environment for CI and CD of all Jenkins components.

Terminology updates

Since July, we have officially replaced the old "master" terminology with the "controller" term. It is a follow-up to the "agent" terminology introduced in 2016. We have also deprecated usages of the “blacklist/whitelist” terminology in all components. Currently the community is working on the cleanup of the remaining occurrences in the codebase and documentation, and we invite everyone to contribute.

As a part of the terminology cleanup, last spring we announced the renaming of the official Docker images for Jenkins agents. As a reminder, it does not have any immediate impact on Jenkins users, but they are expected to gradually upgrade their instances.

See more information about terminology updates here and here.

“Jenkins is the Way” program

This year the Advocacy and Outreach SIG started the “Jenkins is the Way” initiative which focuses on promoting user success stories. Over the year, the team published 54 user stories and six case studies on https://jenkinsistheway.io/ as well as a significant amount of community marketing. We also published a number of testimonial videos advertising user stories, including this Introduction to "Jenkins is the Way" video.

See all the stories HERE

Events

Google Summer of Code

In 2020 we had seven students working in the Jenkins mentoring organization. We had 6 projects focused on Jenkins and one project focused on Jenkins X. As usual, in GSoC we focused on problems important to the Jenkins users and community members. The projects delivered highly anticipated new features and key architecture changes needed for the long-term evolution of Jenkins.

This is the first-ever time in Jenkins when all GSoC students have reached the final evaluation and successfully passed it. It was an incredible effort by all the project members and, most importantly, by the students. Thanks a lot to them!

Jenkins in Hacktoberfest 2020

In October we participated in Hacktoberfest. Our featured projects included the Jenkins core, jenkins.io website and plugins.jenkins.io, Helm charts, and multiple plugins. We also encouraged contributors to participate in the Documentation as Code and terminology cleanup across the entire Jenkins ecosystem.

See the details in the Hacktoberfest page.

In total we received 226 pull requests from Hacktoberfest participants. Some stats per Jenkins GitHub organization:

  • 'jenkinsci', PRs: 189, Hacktoberfest contributors: 61

  • 'jenkins-infra', PRs: 100, Hacktoberfest contributors: 40

  • 'jenkins-zh', PRs: 37, Hacktoberfest contributors: 2

Jenkins at DevOps World

The annual DevOps World, formerly known as DevOps World | Jenkins World held on Sept 22-24, with workshops on Sept 25. Just like other events in 2020, DevOps World pivoted to a virtual event but that didn’t mean there was a shortage of sessions or networking opportunities. There were over 50 Jenkins/open-source. And a special congratulations is in order to this year’s Jenkins Contributor Award winners:

  • James Holderness - Jenkins security MVP

  • Marky Jackson - Most valuable Jenkins advocate

  • Tim Jacomb - Most valuable Jenkins contributor

Below are just a few sessions, the full agenda can be found HERE:

Graduation at Continuous Delivery Foundation

Jenkins is the first project to graduate in the CD Foundation. In August the project announced that the Jenkins project has achieved the graduated status in the Continuous Delivery Foundation (CDF). Thanks to all contributors who made our graduation possible! Below you can find a few key changes we have applied during the graduation process:

  • We introduced a new public roadmap for the Jenkins project. This roadmap aggregates key initiatives in all community areas: features, infrastructure, documentation, community, etc. It makes the project more transparent to all Jenkins users and adopters, and at the same time helps potential contributors find the hot areas and opportunities for contribution. The roadmap is driven by the Jenkins community and it has a fully public process documented in JEP-14.

  • A new list of Jenkins adopters was introduced on jenkins.io. This list highlights Jenkins users and references their case studies and success stories, including ones submitted through the Jenkins Is The Way portal. Please do not hesitate to add your company there!

  • We passed the Core Infrastructure Initiative (CII) certification. This certification helps us to verify compliance with open source best practices and to make adjustments in the project (see the bullets below). It also provides Jenkins users and adopters with a public summary about compliance with each best practice. Details are on the Jenkins core page.

  • Jenkins Code of Conduct was updated to the new version of Contributor Covenant. In particular, it sets best practices of behavior in the community, and expands definitions of unacceptable behavior.

More information can be found HERE, and HERE.

Public Roadmap

The Jenkins project now has a public, community-driven project roadmap. Roadmap items are major initiatives and are considered as official plans. The roadmap aggregates key initiatives in all areas of the project.

Many of the 2020 released roadmap items are mentioned elsewhere in this document, including release automation, Core Infrastructure Initiative (CII) certification, user interface improvements, read-only configuration pages, and Google Summer of Code projects like the GitHub Checks API or External Fingerprint Storage.

Other roadmap items include mirror infrastructure improvements, a new Windows installer, and preview releases of pluggable storage for external fingerprints, build logs, and unit test results.

Jenkins 2020 Elections

In October-December the Jenkins community held the regular elections. This year we were electing for 2 governance board members and for all five officer positions, namely: Security, Events, Release, Infrastructure, and Documentation. These roles are an essential part of Jenkins' community governance and well-being. We thank all candidates and voters who participated this year.

Key results:

And even more

This blog post does not provide a full overview of what changed in the project, it is just a slice of the key highlights mentioned by the contributors. The Jenkins project consists of more than 2000 plugins and components which are developed by thousands of contributors. Thanks to them, a lot of changes happen in the project every day. We are cordially grateful to everybody who participates in the project, regardless of contribution size. Everything matters: new features, bug fixes, documentation, blog posts, well reported issues, Stackoverflow responses, etc. THANKS A LOT TO ALL CONTRIBUTORS!

So, keep updating Jenkins and exploring new features. And stay tuned, there is much more to come next year!

What’s next?

Technical changes. 2021 will be another busy year for the Jenkins community. There are many long-overdue changes in the project, which need to happen if we want Jenkins to succeed. There are many areas on the roadmap: UX revamp, cloud native Jenkins, pluggable storage, etc. There will also be a continued cleanup of old dependencies and technical debt. Several key changes are expected to land in the March LTS baseline: update to Spring Security, XStream unforking, JQuery update, etc.(announcement). In addition to that, we will keep working on expanding platform support in Jenkins, including provisioning support for new Java versions and official images for more architectures like Arm.

Documentation. Documentation efforts will continue in the next year, with a focus on documenting Jenkins usage on modern platforms and and automation use-cases. Wide adoption of documentation-as-code will also continue for plugins By this time almost 600 plugins have been migrated, but there are hundreds more plugins to go.

Security. Another important area is Jenkins security. Automation tools like Jenkins are a key part of the software delivery process in organizations, and their security is essential for the security of products. Misconfigured or outdated systems are a common attack vector, but there are also areas for improvement on the project’s side. Be sure there will be security advisories and vulnerability fixes in 2021. We plan to keep adopting best security development and software delivery practices, and to improve dependency management and developer tools in the project. These areas will be in the spotlight for the project next year.

Events. Next month we will participate in FOSDEM, and there will be a virtual Jenkins stand there. There will also be a CI/CD devroom. If you are interested to meet Jenkins contributors, it is a great opportunity. We also plan to continue all outreach programs and on onboarding more contributors. At the moment we are looking for Google Summer of Code 2020 mentors and project ideas (announcement). We are also ready to consider other non-coding project ideas as a part of CommunityBridge. If you are interested, please contact the Advocacy and Outreach SIG.

Join us in 2021!

We are always looking for more contributors, regardless of the profile and experience. Jenkins is a vast ecosystem which includes many modern technologies.

We invite Jenkins users and contributors to participate in the community and to move these initiatives forward! Join us in the mailing lists and special interest groups,

New eBook: Build, deploy, and automate great stuff with Jenkins

$
0
0

Jenkins Is The Way

In April of last year, we launched a new Jenkins community website called JenkinsIsTheWay. The Jenkins Is The Way site has collected the experiences of Jenkins users around the world as they develop software and create solutions. They are charting new paths, discovering new opportunities, and overcoming challenges.

That’s what makes Jenkins Is The Way tick. Engineers in the Netherlands might have already met challenges faced by developers in India. Solutions uncovered by DevOps teams in Spain may benefit those just starting in the USA. Interns in Bogota may develop pipeline solutions that can be integrated into workflows used across the globe in Tokyo. Or vice versa!

No matter where you are, regardless of whether your solution is regional or global in nature, Jenkins Is The Way.

Telling your stories in a new eBook

To date, we have nearly 60 user stories, a handful of case studies, and some new user testimonial videos from the Jenkins community. You shared how using Jenkins has helped make your builds faster, your pipelines more secure, and your developers and software engineers happier. In essence, Jenkins Is The Way showcases how Jenkins has made it a whole lot easier to do the work you do every day.

We’ve now gathered some of those stories in our first Jenkins Is The Way ebook, covering various challenges and solutions from six different industries: Aerospace, Education, Finance, Insurance, Retail, and Travel.

ebook cover

You’ll read about innovations from KP Labs in Poland and Preply in Ukraine. You’ll discover how automation helped Avoris out of Spain & Portugal and Tymit in the United Kingdom. And you’ll be inspired by what China’s JD.com and Topdanmark in Denmark were able to achieve after tapping into the Jenkins community.

This curated collection of stories illustrates how Jenkins community members build next-generation DevOps and CI/CD platforms as the backbone for software innovation across companies of all sizes. They highlight the innovation, ingenuity, and keen ability to adapt Jenkins plugins to handle everyday business issues, everywhere.

The technology landscape is full of solutions perfected to tackle all aspects of software development. But time and time again, developers keep coming back to Jenkins. Your engineering time and resources are too valuable to be spent re-inventing the wheel or handling manual testing and deployment cycles.

Jenkins' vast array of plugins and pre-built solutions will have you automating more than you ever imagined. So, get inspired to build great stuff with Jenkins. And, please share this ebook with your network.

Share your story!

And when you’re ready to tell your story, we’re prepared to help you share it. Fill out the short questionnaire, and we’ll send you our Jenkins Is The Way T-shirt as a thank you!

Special thanks to CloudBees, Inc. for sponsoring this program.

Docker image updates

$
0
0

Beginning with Jenkins 2.279 and Jenkins 2.263.4, the Jenkins project is upgrading the base operating system and Java version used in the jenkins/jenkins:latest and jenkins/jenkins:lts images. The update replaces OpenJDK 8u242 with AdoptOpenJDK 8u282 and replaces Debian 9 ("Stretch") with Debian 10 ("Buster").

Jenkins and Docker

Why?

We’re changing the base image so that we have a better supported operating system and a more current Java release for Jenkins controllers.

Better supported operating system

The Docker images provided by the Jenkins project rely on the operating system security processes of the operating system provider.

Our Docker images have used Debian 9 ("Stretch") for multiple years. Debian 9 security updates have been discontinued as of July 6, 2020. Debian 9 Long Term Support security updates will be discontinued at the end of June 2022. The upgrade to Debian 10 keeps us on an operating system maintained by the operating system security team.

More current Java release

The Debian 9 Docker images were based on the openjdk:8-jdk-stretch Docker image. The last update to that image was one year ago with the release of JDK 8u242. We need a maintained Docker base image that keeps pace with JDK releases and operating system updates so that the controller is running the most recent Java updates and most recent operating system updates.

Other Jenkins controller images have already switched from using openjdk base images to instead use base images provided by Eclipse Adoptium.Eclipse Adoptium is the Eclipse project formed when AdoptOpenJDK joined the Eclipse Foundation. This change adapts the jenkins/jenkins:latest and jenkins/jenkins:lts images to use the Adoptium JDK images in the same pattern as is already used for the Jenkins JDK 11 Docker images like jenkins/jenkins:lts-jdk11. The Jenkins Platform SIG has enjoyed very good results in our interactions with the Eclipse Adoptium project. We look forward to continuing our collaboration with them.

Thanks a lot to Alex Earl and Jim Crowley for the image build restructuring groundwork that made the image upgrade possible! Also thanks to Oleg Nenashev and other contributors for their reviews and testing.

Packaging changes

The Jenkins Docker image based on Debian 10 ("Buster") includes some different packages than Debian 9 ("Stretch"). Some packages have been removed because they are no longer supported by their communities. Some packages have been removed due to infrequent and decreasing use. Users of the Jenkins Docker images may need to extend their definition of their Docker image to include packages that are no longer included in the base image.

SCM packages removed

The following source control management packages are no longer included in the Jenkins controller images for jenkins/jenkins:latest or for jenkins/jenkins:lts:

  • bzr

  • mercurial

  • subversion

Other packages removed

Additional packages that are no longer included in the Jenkins controller images include:

  • bzip2

  • mime-support

  • python (the Python project stopped supporting Python 2 January 1, 2020)

  • xz-utils

A detailed list of the exact package changes is available in the pull request.

Upgrade and compatibility notes

The Jenkins controller images are designed to be extended to meet user needs. Custom Jenkins controller images can be created from the base images and are designed to allow additional Jenkins plugins and additional operating system packages.

For example, the Installing Docker instructions illustrate a technique to install the Blue Ocean plugins and some operating system packages in a custom Docker image.

Docker image with Subversion

The following Docker image definition installs the most recent Jenkins Long Term Support release with the subversion plugin and the operating system subversion command:

FROM jenkins/jenkins:lts
USER root
RUN apt-get update && \
    apt-get install -y --no-install-recommends subversion
USER jenkins
RUN jenkins-plugin-cli --plugins subversion:2.14.0

Build a new docker image from this Dockerfile and assign the image a meaningful name, e.g. "myjenkins-subversion:1.1":

docker build -t myjenkins-subversion:1.1 .

Docker image with Mercurial

The following Docker image definition installs the most recent Jenkins Weekly release with the mercurial plugin and the operating system hg command:

FROM jenkins/jenkins:latest
USER root
RUN apt-get update && \
    apt-get install -y --no-install-recommends mercurial
USER jenkins
RUN jenkins-plugin-cli --plugins mercurial:2.12

Build a new docker image from this Dockerfile and assign the image a meaningful name, e.g. "myjenkins-mercurial:1.1":

docker build -t myjenkins-mercurial:1.1 .

What’s next?

We will continue Docker image updates as new Java versions are released.

If you are interested in new features in Jenkins Docker packaging, stay tuned for future announcements! There are multiple ongoing initiatives which you can find on the public Jenkins roadmap. Some stories:

  • Switching to AdoptOpenJDK.

  • General availability of Windows images.

  • Support for more platforms (AArch64, IBM s390x, PowerPC).

  • Introducing multi-platform Docker images.

If you are interested in any of these projects and would like to contribute, please reach out to the Platform Special Interest Group which coordinates initiatives related to Jenkins in Docker.


Jenkins Contributor Summit Online Feb 23-25

$
0
0

The Jenkins Contributor Summit brings together current and future contributors to the Jenkins project. We’re hosting an online summit this year to encourage contributors from around the world to meet, discuss, and plan for the future.

The Contributor Summit will be Tuesday, February 23rd 2021 through Thursday, February 25, 2021. The summit brings together community members to learn, meet, and help shape the future of Jenkins. In the Jenkins commmunity we value all types and sizes of contributions and love to welcome new participants.

register button

Format

The online format allows greater flexibility for meeting times and topics. Contributors will meet to discuss specific topics in smaller groups at times that are convenient for those in the meeting.

Opening session

The opening session will start Tuesday, February 23, 2021 at 15:00 UTC. After an initial welcome and overview, we’ll hear from leaders in the Jenkins project as they share the results from the previous 12 months and outline ideas for the next 12 months.

2021 02 16 contributor summit
  • Security - Daniel Beck

  • Infrastructure - Olivier Vernin

  • Release - Tim Jacomb

  • User experience - Félix Queiruga

  • Chinese localization - 赵晓杰(Rick)

  • Configuration as code - Tim Jacomb

  • Google Summer of Code - Kara de la Marck

  • Documentation - Mark Waite

  • Events and Advocacy - Alyssa Tong

  • Cloud Native - Kara de la Marck

  • Platforms - Mark Waite

After those presentations, we’ll create "breakout rooms" in the online meeting that will allow those interested in specific tracks to meet, identify preferred times for their tracks, and prepare draft agendas for their tracks.

Tracks

Smaller sessions ("tracks") will be run in the 48 hour period between the opening session and the closing session. These smaller sessions will be focused on specific topics. A track leader will organize the track meeting, facilitate discussions in the track meeting, and present a summary of the track results in the closing session.

Closing session

The opening session will start Thursday, February 25, 2021 at 15:00 UTC. After an initial welcome and overview, we’ll hear from track leaders as they share the results from their track meetings.

We’ll identify items that should be added to the Jenkins roadmap, items that should be further investigated by special interest groups, and items that need further discussion elsewhere.

cdCon 2021 - Call for Jenkins Proposals

$
0
0

Hear ye! Hear ye! Jenkins Community,

cdCon 2021 (the Continuous Delivery Foundation’s annual flagship event) is happening June 23-24 and its call for papers is open!

This is your chance to share what you’ve been doing with Jenkins. Are you building something cool? Using it to solve real-world problems? Are you making things fast? Secure? Or maybe you’re a contributor and want to share what’s new. In all cases, we want to hear from you!

Submit your talk for cdCon 2021 to be part of the conversation driving the future of software delivery for technology teams, enterprise leadership, and open-source communities.

Submission Deadlines

Early-Bird Deadline

Friday, February 19 by 11:59 PM PST

Final Deadline

Friday, March 5 at 11:59 PM PST

Topics

Here are the suggested tracks:

Continuous Delivery Ecosystem

This track spans the entire Continuous Delivery ecosystem, from workflow orchestration, configuration management, testing, security, release automation, deployment strategies, developer experience, and more.

Advanced Delivery Techniques

For talks on the very cutting edge of continuous delivery and emerging technology, for example, progressive delivery, observability, and MLOps.

GitOps & Cloud-Native CD

Submit to this track for talks related to continuous delivery involving containers, Kubernetes, and cloud*native technologies. This includes GitOps, cloud-native CD pipelines, chatops, best practices, etc.

Continuous Delivery in Action

This track is for showcasing real-world continuous delivery addressing challenges in specific domains e.g. fintech, embedded, healthcare, retail, etc. Talks may cover topics such as governance, compliance, security, etc.

Leadership Track

Talks for leaders and decision-makers on topics such as measuring DevOps, build vs buy, scaling, culture, security, FinOps, and developer productivity.

Community Track

There is more to open source than code contributions. This track covers topics such as growing open source project communities, diversity & inclusion, measuring community health, project roadmaps, and any other topic around sustaining open source and open source communities.

Singular project focus and/or interoperability between:

  • Jenkins

  • Jenkins X

  • Ortelius

  • Spinnaker

  • Screwdriver

  • Tekton

  • Other – e.g. Keptn, Flagger, Argo, Flux

View all tracks and read CFP details.

We look forward to reading your proposal!

cdcon2021jenkinscfp

Update-Center certificate rotation

$
0
0

Jenkins update center certificate rotation

On the 29th of March 2021, we’ll rotate the Jenkins update center certificate. The existing certificate expires in April 2021. When the new certificate is installed on March 29, 2021, Jenkins versions older than 2.178 (April 2018), won’t be able to communicate with the default and experimental update centers. Instances using alternative update centers (self-hosted or vendor-provided) will not be affected by this change. Regarding plugins update, the update-center usually supports up to one-year-old Jenkins core versions with 2.204 being the oldest version supported.

If you don’t update regularly, please review the Jenkins security advisories and use this change as your motivation to update to a more recent Jenkins version.

Who

Jenkins users running Jenkins versions older than 2.178 will not see any further updates after the update center certificate change March 29, 2021.

Jenkins developers will not see plugin updates when they use mvn hpi:run to test their plugin if the Jenkins version is older than 2.178. Plugin developers can update their minimum Jenkins version to a newer Jenkins version. Refer to the guidelines in "Choosing a Jenkins version" when selecting the new minimum Jenkins version. Plugin developers may also be able to test with a newer Jenkins version using arguments like mvn -Djenkins.version=2.249.1 hpi:run.

Jenkins users running versions 2.178 or newer are not affected by this change.

What

Jenkins uses the update center to identify updates to core and to plugins. The service signs its metadata with a certificate that is cross-signed by a root certificate. Jenkins is bundled with the root certificate so it can confirm the authenticity of update center data. When updates are available, an alert is shown to Jenkins users that reminds them to update.

Why

The root certificate bundled in Jenkins was created in April 2011 and will expire in April 2021. We prepared for this rotation in April 2018 when we bundled the new root certificate with Jenkins core releases. It’s now time to use the new root certificate with a new update center certificate. The new root certificate will expire in April 2028.

You can follow the work for this certificate rotation in this ticket INFRA-2902

So again, keep your instance updated and everything should be fine.

See you in 2028,

Various Links:

Jenkins accepted in Google Summer Of Code 2021!

$
0
0

Jenkins GSoC

On behalf of the Jenkins GSoC org team, I am happy to announce that this year, for the first time, the Jenkins projects will be participating inGoogle Summer of Code 2021 as part of theContinuous Delivery Foundation (CDF) GSoC organization.

We’re very excited to have the Jenkins project participate in GSoC as part the CDF mentoring organisation along with fellow CDF projects such as Ortelius, Screwdriver, Spinnaker, and Tekton. We believe that being part of the CDF GSoC org will create an environment for students with even more mentoring channels, potential cross-fertilization of ideas, and an even greater community of DevOps practitioners to join!

CDF GSoC

What’s next? GSoC is officially announced, and please expect more students to contact projects in ourGitter channels and mailing lists. Many communications will also happen in SIG and sub-project channels. Also, please join the gsoc channel on the CDF Slack. We will be working hard in order to help students to find interesting projects, to explore the area, and to prepare their project proposals before the deadline on April 13th. Then we will process the applications, select projects and assign mentor teams.

All information about the Jenkins GSoC is available on its sub-project page.

I am a student. How do I apply?

See the Information for students page for full application guidelines.

We encourage interested students to reach out to the Jenkins community early and to start exploring project ideas. All project ideas have chats and mailing lists referenced on their pages. We will be also organizing office hours for students, and you can use these meetings to meet org admins and mentors and to ask questions. Also, join our Gitter channel and themailing list to receive information about such incoming events in the project.

The application period starts on March 29th, but you can prepare now! Use the time before the application period to discuss and improve your project proposals. We also recommend that you become familiar with Jenkins and start exploring your proposal areas. Project ideas include quick-start guidelines and reference newbie-friendly issues which may help with initial study. If you do not see anything interesting, you can propose your own project idea or check out ideas proposed by other CDF organizations participating in GSoC.

I want to be a mentor. Is it too late?

It’s not! We are looking for more project ideas and for Jenkins contributors/users who are passionate about Jenkins and want to mentor students. No hardcore experience required, mentors can study the project internals together with students and technical advisors. We are especially interested in ideas beyond the Java stack, and in ideas focusing new technologies and areas (e.g. Kubernetes, IoT, Python, Go, whatever).

You can either propose a new project idea or join an existing one. See the Call for Mentors post and Information for mentors for details. If you want to propose a new project, please do so as soon as possible so that students have time to explore them and to prepare their proposals.

This year mentorship does NOT require strong expertise in Jenkins development. The objective is to guide students and to get involved into the Jenkins community. GSoC org admins will help to find advisers if special expertise is required.

Testimonials from former Jenkins GSoC participants ❤️

"I participated in Google Summer of Code 2020 in cooperation with the Jenkins organization and I work on a project called Windows Service Wrapper, which allows running Jenkins as a service on a Windows machine. GSoC was the most wonderful and the most valuable experience I gained during my student life. The whole journey was full of experiences and Jenkins mentors always were there for us. I experienced a huge development of my skills while I was working on the project. I had many meetings, knowledge sharing sessions, and one pair-coding session with my mentors. One of the best things that I learned is the open-source community and open source mentality. It is not only about taking, but also about giving. Today I am maintaining an open-source project which is a simple programming language for kids which allows them to code in their native language, which will help to learn coding to students in rural areas of my country. Finally, Jenkins is a wonderful family and they always were there for us in all the ups and downs. I am proud to be a part of the Jenkins community."

  • Buddhika Chathuranga, GSoC 2020 student, Support for YAML Configuration in Windows Service Wrapper

"My GSoC journey in the Jenkins community starts by a draft proposal full of comments from mentors and ends by two plugins with hundreds of installations. Along with the daily coding review, the weekly meeting and the growth of the project, I increased my skills on programming and became a much more eligible engineer. What is more, the support from the whole Jenkins community leads me to a broader career path. I learned how to maintain a project, how to communicate with users and other developers on GitHub. Most importantly, the Jenkins community teaches me the principles of the open source world and welcomes me to the open source world with all their kind help."

  • Kezhi Xiong, GSoC 2020 students, GitHub Checks API project

"I worked as a Google Summer of Code student with the Jenkins project during the summer of 2019. The project provided me with an excellent opportunity to contribute to the world’s most popular automation server, learn about building performant and reliable applications, and interact with awesome people around the globe. Jenkins' ever helpful and extremely knowledgeable community made working on my project a real treat. I even got a chance to present my project at DevOps World in Lisbon! If you’re deciding which organization to work for this year, choose the Jenkins project — you can’t have a better GSoC experience than this!"

  • Abhyudaya Sharma, GSoC 2019 student, Role Strategy Performance Improvements

"I participated in Google Summer of Code 2018 with Jenkins as a student developer. Working for Jenkins in GSoC 2018 was one of the best experiences I have ever had. During 3 months of summer, I learned a lot of new things when working on the open-source project with Jenkins. Another best thing about Jenkins is the people, I received a lot of support from my mentors and other developers from the Jenkins community when working on my project. After GSoC, I also had a chance to go to the Jenkins World Conference in San Francisco to meet and connect with my mentors and other people in the Jenkins community. Overall, GSoC with Jenkins was a great experience and I highly recommend Jenkins as a great community to kickstart your open source journey."

  • Pham Vu Tuan, GSoC 2018 student, Remoting over Apache Kafka project

Important dates for GSoC 2021

  • Apr 13 - deadline for student applications

  • May 17 - accepted projects announced, teams start community bonding and coding

  • Aug 16 - coding period ends

  • Aug 31 - Results announced

See the GSoC Timeline for more info.

Jenkins accepted in SheCodeAfrica Contributhon

$
0
0

SheCodeAfrica logo

SheCodeAfrica is a non-profit organization focused on celebrating and empowering young girls and women in technology across Africa. They provide resources and events that help women grow and achieve their personal and career goals. Their mentoring programs provide help and guidance as participants learn and grow in their careers.

This year, SheCodeAfrica is organizing the SheCodeAfrica Contributhon. Contributhon is a boot camp where African women are paid to work with open source organizations on selected projects with dedicated mentors. This program aims to create a more diverse, inclusive, and innovative culture within the African open source ecosystem by matching African women in technology with sponsor and mentor open source organizations.

Jenkins in SheCodeAfrica Contributhon

Jenkins

The Jenkins project has been accepted as a Contributhon mentoring organization. Our project idea will introduce participants to Jenkins and plugin development as they create Pipeline examples and create Pipeline help for Jenkins Pipeline plugins. Participants will learn more about Jenkins Pipeline and will submit plugin pull requests with examples and online help.

The Jenkins Pipeline Steps Reference and Pipeline online help often receive feedback that more examples are needed, that step return values need to be described, and that arguments need more description of their purpose, allowed values, and expected results. Most plugin maintainers do not provide detailed documentation of the pipeline steps, or the arguments to those pipeline steps. This project will improve the documentation of pipeline steps and their arguments while introducing Jenkins Pipeline, Jenkins plugin development, Jenkins documentation as code, and the concepts of GitHub forks and pull requests.

We’ve identified development tasks that up to three Contributhon participants will complete during April. The tasks will introduce the participants to Jenkins plugin development. They will experiment with plugin changes in Jenkins and submit pull requests to provide Pipeline examples and help. They will meet twice a week with Jenkins mentors, Kristin Whetstone, Mark Waite, and Meg McRoberts to review their progress, provide coaching, and help with issues.

Data driven choices

We’ve been collecting Jenkins documentation feedback since 2017. Now we’re using that feedback to prioritize the plugins to improve as part of this project. The top 10 Pipeline plugins that have received the most feedback are:

What about my plugin?

If you are a plugin maintainer and would like help to add examples and online help for the Pipeline steps in your plugin, send email to the Jenkins Documentation mailing list. We’ll consider including additional plugins as we better understand the development pace for SheCodeAfrica participants.

Viewing all 1088 articles
Browse latest View live