On Friday, 10 April 2020 14:26:51 UTC+2, Oleg Nenashev wrote:
>
> 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
>
>
I only started working on a sort-of-Windows-oriented plugin 
(dotnet-sdk-plugin), so I did not see this earlier. Going to add my EUR0.02 
anyway.

While dropping support for XP seems perfectly sensible to me, I'm not as 
sure about dropping support for x86.
There, I would take guidance from what Microsoft still supports for the 
.NET SDKs (given that those are used for building, they seem a relevant 
data point for a CI server).
Looking at the most bleeding-edge versions, and discounting ARM for now, 
they support only x64 for Linux and macOS, but both x64 and x86 for Windows.
Source: https://dotnet.microsoft.com/download/dotnet/5.0
That would suggest that there is enough of a user/install base to make that 
relevant for them, which in turn seems like it should make it relevant for 
Jenkins.

Note: I would see less of an issue having different support levels for a 
master node and slave nodes; requiring x64 for master may not be 
unreasonable, but almost dropping support for x86 slaves seems eminently 
less so.

Disclaimer: I'm personally running only x64 machines, and I'm not sure the 
company I work for has any x86 slaves left, nor whether we've had recent 
customers using x86 Windows.
I'm only going off what Microsoft continues to support.

-- 
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/63f4cfe7-c9a8-44ec-9021-c2f3caa93d86%40googlegroups.com.

Reply via email to