Jenkins Sub-projects

At the heart of the Jenkins project exists the automation engine’s core and hundreds of plugins. There are however other collaborative initiatives going on under the umbrella of the Jenkins project which grow or expand the project in new ways.

Blue Ocean

Blue Ocean

Blue Ocean is a project that rethinks the user experience of Jenkins, modelling and presenting the process of software delivery by surfacing information that’s important to development teams with as few clicks as possible, while still staying true to the extensibility that Jenkins always has had as a core value.

Blue Ocean also incorporates "The Jenkins Design Language (JDL)" which is a standardized set of components and a style guide that help developers create plugins which effortlessly retain the look and feel of the Blue Ocean user experience.


Google Summer of Code

Summer of Code

The Google Summer of Code (GSoC) project is an annual, international, program which encourages college-aged students to participate with open source projects during the summer break between classes. Students accepted into the program receive a stipend, paid by Google, to work well-defined projects to improve or enhance the Jenkins project. In exchange, numerous Jenkins community members volunteer as "mentors" for students to help integrate them into the open source community and succeed in completing their summer projects.

The Jenkins project participated in the Google Summer of Code 2018 with two student projects.


Infrastructure

"Infrastructure'

As an independent open source project, Jenkins maintains most of its own infrastructure including services which help keep the project running. The kinds of things that fall into "infrastructure" can span from operating virtual machines and distribution networks, to project-specific applications developed to make the development of Jenkins core and plugins more efficient.

There are various sub-groups and opportunities to contribute to the Jenkins project’s infrastructure.


Jenkins Area Meetups

Social Jenkins events

Jenkins Area Meetups (JAMs) are local meetups intended to bring Jenkins users and contributors together for socializing and learning. JAMs are organized by local Jenkins community members who have a passion for sharing new Jenkins concepts, patterns and tools. JAMs can be found around the world, and if there isn’t a JAM in your city, you could be the one to start it!

Jenkins Area Meetups are driven by local organizers but receive support from the Jenkins project via swag (stickers, etc), promotion, and help bootstrapping and operating the meetup group.


Jenkins Remoting

"Infrastructure'

Jenkins Remoting is a library, and executable Java archive, which implements the communication layer in Jenkins. This includes the TCP-based communication protocols, remote procedure calls, class loading, data streaming, etc. Currently Remoting is primarily used in master/agent communications, but is also used for the Remoting-based CLI and the Maven Integration plugin.

The Remoting sub-project includes the Remoting library itself, package for agents, and a number of Remoting-specific plugins and core modules.


Jenkins X

Jenkins X

Jenkins X is a CI/CD solution for modern cloud applications on Kubernetes. Jenkins X started as a Jenkins sub-project, JEP-400, and is now an independent project within the Continuous Delivery Foundation (CDF).

Jenkins X automates the creation and management of pipelines, deployments, preview apps, and provides a best practice opinionated way to do applications and promotions on Kubernetes.

Jenkins X brings along a selection of excellent pre-integrated open source tools around Jenkins. To use Jenkins X you don’t need to install Jenkins separately.


Jenkins Configuration as Code

Jenkins Configuration as Code

Setting up Jenkins is a complex process, as both Jenkins and its plugins require some tuning and configuration, with dozens of parameters to set within the web UI manage section.

Jenkins Configuration as Code allows to define this whole configuration as a simple, human-friendly, plain text yaml syntax. Without any manual step this configuration can be validated and applied to a Jenkins master in fully a reproducible way. With JCasC setting up a new Jenkins master will become a no-brainer event.