• Icon: New Feature New Feature
    • Resolution: Unresolved
    • Icon: Major Major
    • core
    • None
    • Platform: All, OS: All

      I don't know how difficult this would be to implement, but it would be handy to
      have a user-definable set of "default" project settings that cascade into the
      setting for real projects. Real project can override the cascaded properties as
      they see fit.

      For example, almost every one of my projects uses the Sventon repository
      browser. When it is enabled they all point to the same URL and the same
      repository instance. When I start a new project I have to set up Sventon with
      these properties (with out typos). It would be easier to have the project
      automatically aquire these setting from the cascade.

      If at some later date I was to move Sventon to a new location I would like to be
      able to change the settings in one place (the top of the cascade) and have all
      the projects pick up the change. Currently I would have to edit all of the
      projects individually (with out making mistakes).

      In the few cases where I do not need the cascaded setting I would like to be
      able to override them in the individual projects.

      I've used Sventon in my examples, but in practice I always publish JavaDocs and
      Junit reports to the same location (relative to the project). I always pick up
      the Cobertura coverage report from the same location. I poll the source
      repository at the same time schedule. I use the same project-based security for
      most of my projects (there are a couple of projects where I need to give
      people less access rights).

      More importantly I always want the "Trigger even if build is unstable" setting
      to be turned on for all projects (I want to see how unstable builds effect down
      stream projects). However, we only get this option when we assign the first down
      stream project and it's default is off. Since I'm usually concerned with
      configuring the down stream project at this point it's easy to forget to set
      this flag.

          [JENKINS-3157] Feature request: cascading project settings

          stormcloud created issue -

          Jesse Glick added a comment -

          Unfortunately creating a GUI to edit heritable settings can be tricky.

          Jesse Glick added a comment - Unfortunately creating a GUI to edit heritable settings can be tricky.

          huybrechts added a comment -

          The template-project plugin can do part of this.
          It doesn't do repository browsers yet, but that certainly is a reasonable
          extension. Have a look at it, see if it meets your needs and feel free to raise
          specific feature request against that plugin.

          huybrechts added a comment - The template-project plugin can do part of this. It doesn't do repository browsers yet, but that certainly is a reasonable extension. Have a look at it, see if it meets your needs and feel free to raise specific feature request against that plugin.

          stormcloud added a comment -

          What I'm suggesting is more then a template (although that would be a good
          start). The important difference is that the project doesn't copy the default
          values, it references back to them. If the values in the template are changed
          then they are reflected in all projects that have already been derived from
          them. I can see a couple of uses for this:

          1) Migrating resources such as the Sventon URLs.
          2) Updating e-mail notification lists if a project leader were to leave.

          Ok, these are reasonably trivial to change by editing the raw XML, but something
          like a global change to the project security settings or code coverage
          requirements is no so easy to implement by editing raw html.

          From a GUI POV I had though that setting up the cascade would be just like
          editing a regular project. The user would be able to set values exactly as they
          do now.

          To use the cascade the project would have an extra property to say which cascade
          they are taking values from. Then the project would be given an extra option to
          use cascaded value for each of the setting or over ride it with a specific
          value. This could be done with a check box to enable or disable the options. It
          would probably be a good idea if the cascade were the default.

          I don't think it would be a good idea to allow user to change the cascade while
          editing the derived project though. That would be far to complex for GUI, and
          probably the user as well.

          An interesting question would be how many levels of cascade would be allowed
          (can you define a cascade based upon a another cascade?). Personally I think
          that would be over kill.

          Anyway that's just my two cent.

          stormcloud added a comment - What I'm suggesting is more then a template (although that would be a good start). The important difference is that the project doesn't copy the default values, it references back to them. If the values in the template are changed then they are reflected in all projects that have already been derived from them. I can see a couple of uses for this: 1) Migrating resources such as the Sventon URLs. 2) Updating e-mail notification lists if a project leader were to leave. Ok, these are reasonably trivial to change by editing the raw XML, but something like a global change to the project security settings or code coverage requirements is no so easy to implement by editing raw html. From a GUI POV I had though that setting up the cascade would be just like editing a regular project. The user would be able to set values exactly as they do now. To use the cascade the project would have an extra property to say which cascade they are taking values from. Then the project would be given an extra option to use cascaded value for each of the setting or over ride it with a specific value. This could be done with a check box to enable or disable the options. It would probably be a good idea if the cascade were the default. I don't think it would be a good idea to allow user to change the cascade while editing the derived project though. That would be far to complex for GUI, and probably the user as well. An interesting question would be how many levels of cascade would be allowed (can you define a cascade based upon a another cascade?). Personally I think that would be over kill. Anyway that's just my two cent.

          blidgey added a comment -

          We have created a disabled project called ProjectTemplate and any new projects
          created are copies of that rather than new ones in their own right.

          But as we are increasing our usage of Hudson then we are looking to turn on
          things like Cobertura or Checkstyle report publishing, and applying that to all
          the projects is a pain.

          Perhaps one approach would be to have a configuration set that can be applied to
          a project. Configuration sets would then be a centrally managed config that can
          be edited in one place and applied rather than implementing a hierarchy. I
          suppose this is analogous to the config in CruiseControl where you can define a
          project template in the XML, and changes made to that are applied to all the
          projects for that definition.

          blidgey added a comment - We have created a disabled project called ProjectTemplate and any new projects created are copies of that rather than new ones in their own right. But as we are increasing our usage of Hudson then we are looking to turn on things like Cobertura or Checkstyle report publishing, and applying that to all the projects is a pain. Perhaps one approach would be to have a configuration set that can be applied to a project. Configuration sets would then be a centrally managed config that can be edited in one place and applied rather than implementing a hierarchy. I suppose this is analogous to the config in CruiseControl where you can define a project template in the XML, and changes made to that are applied to all the projects for that definition.

          cristalp added a comment -
              • Issue 2419 has been marked as a duplicate of this issue. ***

          cristalp added a comment - Issue 2419 has been marked as a duplicate of this issue. ***
          cristalp made changes -
          Link New: This issue is duplicated by JENKINS-2419 [ JENKINS-2419 ]

          cristalp added a comment -

          Copied discussion from issue 2419

          I think that normally, companies define certain quality goals and use Hudson's
          plugins to achieve them. However, defining the same configuration over and over
          again for every job is something that IMHO needs to be fixed.
          One possible solution would be a "master" job which is configured once. All
          dependent jobs can then override any configuration, if they want to.
          As far as I can see (being new to Hudson), this has been requested on the
          mailing list before, but I didn't find any enhancement request in here.

          ------- Additional comments from cristalp Fri Nov 14 12:19:50 +0000 2008 -------

          See also the discussion on
          http://www.nabble.com/Features-common-to-all-jobs-td20350398.html

          ------- Additional comments from jeffjensen Sun Feb 8 18:12:51 +0000 2009 -------

          I agree. We should be able to specify defaults for all project and plugin
          settings, and only need to change them per project configuration as necessary.
          This saves on initial setup and maintenance time.

          cristalp added a comment - Copied discussion from issue 2419 I think that normally, companies define certain quality goals and use Hudson's plugins to achieve them. However, defining the same configuration over and over again for every job is something that IMHO needs to be fixed. One possible solution would be a "master" job which is configured once. All dependent jobs can then override any configuration, if they want to. As far as I can see (being new to Hudson), this has been requested on the mailing list before, but I didn't find any enhancement request in here. ------- Additional comments from cristalp Fri Nov 14 12:19:50 +0000 2008 ------- See also the discussion on http://www.nabble.com/Features-common-to-all-jobs-td20350398.html ------- Additional comments from jeffjensen Sun Feb 8 18:12:51 +0000 2009 ------- I agree. We should be able to specify defaults for all project and plugin settings, and only need to change them per project configuration as necessary. This saves on initial setup and maintenance time.

          mdonohue added a comment -
              • Issue 3314 has been marked as a duplicate of this issue. ***

          mdonohue added a comment - Issue 3314 has been marked as a duplicate of this issue. ***
          mdonohue made changes -
          Link New: This issue is duplicated by JENKINS-3314 [ JENKINS-3314 ]

            Unassigned Unassigned
            stormcloud stormcloud
            Votes:
            163 Vote for this issue
            Watchers:
            98 Start watching this issue

              Created:
              Updated: