[ANN] - Jenkins & Java 10 Online Hackathon (Jun 18-22)

140 views
Skip to first unread message

Oleg Nenashev

unread,
Jun 6, 2018, 12:58:54 PM6/6/18
to JenkinsCI Developers
Hi all,

On behalf of the Jenkins Events Team, I would like to invite you to the “Jenkins & Java 10 Online Hackathon” which we are going to have from June 18th to 22nd.

Jenkins project currently requires Java 8 to run reliably. There are some known compatibility issues with higher Java versions. During the Jenkins World 2017 Hackathon, Mark Waite and Baptiste Mathus spent some time exploring Java 9 compatibility in Jenkins. We are currently tracking compatibility issues in the JENKINS-40689 EPIC, but there are likely many unknown issues in Jenkins core, plugins and in libraries we use in the project.

It has been almost a year since that effort. Java 9 has recently been end-of-lifed, Java 10 in GA, and Java 11 is in early beta. We would like to continue the effort and work on Java 10+ support. So, we are going to have an online hackathon on June 18th-22th in order to collaborate on finding and fixing compatibility issues, share experience and have some fun. Everybody is welcome to join, independently of their Jenkins experience and amount of time they have available.

If you are interested in participating in the hackathon, please sign-up in this form.

Currently the event is in the planning stage. We will be organizing some sync-up and knowledge transfer sessions during the event, and we also want to have some special swag for participants. Stay tuned, we are going to provide more details about the logistics in a blogpost to be published soon. If you have any questions, please reply to this thread.

Best regards,
Oleg Nenashev

Mark Waite

unread,
Jun 9, 2018, 10:05:52 AM6/9/18
to Jenkins Developers
I tried to start my JDK 10 Docker image with Jenkins 1.121.1 LTS and was immediately stopped by a "Jenkins requires Java 8" message.  That is a very good message since it prevents others from accidentally trying Java 9 or Java 10 when it is known to not work.

Can someone point me to the technique that will be used to retain that message for production users but still allow experiments with newer Java versions?

Mark Waite

Oleg Nenashev

unread,
Jun 9, 2018, 11:44:50 AM6/9/18
to Jenkins Developers
Hi Mark,

My plan is to get it in the core weekly or java10-support before we start the hackathon so that it does not block others.

Pull requests:
In order to run the core reliably for exploratory testing, we will also need to do some patches in the core:
  • Bump Binary Compatibility Transformer to 2.0.3-alpha-3 (ASM 5 => ASM 6, Baptiste did updates in September)
  • Add java.xml.bind libraries to the scope (as module or, preferably, as external dependencies): for JENKINS-51832
  • Much more non-mergeable magic (?)
My proposal is to...
  1. Create a java10 development branch in the core
  2. Adjust Jenkins version in the branch
  3. Tweak Jenkinsfile in this branch to speedup builds
    • e.g. "run unit tests, but not ATH or JTH"
    • Keep incrementals so that we ship builds to users for consumption
  4. Add Dockerfile directly to the Repo, setup automatic build on DockerHub

Best regards,
Oleg

Mark Waite

unread,
Jun 9, 2018, 11:51:27 AM6/9/18
to jenkin...@googlegroups.com
That sounds like a great plan to me.  

Let me know as parts and pieces of that become available.  I may be able to squeeze some initial testing in during the evenings as prep for the hackathon.

Mark Waite

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/cf2db149-c658-4e26-8512-e447c7ab9bcb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Oleg Nenashev

unread,
Jun 11, 2018, 10:36:31 AM6/11/18
to Jenkins Developers
Hi Mark,

As you asked, letting you know that it's available. Thank you and Daniel Beck for reviews on the weekend :)

Updates:
  • We have posted a blogpose about the hackathon with some extra details: https://jenkins.io/blog/2018/06/08/jenkins-java10-hackathon/ . Will appreciate reposts and tweets
  • I have landed the JENKINS-51155 patch in 2.127 (no changelog so far). You can run Jenkins with Java 10 using the following command-line: "${JAVA10_HOME}/bin/java --add-modules java.xml.bind -jar jenkins.war --enable-future-java --httpPort=8080 --prefix=/jenkins".
  • I have started a java10-support branch and label in the Jenkins repo
  • I have created an EPIC for the hackathon prep-work: JENKINS-51833. If I am missing any tasks, please add them there
Some exploratory testing results:
  • Jenkins starts up successfully on Java 10. You can configure and run freestyle jobs
  • Pipeline crashes immediately, even with the new Bytecode transformer based on ASM 6.0-BETA. We need to update all libs to ASM 6.2 IMHO (tickets are in the EPIC)
  • Remoting agents are able to start on Java 10 and to connect to the master. They execute freestyle jobs, so we are "fine" there
  • It won't work on Java 11, because Java EE libraries are removed from it. For Java 11 we will likely need to repackage Jenkins. I created a Java 11 compatibility EPIC - JENKINS-51805.
So the biggest obstacles ahead are Pipeline support. We could also do cleanup of reflection calls, which will eventually blow up in our face (in Java 10 it's warning by default). We should also consider some major efforts like updating to Groovy 3.x + testing reflection-based functionality (e.g. databinding in XStream, Jackson, SnakeYML).

Best regards,
Oleg

Carlos Sanchez

unread,
Jun 11, 2018, 10:55:50 AM6/11/18
to Jenkins Developers
I have created a branch for the docker image at https://github.com/jenkinsci/docker/tree/java10

Mark Waite

unread,
Jun 11, 2018, 11:36:41 AM6/11/18
to jenkin...@googlegroups.com
Thanks!

I've confirmed that I Jenkins 2.127 starts with JDK 10 when I use the --enable-future-java you've provided.  Multiple agents connected successfully.

Mark Waite

Oleg Nenashev

unread,
Jun 15, 2018, 6:09:04 AM6/15/18
to Jenkins Developers
Hi all,

Just some logistics updates:
  • I have created a sync-up Google Document, which we will be using during the Hackathon
  • I have added guidelines for running Jenkins with Java 10/11 (here)
  • Finally, we have scheduled the meetings (here):
    • On Monday 7:00 AM UTC we will have an opening session for EMEA/APAC. There we will decide whether we do regular meetings
    • On Monday 4:00 PM UTC we will have an opening session for EMEA/Americas
    • Each day we will have sync-ups at 4PM UTC
See you on Monday!

Best regards,
Oleg Nenashev

Oleg Nenashev

unread,
Jun 19, 2018, 6:43:01 PM6/19/18
to Jenkins Developers
Hi all,

We have published an update after the first two days of the hackathon: https://jenkins.io/blog/2018/06/19/jenkins-java10-hackathon-day2/ . TL;DR: We have got Jenkins Pipeline working with Java 11, so the main blocker for Java 10 adoption and exploratory testing is resolved. There are lots of ongoing patches for Jenkins libraries and development tools.

If you are interested to try out Jenkins with your plugins on Java 10 or 11, see these guidelines. If you want to try out Pipeline support, we also have a jenkins/jenkins-experimental:blueocean-jdk10 image with core Pipeline plugins and Blue Ocean bundled. "Pipeline: Support" plugin currently requires a custom patch which has not been released yet, so this is the most straightforward way to get it running.

Tomorrow we will have 2 sessions: Intro to Jenkins development for patch contributors (8AM UTC) and a meeting with JDK Project Jigsaw committers (4PM UTC). Please feel free to join these sessions if you are interested. Links are provided in the Day 2 update blogpost.

Best regards,
Oleg
Reply all
Reply to author
Forward
0 new messages