Git plugin 5.0.0
Thanks to the initial work of Karl Schulz and some further work that I’ve done, the Jenkins git plugin is preparing the 5.0.0 release that will include symbols in the Pipeline definition. Symbols are easier to read and easier to understand in the Pipeline definition. They look better in the Pipeline snippet syntax generator and in the Jenkinsfile.
The git plugin 5.0.0 release will also upgrade the plugin from Java 8 to Java 11. It will require Jenkins 2.361.4 or newer.
Git client plugin 4.0.0
In addition to the git plugin 5.0.0 release, I’m preparing for the git client plugin 4.0.0 release. It will upgrade from Java 8 to Java 11 and will also require Jenkins 2.361.4 or newer. In addition, it will upgrade the JGit library from JGit 5.13.1 to JGit 6.4.0.
The upgrades are intended to be compatible with all uses of the git plugin in all Jenkins job types, including Pipeline, freestyle, and more. Previous Pipeline syntax will continue to work as it did in the past. Previous configuration as code definitions will continue to be honored as they were in the past.
Automated tests and interactive tests of both plugins have been run in environments that I find interesting, like:
- Controllers running with Docker on Linux
- Agents on Unix variants (CentOS 7, Debian 10, Debian 11, Debian testing, Debian unstable, FreeBSD 13, OpenBSD 7.2, openSUSE Leap 15.3, Red Hat Enterprise Linux 8, Rocky Linux 9, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04) using OpenSSH agents and swarm agents
- Agents on Windows (Windows 10) using OpenSSH agents and inbound agents
- Agents on various processor architectures, including amd64, aarch64, arm32, and s390x
- Jenkins plugin bill of materials draft pull requests of git client plugin incremental build and git plugin incremental build
The git client plugin passes all the plugin bill of materials tests. The git plugin passes all the plugin bill of materials tests but one. That one test needs a change in the tests of the affected plugin.
How you can help
My first round of testing found a bug that would have caused problems for users of git submodules. The bug is fixed, but more testing is needed.
You can help by testing the incremental builds of the git plugin and the git client plugin in your pre-production or development environments. I’ve been using early builds of the git plugin for many months. I’ve been using the incremental builds of the git client plugin and the git plugin for the last two weeks.
If you use a docker container and the plugins.txt
file to define your Jenkins plugin configuration, you can switch to testing the pre-release by replacing the git and git-client lines in your plugins.txt file with these lines:
git-client:incrementals;org.jenkins-ci.plugins;4.0.0-rc3322.fa_4f895a_c687
git:incrementals;org.jenkins-ci.plugins;5.0.0-rc5176.c6f6c0213fa_a
If you prefer to install the plugins from the advanced page of the Jenkins plugin manager, you can paste the following two URLs into the URL field of the plugin manager advanced page:
- https://ci.jenkins.io/job/Plugins/job/git-client-plugin/view/change-requests/job/PR-939/lastSuccessfulBuild/artifact/org/jenkins-ci/plugins/git-client/4.0.0-rc3319.9a_f9cb_53e5da/git-client-4.0.0-rc3319.9a_f9cb_53e5da.hpi
- https://ci.jenkins.io/job/Plugins/job/git-plugin/view/change-requests/job/PR-1373/lastSuccessfulBuild/artifact/org/jenkins-ci/plugins/git/5.0.0-rc5170.c27b_4e6b_9456/git-5.0.0-rc5170.c27b_4e6b_9456.hpi
Run the plugin incremental builds in your test environment. Report any issues that you detect in this thread. Experiment with the Pipeline syntax snippet generator with the incremental builds. Explore configuration as code settings and confirm that your existing settings are retained.
I’m especially interested in testing from users that are running a Windows controller. I hope to have time myself for testing with a Windows controller, but that will be a fresh installation and may not detect the same types of issues as would be detected by a Windows controller with a history of jobs.
Code review opportunities
If you’d like to help with code review, feel free to review:
- Require Java 11 and Jenkins 2.361.4 or newer is the git client plugin pull request that prepares git client plugin 4.0.0. It will require Java 11 and will upgrade from JGit 5.13.1 to JGit 6.4.0
- Test git client plugin 4.0.0 incremental is the bom draft pull request that confirms git client plugin 4.0.0 pre-release works in the plugin bom
- Require Java 11 and Jenkins 2.361.4 or newer is the git plugin pull request that prepares git plugin 5.0.0. It will require Java 11
- Test git plugin 5.0.0 incremental is the bom draft pull request that tests git plugin 5.0.0 works in the plugin bom
- [JENKINS-62130] Simplify Pipeline authoring with symbols is the git plugin pull request that relies on Require Java 11 and Jenkins 2.361.4 or newer and adds symbols to the git plugin
- Test git plugin 5.0.0 incremental with symbols added is the bom draft pull request that tests git plugin 5.0.0 with added symbols in the plugin bom
What’s next?
I hope to release the two plugins during the period between December 25, 2022 and January 3, 2023. However, that release schedule depends on what I learn from further testing and the results reported by others.
There is one open question related to configuration as code and the newly created scmGit
symbol. It does not harm functionality but will need investigation before the plugin is released.
- List item