<div dir="ltr"><div dir="ltr">Hi Andreas, et al.,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 11, 2020 at 3:26 AM Andreas Neumann <<a href="mailto:a.neumann@carto.net">a.neumann@carto.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>Hi,</p>
    <p>In general, I agree with Nyalls proposal. As a customer or user
      of QGIS who wants stability, this is a good thing.</p>
    <p>But like Larry, I think we should be careful and not ask a dev to
      be responsible for a new feature during his lifetime ;-) ( I know
      this is exaggerating ). Let's limit the responsibility until the
      release of the next LTR version. I think that would be a
      compromise that protects both the customer, the developer and
      <a href="http://QGIS.ORG" target="_blank">QGIS.ORG</a>.<br>
    </p>
    <p></p></div></blockquote><div>I think support relative to public release cadence, instead of specific versions will make more sense to sponsors/customers. Otherwise, you end up with the same issue when focusing on LTR as with specifying a major version (e.g. substitute LTR for 4.0.0): </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Larry Shaffer wrote:<br>If you do mean major, then this could be quite some time and possibly unequal per author, e.g. one feature introduced in 3.0.0 needs supported until 4.0.0, while another in 3.14.0 has a much shorter support cycle to reach 4.0.0.</blockquote><div><br></div><div>I think the focus here should be on stability over a given time span, not any specific version. I suggest "from the point of merging through the public release with the feature and until the next 1 or 2 public release(s)."</div><div><br></div><div>The reasoning here is that if a feature causes instability beyond a 4-month release cycle, then something is VERY wrong with it, or it is so complicated no one can correctly solve it yet. Either way, action needs to be taken, i.e. disabling or removing it. The curse of self-inflicted instability should not be allowed to persist beyond a single release.</div><div><br></div><div>Conversely, if the feature is stable after a full 4-month release, with patch fixes, than it can probably be viewed as a complete contribution, or not enough users have actually used the feature yet (corner case, I think).</div><div><br></div><div>Even a 8-10 month support cycle (two public releases, regardless of version) makes sense, given most bugs for stability should be worked out within the first 4 months; although, it *might* take fixes or another feature in other parts of the codebase to make a broken contribution work, i.e. needs one more general release. The latter might be a better option than removal of the broken contribution or disabling it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p>And, as the treasurer, I think it is totally ok, if the general
      <a href="http://QGIS.ORG" target="_blank">QGIS.ORG</a> funds are also used for bug fixing of features paid by
      someone else. After all, the customer and developer did their
      contribution which benefited all other QGIS users. Now, all the
      other QGIS users can contribute to the maintenance, esp. if they
      don't pay for feature development.</p></div></blockquote><div><br></div><div>I think the point here is that, regardless of funding source, incomplete contributions, i.e. ones that cause issues/bugs after merging, and there is not a concerted effort to fix by the author(s), should not rely upon other devs or the project's bug-fixing funds to get its code (or QGIS) working prior to public release.</div><div><br></div><div>People make mistakes and having such an awesome community to help solve them is what makes this project a joy to work with and contribute to. However, it must not be OK to even have the appearance of contributors abusing that relationship. Stringent guidelines here help everyone involved.</div><div><br></div><div>Regards,</div><div><br></div>Larry Shaffer<br>Dakota Cartography<br><div>Black Hills, South Dakota </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
    <p>As a consequence of this proposal, devs should raise the hours
      budgeted for a new feature and as a consequence the price for the
      customer.</p>
    <p>Greetings,</p>
    <p>Andreas<br>
    </p>
    <div>Am 11.03.20 um 04:30 schrieb Larry
      Shaffer:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div dir="ltr">Hi Nyall, et al.,<br>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Tue, Mar 10, 2020 at 4:55
            PM Nyall Dawson <<a href="mailto:nyall.dawson@gmail.com" target="_blank">nyall.dawson@gmail.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 11 Mar 2020 at
            03:31, Alessandro Pasotti <<a href="mailto:apasotti@gmail.com" target="_blank">apasotti@gmail.com</a>> wrote:<br>
            ><br>
            > I've always felt it was an implicit agreement, but I
            totally agree<br>
            > that making it explicit is a good idea.<br>
            <br>
            Yep, it's been more or less "understood" practice for some
            time, but<br>
            I'd like it to be official so there's no room for
            misunderstand.<br>
            <br>
            > Where exactly would you suggest to add that kind of
            statements?<br>
            <br>
            I'd put it in a new section under<br>
            <a href="https://docs.qgis.org/testing/en/docs/developers_guide/" rel="noreferrer" target="_blank">https://docs.qgis.org/testing/en/docs/developers_guide/</a> 
            Maybe<br>
            something like "development policies"?<br>
            <br>
            We could word it something like:<br>
            <br>
            "While new feature submissions are always highly
            appreciated, every<br>
            feature added to QGIS comes with an associated maintenance
            burden for<br>
            the project. Accordingly, some policies exist to avoid
            placing this<br>
            burden on the existing QGIS development team:<br>
            - Following any new feature development, it is the original<br>
            developer's (or organisations) SOLE responsibility to
            proactively<br>
            monitor and implement bug fixes relating to the new feature
            (or<br>
            regressions to other parts of QGIS which have resulted from
            its<br>
            development). This extends up to the next major QGIS release
            following<br>
            the feature being merged*. It is NOT acceptable to use
            QGIS.org<br>
            sponsored bug fixing efforts to implement these fixes.
            Failure to<br>
            provide fixes to all reasonable bug reports raised for a<br>
            new feature may lead to that feature being reverted prior to
            release.<br>
          </blockquote>
          <div><br>
          </div>
          <div>Need some clarification on some particulars related to
            versioning and releases...</div>
          <div><br>
          </div>
          <div>Do you mean minor instead of major releases? You speak of
            reverting a feature prior to a *major* release, but features
            are introduced on master prior to every 4-month (minor or
            major) release, as indicated by your footnote for 3.14.</div>
          <div><br>
          </div>
          <div>If you do mean major, then this could be quite some time
            and possibly unequal per author, e.g. one feature introduced
            in 3.0.0 needs supported until 4.0.0, while another in
            3.14.0 has a much shorter support cycle to reach 4.0.0.</div>
          <div><br>
          </div>
          <div>Regardless, I suggest scheduling the expected new feature
            support relative to the public release *cadence*, regardless
            of release version.</div>
          <div><br>
          </div>
          <div>
            <div>Instead of...</div>
            <div><br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This extends up to the
              next major QGIS release following<br>
              the feature being merged*.</blockquote>
          </div>
          <div><br>
          </div>
          <div>Maybe something like...</div>
          <div><br>
          </div>
          <div>"This extends from when the feature is merged into a
            development branch until its public QGIS release containing
            the feature."</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>Also ...</div>
          <div><br>
          </div>
          <div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">- After this major
              release, the developer is still expected to monitor<br>
              the bug tracker for issues relating to their work and
              implement<br>
              reasonable fixes at their own expense.<br>
              "<br>
            </blockquote>
          </div>
          <div><br>
          </div>
          <div>Like... forever? What about the *value* of their
            contribution to the project itself? Something highly
            variable and relative, even for core features. And what
            about later, when the feature is stable, but needs
            refactored to meet other changes in the codebase? Does that
            then constitute a 'bug'?</div>
          <div><br>
          </div>
          <div>Maybe instead:</div>
          <div><br>
          </div>
          <div>"After the first public QGIS release containing the
            feature and until the next public release (or whatever
            interval is agreed upon), the developer is still expected to
            monitor the bug tracker for issues relating to their work
            and implement reasonable fixes at their own expense."</div>
          <div><br>
          </div>
          <div>I'd be hard pressed to convince any funding backers that
            they need to pay me to develop a feature and
            financially support it in perpetuity, especially if the
            feature also benefits the project/app and its users.
            However, it seems reasonable to say to a customer "and you
            also need to support the fixing of this feature's bugs found
            by the public until the following public release."</div>
          <div><br>
          </div>
          <div>I'm all for accountability in code maintenance, but there
            has to be a limit. Otherwise, contributions may become
            viewed as indentured servitude.</div>
          <div><br>
          </div>
          <div>Regards,</div>
          <div><br>
          </div>
          <div>Larry Shaffer<br>
            Dakota Cartography<br>
            Black Hills, South Dakota<br>
          </div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            Nyall<br>
            <br>
            <br>
            ><br>
            ><br>
            > --<br>
            > Alessandro Pasotti<br>
            > w3:   <a href="http://www.itopen.it" rel="noreferrer" target="_blank">www.itopen.it</a><br>
            _______________________________________________<br>
            QGIS-Developer mailing list<br>
            <a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
            List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
            Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></blockquote>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
QGIS-Developer mailing list
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></pre>
    </blockquote>
  </div>

_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></blockquote></div></div>