Thanks basil,

I agree with your idea. I will prepare another PR to modernize the CI 
system first.

Before that, I checked and compared the code and found that the fork 
dependency version currently in use should have been built and released 
from the rebase-2.4 branch, not master.
If you also confirm that this is the current situation, could you rename 
the rebase-2.4 branch to main or master branch, and set it as the default 
branch? And rename the current master to before-modernize-master-backup 
branch (or another name to archive it)?
在2024年4月11日星期四 UTC+8 06:27:35<[email protected]> 写道:

> Hey Bob, thank you for proposing this!
>
> Jenkins core delivers JSON-lib under the net.sf package namespace,
> consumes it itself, and provides it to many consuming plugins. It
> looks like Andres Almiray is still maintaining JSON-lib and EZMorph
> over at https://github.com/kordamp/json-lib and
> https://github.com/kordamp/ezmorph, but these new versions use the
> org.kordamp package namespace and depend on Commons Lang 3 — both of
> which go against our goal to avoid increasing core API surface area by
> exposing additional third-party libraries.
>
> Ultimately core needs to be able to parse JSON itself, and the Java
> Platform does not provide a built-in way to do this. Under the current
> architecture, where all core dependencies are exposed to plugins, that
> means we can't avoid exposing at least _one_ JSON library to plugins:
> the one used by core itself, which is currently JSON-lib under the
> net.sf package namespace. Even if we did want to migrate core and
> plugins to a newer version of JSON-lib or a different JSON library
> (and I'm not sure we do), we'd have to continue to support JSON-lib
> under the net.sf package namespace during the transition period at the
> very least.
>
> So your idea of cleaning up our old fork of (net.sf-based) JSON-lib to
> at least avoid Commons Lang 2 sounds practical indeed in the short to
> medium-term. At least that will allow us to proceed with cleaning up
> Commons Lang, even if the JSON mess remains — a problem which can be
> dealt with separately, if we ever need to deal with it at all. Another
> argument in favor of this proposal is that it is no worse than the
> current status quo, but a strict improvement in that it decreases
> core's API surface area — without any risk of regression. These
> advantages are not insignificant when dealing with such an old
> codebase.
>
> I could support this plan with one minor tweak. As I wrote in another
> thread recently, I think modernizing the build and CI system should be
> done before any other changes, because it is difficult to review and
> test the other changes without a working build and CI system. In part
> due to the success of the Jenkins project, the bar for software
> development has been raised throughout the industry such that a modern
> build and CI system is now considered table stakes. Accordingly, I
> think this should be done first, and then the other changes you have
> mentioned. So I would kindly request that you first prepare a PR to
> update the build to use the latest parent POM and Jenkinsfile. Without
> commit access to the repository in question, you won't be able to test
> Jenkinsfile changes on ci.jenkins.io, but I can assist with testing
> these changes using my permissions. Here are some other core
> components that can be used as a reference:
>
> https://github.com/jenkinsci/bridge-method-injector
> https://github.com/jenkinsci/core-annotation-processors
> https://github.com/jenkinsci/extensibility-api
> https://github.com/jenkinsci/extras-memory-monitor
> https://github.com/jenkinsci/jelly
> https://github.com/jenkinsci/jenkins-test-harness
> https://github.com/jenkinsci/jenkins-test-harness-htmlunit
> https://github.com/jenkinsci/lib-access-modifier
> https://github.com/jenkinsci/lib-annotation-indexer
> https://github.com/jenkinsci/lib-crypto-util
> https://github.com/jenkinsci/lib-file-leak-detector
> https://github.com/jenkinsci/lib-mock-javamail
> https://github.com/jenkinsci/lib-process-utils
> https://github.com/jenkinsci/lib-support-log-formatter
> https://github.com/jenkinsci/lib-symbol-annotation
> https://github.com/jenkinsci/lib-task-reactor
> https://github.com/jenkinsci/lib-test-annotations
> https://github.com/jenkinsci/lib-version-number
> https://github.com/jenkinsci/remoting
> https://github.com/jenkinsci/stapler
> https://github.com/jenkinsci/winstone
>

-- 
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/4092f2e2-f327-4343-9eec-c55709d87872n%40googlegroups.com.

Reply via email to