Complete build retooling of jenkins.io

Project goal: Using alternative tooling with Gatsby and Antora to build the Jenkins static site and provide versioned Jenkins documentation

Skills to study/improve: Web development, AsciiDoc, Static website tooling, Documentation, Website retooling

Details

Background

The jenkins.io website is generated as a static website using Awestruct from AsciiDoc sources, YAML data files, and HAML templates stored in GitHub. One of the drawbacks of the current build method is that the technical documentation is not product version bound. It is thus not possible to view the documentation for a given Jenkins version. Only the latest can be viewed. This can lead to unnecessary confusion and is a worse experience than many other documentation sites like the git site, FreeBSD, and others…​

The preferred tool to replace Awestruct is Antora.

The potential GSoC project would be to build a working site generator to demonstrate the existing site. Once the existing site is generated with Antora, the site should be extended to add version specific documentation.

The project has been discussed extensively at GitHub issue #5474, where some existing proof-of-concept code can be found referenced there.

We have already begun work on this project in GSoC 2023 as "Building Jenkins.io with alternative tools". However, we were only able to complete most of the groundwork for the Antora part of the versioned docs and some of the groundwork for the Gatsby part, mostly for the non-versioned part.

So now the core work left will be to update the outdated content of both the Antora versioned docs as well as the Gatsby backbone at the project at jenkins-infra/docs.jenkins.io repo.

The outcome of this project is expected to produce a visible impact they can showcase in their portfolio of the jenkins.io website, as the GSoC contributor is also expected to contribute via UI/UX improvements beyond the basic tooling required.

This selected GSoC contributor is expected to work very diligently to play catch up with the transition from the current jenkins.io repo and the new jenkins-infra/docs.jenkins.io repo. So we will only shortlist candidates who do not have competing commitments in order for this project to have a successful outcome.

Please note that for the UI/UX improvement portion we may need to deal with the jenkins-io-components repo, where the code for components shared by various Jenkins websites (jenkins.io, plugins.jenkins.io, etc.) is currently hosted.

Quick Start

Documentation quick start steps include:

  • Build the current documentation site locally

  • Become familiar with the current site, including:

    • Page types and how they are generated

      • Changelogs

      • Roadmap

      • User handbook

      • Developer handbook

      • Artwork

      • Security advisories

      • Version specific content in tutorials (like "Improve a plugin")

    • Page content sources

      • Asciidoc

      • HAML / Ruby

      • Web components

    • Build process

      • Makefile

      • Docker containers

      • Syntax and spelling checks

  • Fix several "good first issues"

  • Explore jenkins-io-components repo

  • Explore Antora

  • Review version specific documentation techniques (some of them are Antora sites)

Skills to Study and Improve

  • Web development

  • AsciiDoc

  • Static website tooling

    • HAML templates

    • YAML data files

  • Documentation

Project Difficulty Level

Beginner to Intermediate

Project Size

175 to 350 hours

Expected outcomes

The deliverables of the project would be:

  1. Iterative and incremental improvements to the site throughout the project

  2. Demonstration that all the existing pages are rendered in an equivalent way

    • Suggestions of improved page design(s)

    • A list of all automation that are difficult/impossible to port to the new tool

    • Suggestions and demos of alternative ways to solve this

  3. Demonstration of the versioned documentation automated tooling

    • Description of the publication process (how does one contribute to document a new or modified feature)

  4. Successful migration of revamped jenkins.io website to replace website using old tooling

New features

Improved layout of the existing site and its pages. New jenkins.io website.

Newbie Friendly Issues

Basically any good-first-issue listed in the jenkins.io GitHub repo would do. These can be accessed at the GitHub repo issues tracker with the "good first issue" label.

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2025 project ideas