Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-35419

Allow tools to be installed automatically without global configuration

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major Major
    • core

      Allowing every tool can used explicitly is annoying. Perhaps, an option "Users are allowed to install THE_TOOL" (allow Maven, disallow everything else) would be a compromise between convenience and safety.

      This is especially problematic for pipeline where the tools name resides in SCM creating (often undesired) binding between the SCM and Jenkins configuration. Admin then have no idea if it is safe to delete/rename tool installation without inspecting all SCMs that can/are built on the instance. (This is annoying even without pipeline when the tool name is in jobs configuration, though it is easier to check and fix).

      Another problem is a pipeline reusability. If every developer adheres to "local" naming conventions for tool installers, pipelines will not work for other people as "GitHub + Maven" sample does not work out of the box until "M3" is configured (I guess there is no guarantee it is maven at all).

      I suggest to create a mechanism to install a tool, identified by a name admin can not affect (${TOOL_NAME}-${VERSION}) and prefer using these "recommended names" from jobs and pipeline scripts. Note that admin will always have an opportunity to override the name with explicit tool installation but there will be a guarantee that Maven-3.3.9 exists.

          [JENKINS-35419] Allow tools to be installed automatically without global configuration

          Oliver Gondža created issue -
          Oliver Gondža made changes -
          Description Original: Allowing every tool can used explicitly is annoying. Perhaps, an option "Users are allowed to install THE_TOOL" (allow Maven, disallow everything else) would be a compromise between convenience and safety.

          This is especially problematic for pipeline where the tools name resides in SCM creating (often undesired) binding between the SCM and Jenkins configuration. Admin then have no idea if it is safe to delete/rename tool installation without inspecting all SCMs that can/are built on the instance. (This is annoying even without pipeline when the tool name is in Jenkins configuration, though it is easier to check and fix).

          Another problem is a pipeline reusability. If every developer adheres to local naming conventions for tool installers, pipelines will not work for other people as "GitHub + Maven" sample does not work out of the box until "M3" is configured (I guess there is no guarantee it is maven at all).

          I suggest to create a mechanism to install a tool, identified by a name admin can not affect (${TOOL_NAME}-${VERSION}) and prefer using these "recommended names" from jobs and pipeline scripts. Note that admin will always have an opportunity to override the name with explicit tool installation but there will be a guarantee that {{Maven-3.3.9}} exists.
          New: Allowing every tool can used explicitly is annoying. Perhaps, an option "Users are allowed to install THE_TOOL" (allow Maven, disallow everything else) would be a compromise between convenience and safety.

          This is especially problematic for pipeline where the tools name resides in SCM creating (often undesired) binding between the SCM and Jenkins configuration. Admin then have no idea if it is safe to delete/rename tool installation without inspecting all SCMs that can/are built on the instance. (This is annoying even without pipeline when the tool name is in Jenkins configuration, though it is easier to check and fix).

          Another problem is a pipeline reusability. If every developer adheres to local naming conventions for tool installers, pipelines will not work for other people as "GitHub + Maven" sample does not work out of the box until "M3" is configured (I guess there is no guarantee it is maven at all).

          I suggest to create a mechanism to install a tool, identified by a name admin can not affect ($\{TOOL_NAME}-$\{VERSION}) and prefer using these "recommended names" from jobs and pipeline scripts. Note that admin will always have an opportunity to override the name with explicit tool installation but there will be a guarantee that {{Maven-3.3.9}} exists.
          Oliver Gondža made changes -
          Description Original: Allowing every tool can used explicitly is annoying. Perhaps, an option "Users are allowed to install THE_TOOL" (allow Maven, disallow everything else) would be a compromise between convenience and safety.

          This is especially problematic for pipeline where the tools name resides in SCM creating (often undesired) binding between the SCM and Jenkins configuration. Admin then have no idea if it is safe to delete/rename tool installation without inspecting all SCMs that can/are built on the instance. (This is annoying even without pipeline when the tool name is in Jenkins configuration, though it is easier to check and fix).

          Another problem is a pipeline reusability. If every developer adheres to local naming conventions for tool installers, pipelines will not work for other people as "GitHub + Maven" sample does not work out of the box until "M3" is configured (I guess there is no guarantee it is maven at all).

          I suggest to create a mechanism to install a tool, identified by a name admin can not affect ($\{TOOL_NAME}-$\{VERSION}) and prefer using these "recommended names" from jobs and pipeline scripts. Note that admin will always have an opportunity to override the name with explicit tool installation but there will be a guarantee that {{Maven-3.3.9}} exists.
          New: Allowing every tool can used explicitly is annoying. Perhaps, an option "Users are allowed to install THE_TOOL" (allow Maven, disallow everything else) would be a compromise between convenience and safety.

          This is especially problematic for pipeline where the tools name resides in SCM creating (often undesired) binding between the SCM and Jenkins configuration. Admin then have no idea if it is safe to delete/rename tool installation without inspecting all SCMs that can/are built on the instance. (This is annoying even without pipeline when the tool name is in jobs configuration, though it is easier to check and fix).

          Another problem is a pipeline reusability. If every developer adheres to "local" naming conventions for tool installers, pipelines will not work for other people as "GitHub + Maven" sample does not work out of the box until "M3" is configured (I guess there is no guarantee it is maven at all).

          I suggest to create a mechanism to install a tool, identified by a name admin can not affect ($\{TOOL_NAME}-$\{VERSION}) and prefer using these "recommended names" from jobs and pipeline scripts. Note that admin will always have an opportunity to override the name with explicit tool installation but there will be a guarantee that {{Maven-3.3.9}} exists.
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 171714 ] New: JNJira + In-Review [ 184426 ]
          Andrew Bayer made changes -
          Component/s New: pipeline-general [ 21692 ]
          Andrew Bayer made changes -
          Component/s Original: workflow-plugin [ 18820 ]
          Jesse Glick made changes -
          Component/s Original: pipeline [ 21692 ]
          Jesse Glick made changes -
          Labels New: pipeline
          Jesse Glick made changes -
          Link New: This issue is related to JENKINS-28718 [ JENKINS-28718 ]

            jglick Jesse Glick
            olivergondza Oliver Gondža
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: