Dear all,

As you probably know, Jenkins core and some plugins contain native code,
and hence they rely on operating systems and platforms. In principle
Jenkins can run everywhere where you can run Java 8 or Java 11, but in
practice there are some limitations. Notably we use Java Native Access  and
Java Native Runtime libraries which provide wide support for platforms, but
there are other components. In the case of Windows platforms we use Windows
Service Wrapper (WinSW) <https://github.com/winsw/winsw> and Windows
Process Management Library (WinP) <https://github.com/kohsuke/winp>, which
depend on Windows versions and, in the case of windows services, on .NET
Framework.

In the Jenkins Platform SIG <https://jenkins.io/sigs/platform/> we have an
open topic about Windows support policy in Jenkins. Currently we have no
documented support policy for Windows, and it becomes an obstacle for
maintainers of Windows-focused components and plugins in the
Jenkins project. As a maintainer of WinSW and WinP, I have to be very
conservative about Windows support. But it comes at a cost to users, not
just maintenance overhead. At the end of the day it also blocks us from
adopting new Windows features and making Jenkins more stable/maintenable on
modern Windows platforms.

I know for sure that there are Jenkins users running on Windows XP, but
IMHO it becomes more and more legacy use-case. Last popular industry
version had EoL in 2019 (WinXP Exmbedded POSReady
<https://www.techrepublic.com/article/windows-xp-dies-final-death-as-embedded-posready-2009-reaches-end-of-life/>),
and IMO it is time to drop WinXP support in new Jenkins releases. Same goes
to 32bit systems and non-mainstream architectures like Itanium, we could
at least reduce the support level there.

I suggest the following policy:

   - All installers and service wrappers require Windows 7 / Windows Server
   2012 or above (and .NET framework 4.0+). They support 64bit platforms only.
   Support for other platforms are provided via manual jenkins.war deployment
   - Jenkins master runtime requires Windows 7 / Windows Server 2012 or
   above. It may work on older versions, but we do not guarantee compatibility
   - Jenkins agent runtime requires Windows 7 / Windows Server 2012 or
   above. It may work on older versions, but we do not guarantee compatibility
   - For all Windows service installations .NET Framework 4.0 or above is
   required. It is a default version in Windows versions specified above
   - Jenkins master and agent Docker images are not required to provide
   images for the supported platforms. They can move ahead as maintainers
   prefer
   - Plugins can define their own support policy, but they are strongly
   advised to align their Windows support policy with the Jenkins Core
   versions.
      - We have no way to communicate potential Windows support issues via
      update center at the moment, so following the Jenkins core
requirements is
      what we can recommend as the best option
   - Custom Jenkins packaging may have different requirements (Jenkinsfile
   Runner, WARs built by Custom WAR Packager)

Would appreciate feedback from maintainers and Windows users! Any comments
and change suggestions are welcome.

If other Plaftorm SIG folks agree with me, I would suggest to add this area
to the Jenkins Roadmap <https://jenkins.io/project/roadmap/>. I also
created a JENKINS-61865
<https://issues.jenkins-ci.org/browse/JENKINS-61865> EPIC
to track changes there. I will create tasks in the EPIC once there is a
consensus in this thread.

Best regards,
Oleg Nenashev
Platform SIG

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAPfivLCVy_cJg9QUv5-Ln8pNfJWEBa24Ni_fmYtd1gC8qaMqMg%40mail.gmail.com.

Reply via email to