Skip to content

upper-bounds for libraries from Jenkins core should not be bumped past their version in Jenkins #734

@jtnord

Description

@jtnord

What feature do you want to see added?

The upper-bounds fixer in the PCT aligns all dependencies to the highest version under test.

However this is incorrect for libraries that come from core as the library version they get at runtime will always be the version from core. So using a newer version (that comes from elsewhere in the dependency tree) will be incorrect and lead to issues where hooks are needed for these cases (e.g. #733).
Instead the version that is used in alignment should be the version from the Jenkins core.

If a plugin is using a plugin-first classloader then bumping the version will update the library when it wouldn't have that at runtime, or mask classes, but these plugins are the exception to the general, so the PCT should cope for the general use case, and hooks should exist only for the non general.

An Argument could be made that plugins should excluded any transitive dependency from libraries so that they always only come from core and would then not be visible in the upper-bounds fixer.

Upstream changes

No response

Are you interested in contributing this feature?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions