Giter Club home page Giter Club logo

Comments (3)

chadlwilson avatar chadlwilson commented on June 15, 2024

Thanks for the sleuthing here. It does seem that this should be possible to address, and may be an oversight from the way things are modeled with autoUpdate being owned in config by the top level SCM along with values like id/name etc.

@ConfigAttribute(value = "autoUpdate", optional = true)
private boolean autoUpdate = true;

However there is some potential complexity/mess here to consider due to the way SCMs are de-duplicated which we'd need to reconcile to ensure the semantics are the same as for the non-pluggable materials (equally deterministics or non-deterministic).

from gocd.

MPV avatar MPV commented on June 15, 2024

@chadlwilson Thanks for investigating this.
What do you think is the next step forward here?

from gocd.

chadlwilson avatar chadlwilson commented on June 15, 2024

See the discussion at #11636 (comment) and below in particular. The extent of my thoughts are on the PR, and haven't got any further than that.

There's probably not really a next step without addressing the concerns on approach, which I'm not sure how to do right now (or put differently, have not had the time/energy/inclination to figure out).

The benefit appears somewhat small (given how long the config repo feature has been around and no-one highlighting this gap until now, that I can find!), and at the moment the effort/risk is relatively high, so we need to find a way to change that equation, which is rather difficult with the resources available.

TL;DR The current proposed approach in the PR has at least two problems

  • can silently mutate configuration outside the config repository's scope, including materials that are not within scope of a given change, unintentionally affecting other pipelines.
  • appears to mutate shared configuration objects in memory prior to a change being fully validated as safe to merge into the configuration, in a way that is not reverted/undone if the change later fails a validation constraint (this requires specific validation)

That's not really a solution I am comfortable with given the chance for unintended consequences that will be difficult for a user to reason about or debug.

from gocd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.