Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-14 Thread Hyrum K Wright
On Thu, Jun 14, 2012 at 1:23 AM, Bert Huijben b...@qqmail.nl wrote:


 -Original Message-
 From: Hyrum K Wright [mailto:hyrum.wri...@wandisco.com]
 Sent: Thursday, June 14, 2012 12:33 AM
 To: Bert Huijben
 Cc: Michael Pilato; Subversion Development
 Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

 On Wed, Jun 13, 2012 at 9:45 PM, Bert Huijben b...@qqmail.nl wrote:
 
 
  -Original Message-
  From: C. Michael Pilato [mailto:cmpil...@collab.net]
  Sent: Wednesday, June 13, 2012 9:34 PM
  To: dev@subversion.apache.org
  Cc: Hyrum K Wright; comm...@subversion.apache.org
  Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py
 
  On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
   On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
   Author: rhuijben
   Date: Wed Jun 13 16:10:25 2012
   New Revision: 1349944
  
   URL: http://svn.apache.org/viewvc?rev=1349944view=rev
   Log:
   * gen-make.py
    Make the --with-neon= and --without-neon arguments on gen-
 make.py
  optional,
    just like how ./configure handles those. Windows doesn't use
 ./configure
  and
    this breaks tools that are friendly enough to provide hints.
  
   I don't like this change.  ./configure *doesn't* work this way: it
   errors when attempting to provide the now-defunct neon options.
 
  Perhaps Bert meant only that, in general, configure allows you to specify
  options that it doesn't itself understand (while printing a warning about
  this fact).
 
  I think most distributions at least share some build code between versions.
 
  The buildbots only have a single set of dependencies for all the branches
 we are building. Only once we released 1.9.0 neon will be gone and before
 that we still have to support it (and even after that we still have to 
 support all
 the Subversion 1.0-1.7 clients that still use neon)

 So, what you're saying is that we have single slaves, with single sets
 of scripts building multiple branches.  And because of this, we can't
 change the dependencies or script arguments on trunk, for fear of
 breaking other branches.  That sounds a bit like the tail wagging the
 dog.

 What would happen if we added a flag on trunk that one of the slaves
 needed to build, but didn't exist (and hence error'd) on other
 branches?  Would we need to backport that flag as a no-op, simply to
 make the build slaves happen?  That's exactly what this commit does,
 only in the forward direction.

  Things get very easy if you just break the few remaining buildbots without
 caring about the consequences, but it doesn’t make Subversion a better
 product.

 Making decisions simply to please the bots doesn't make Subversion a
 better product, either.  They exist to help facilitate development.
 If there is a problem with the bots, then FIX THE BOTS, rather than
 introducing hacks in an attempt to please them.

 In this specific case that might mean a slightly more complex setup,
 which build each branch with a separate set of dependencies / scripts
 / inputs, since that's what end users will be doing anyway.

 Well, maybe you could help writing these scripts instead of breaking them 
 because they have to broken anyway in the future.

I choose not to maintain the bots you choose to host.  The slave I
host is currently offline, if/when it comes back on, I will address
these issues which impact them.  I have helped fix the centos
buildslave, which I have knowledge of and access to.

 Breaking them 2 minutes after telling you that breaking them will cause huge 
 problems that take much time to solve isn't helping things.

You pointed out a deficiency in my prior patches, which I attempted to fix.

 Why do you prefer 2 of the 3 buildbots to be broken for at least the rest of 
 the hackathon?

I don't.  Please don't put words in my mouth.

 Fixing the scripts for the bots, for SharpSvn, for the Slik distribution, for 
 CollabNet's build and several test scenarios takes time certainly more 
 time than the 5 minutes you provided.

Those aren't my responsibility.  While I think we should be respectful
of downstream users, people who choose to build directly against trunk
on a regular basis have to know they are working against a moving
target, and such breakage is possible, and even quasi-expected.

 And probably more than a few weeks if I'm not delaying other work, which I 
 would have to do if as all my build environments are broken by this change.

Note that I have not asked that you revert this change.  I just said
that I don't like it, because we should think strongly about the
precedent this sets.  The flags to gen-make.py and other build scripts
are *not* part of our backward compat guarantees, and we shouldn't
feel required to support them indefinitely.  (I noticed your response
doesn't address the questions I asked along these lines.)

-Hyrum


-- 

uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/


Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-14 Thread Greg Stein
I agree: we should not make changes to Subversion simply to support
some buildbots. That is the wrong direction.

The buildbots must compensate for changes in *our* codebase. If we add
new dependencies, then they must adjust. If we remove dependencies,
then they must adjust.

On Thu, Jun 14, 2012 at 3:26 AM, Hyrum K Wright
hyrum.wri...@wandisco.com wrote:
 On Thu, Jun 14, 2012 at 1:23 AM, Bert Huijben b...@qqmail.nl wrote:
 -Original Message-
 From: Hyrum K Wright [mailto:hyrum.wri...@wandisco.com]
 Sent: Thursday, June 14, 2012 12:33 AM
 To: Bert Huijben
 Cc: Michael Pilato; Subversion Development
 Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

 On Wed, Jun 13, 2012 at 9:45 PM, Bert Huijben b...@qqmail.nl wrote:
 
 
  -Original Message-
  From: C. Michael Pilato [mailto:cmpil...@collab.net]
  Sent: Wednesday, June 13, 2012 9:34 PM
  To: dev@subversion.apache.org
  Cc: Hyrum K Wright; comm...@subversion.apache.org
  Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py
 
  On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
   On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
   Author: rhuijben
   Date: Wed Jun 13 16:10:25 2012
   New Revision: 1349944
  
   URL: http://svn.apache.org/viewvc?rev=1349944view=rev
   Log:
   * gen-make.py
    Make the --with-neon= and --without-neon arguments on gen-
 make.py
  optional,
    just like how ./configure handles those. Windows doesn't use
 ./configure
  and
    this breaks tools that are friendly enough to provide hints.
  
   I don't like this change.  ./configure *doesn't* work this way: it
   errors when attempting to provide the now-defunct neon options.
 
  Perhaps Bert meant only that, in general, configure allows you to specify
  options that it doesn't itself understand (while printing a warning about
  this fact).
 
  I think most distributions at least share some build code between 
  versions.
 
  The buildbots only have a single set of dependencies for all the branches
 we are building. Only once we released 1.9.0 neon will be gone and before
 that we still have to support it (and even after that we still have to 
 support all
 the Subversion 1.0-1.7 clients that still use neon)

 So, what you're saying is that we have single slaves, with single sets
 of scripts building multiple branches.  And because of this, we can't
 change the dependencies or script arguments on trunk, for fear of
 breaking other branches.  That sounds a bit like the tail wagging the
 dog.

 What would happen if we added a flag on trunk that one of the slaves
 needed to build, but didn't exist (and hence error'd) on other
 branches?  Would we need to backport that flag as a no-op, simply to
 make the build slaves happen?  That's exactly what this commit does,
 only in the forward direction.

  Things get very easy if you just break the few remaining buildbots without
 caring about the consequences, but it doesn’t make Subversion a better
 product.

 Making decisions simply to please the bots doesn't make Subversion a
 better product, either.  They exist to help facilitate development.
 If there is a problem with the bots, then FIX THE BOTS, rather than
 introducing hacks in an attempt to please them.

 In this specific case that might mean a slightly more complex setup,
 which build each branch with a separate set of dependencies / scripts
 / inputs, since that's what end users will be doing anyway.

 Well, maybe you could help writing these scripts instead of breaking them 
 because they have to broken anyway in the future.

 I choose not to maintain the bots you choose to host.  The slave I
 host is currently offline, if/when it comes back on, I will address
 these issues which impact them.  I have helped fix the centos
 buildslave, which I have knowledge of and access to.

 Breaking them 2 minutes after telling you that breaking them will cause huge 
 problems that take much time to solve isn't helping things.

 You pointed out a deficiency in my prior patches, which I attempted to fix.

 Why do you prefer 2 of the 3 buildbots to be broken for at least the rest of 
 the hackathon?

 I don't.  Please don't put words in my mouth.

 Fixing the scripts for the bots, for SharpSvn, for the Slik distribution, 
 for CollabNet's build and several test scenarios takes time certainly 
 more time than the 5 minutes you provided.

 Those aren't my responsibility.  While I think we should be respectful
 of downstream users, people who choose to build directly against trunk
 on a regular basis have to know they are working against a moving
 target, and such breakage is possible, and even quasi-expected.

 And probably more than a few weeks if I'm not delaying other work, which I 
 would have to do if as all my build environments are broken by this change.

 Note that I have not asked that you revert this change.  I just said
 that I don't like it, because we should think strongly about the
 precedent this sets.  The flags to gen

RE: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-14 Thread Bert Huijben


 -Original Message-
 From: Greg Stein [mailto:gst...@gmail.com]
 Sent: Thursday, June 14, 2012 10:44 AM
 To: Bert Huijben; Hyrum K Wright
 Cc: dev@subversion.apache.org
 Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py
 
 I agree: we should not make changes to Subversion simply to support
 some buildbots. That is the wrong direction.
 
 The buildbots must compensate for changes in *our* codebase. If we add
 new dependencies, then they must adjust. If we remove dependencies,
 then they must adjust.

Ok, maybe the response might have been:

We should wait a few days before breaking every Windows Subversion
development environment to allow them to be fixed first.

I spent most of the night to get things fixed. (Last commit after 3 AM, and
the final fixes on the buildbot after I woke up)

But I don't understand why somebody just commits a change that he knows
break things for at least two other developers on the same table. (I had to
fix Markus development environment too, as he couldn't test the work he was
working on)

Most unix developers just assume that looking in a system library to find
things like apr, serf, neon etc. works on all systems.

Windows is by default not a development environment, so there is no standard
place to look for these things and to work stable we pass explicit
arguments. Just removing the arguments without notice is breaking things
directly without a way to recover using the normal routing..

Just like breaking you development svn for commits or reverts breaks your
entire workflow.


I explicitly told Hyrum to wait with this specific change, as this impacts
more people than all the other removal he did. And instead of providing some
time or discussing this change on list he just broke things for me and
others depending on these flags.

I don't care that this flag will be gone with 1.8, we can catch up well
before that. And I think for most my cases I did, but maybe others need some
time too.

This is not just about the buildbots, this is about workflows that are just
broken beyond repair without notice.


I would have liked to have some time to fix things before everything that
depends on it breaks down. I noted the problem as I assumed that he didn't
know about things relying on them and he explicitly used that information to
apply this as a change that 'he forgot about'.

This is just working against other developers. And this entire thread delays
things more.

Feel free to revert my patch that reintroduced the --XXX-neon flags in a
week or so.

Bert



Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-13 Thread Hyrum K Wright
On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
 Author: rhuijben
 Date: Wed Jun 13 16:10:25 2012
 New Revision: 1349944

 URL: http://svn.apache.org/viewvc?rev=1349944view=rev
 Log:
 * gen-make.py
  Make the --with-neon= and --without-neon arguments on gen-make.py optional,
  just like how ./configure handles those. Windows doesn't use ./configure and
  this breaks tools that are friendly enough to provide hints.

I don't like this change.  ./configure *doesn't* work this way: it
errors when attempting to provide the now-defunct neon options.

Neon is gone, dead, buried.  We shouldn't be special casing it in this
manner: people who rely on neon will have more work to do than just
updating their scripts, and we don't need to coddle them along the
way.

-Hyrum


 Modified:
    subversion/trunk/gen-make.py

 Modified: subversion/trunk/gen-make.py
 URL: 
 http://svn.apache.org/viewvc/subversion/trunk/gen-make.py?rev=1349944r1=1349943r2=1349944view=diff
 ==
 --- subversion/trunk/gen-make.py (original)
 +++ subversion/trunk/gen-make.py Wed Jun 13 16:10:25 2012
 @@ -257,6 +257,13 @@ if __name__ == '__main__':
                             'disable-shared',
                             'installed-libs=',
                             'vsnet-version=',
 +
 +                            # Keep distributions that help by adding a path
 +                            # working. On unix this would be filtered by
 +                            # configure, but on Windows gen-make.py is used
 +                            # directly.
 +                            'with-neon=',
 +                            'without-neon',
                             ])
     if len(args)  1:
       _usage_exit(Too many arguments)
 @@ -281,6 +288,9 @@ if __name__ == '__main__':
         if opt != '--debug':
           rest.add(opt, val)
       del prev_conf
 +    elif opt == '--with-neon' or opt == '--without-neon':
 +      # Provide a warning that we ignored these arguments
 +      print(Ignoring no longer supported argument '%s' % opt)
     else:
       rest.add(opt, val)






-- 

uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/


Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-13 Thread C. Michael Pilato
On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
 On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
 Author: rhuijben
 Date: Wed Jun 13 16:10:25 2012
 New Revision: 1349944

 URL: http://svn.apache.org/viewvc?rev=1349944view=rev
 Log:
 * gen-make.py
  Make the --with-neon= and --without-neon arguments on gen-make.py optional,
  just like how ./configure handles those. Windows doesn't use ./configure and
  this breaks tools that are friendly enough to provide hints.
 
 I don't like this change.  ./configure *doesn't* work this way: it
 errors when attempting to provide the now-defunct neon options.

Perhaps Bert meant only that, in general, configure allows you to specify
options that it doesn't itself understand (while printing a warning about
this fact).

-- 
C. Michael Pilato cmpil...@collab.net
CollabNet  www.collab.net  Enterprise Cloud Development



signature.asc
Description: OpenPGP digital signature


Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-13 Thread Daniel Shahaf
C. Michael Pilato wrote on Wed, Jun 13, 2012 at 21:33:53 +0200:
 On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
  On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
  Author: rhuijben
  Date: Wed Jun 13 16:10:25 2012
  New Revision: 1349944
 
  URL: http://svn.apache.org/viewvc?rev=1349944view=rev
  Log:
  * gen-make.py
   Make the --with-neon= and --without-neon arguments on gen-make.py 
  optional,
   just like how ./configure handles those. Windows doesn't use ./configure 
  and
   this breaks tools that are friendly enough to provide hints.
  
  I don't like this change.  ./configure *doesn't* work this way: it
  errors when attempting to provide the now-defunct neon options.
 
 Perhaps Bert meant only that, in general, configure allows you to specify
 options that it doesn't itself understand (while printing a warning about
 this fact).

That's only because we pass such options to APR... and I presume APR's
configure would error on option that _it_ doesn't recognize?


RE: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-13 Thread Bert Huijben


 -Original Message-
 From: C. Michael Pilato [mailto:cmpil...@collab.net]
 Sent: Wednesday, June 13, 2012 9:34 PM
 To: dev@subversion.apache.org
 Cc: Hyrum K Wright; comm...@subversion.apache.org
 Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py
 
 On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
  On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
  Author: rhuijben
  Date: Wed Jun 13 16:10:25 2012
  New Revision: 1349944
 
  URL: http://svn.apache.org/viewvc?rev=1349944view=rev
  Log:
  * gen-make.py
   Make the --with-neon= and --without-neon arguments on gen-make.py
 optional,
   just like how ./configure handles those. Windows doesn't use ./configure
 and
   this breaks tools that are friendly enough to provide hints.
 
  I don't like this change.  ./configure *doesn't* work this way: it
  errors when attempting to provide the now-defunct neon options.
 
 Perhaps Bert meant only that, in general, configure allows you to specify
 options that it doesn't itself understand (while printing a warning about
 this fact).

I think most distributions at least share some build code between versions.

The buildbots only have a single set of dependencies for all the branches we 
are building. Only once we released 1.9.0 neon will be gone and before that we 
still have to support it (and even after that we still have to support all the 
Subversion 1.0-1.7 clients that still use neon)

Things get very easy if you just break the few remaining buildbots without 
caring about the consequences, but it doesn’t make Subversion a better product.

Bert



Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-13 Thread Hyrum K Wright
On Wed, Jun 13, 2012 at 9:45 PM, Bert Huijben b...@qqmail.nl wrote:


 -Original Message-
 From: C. Michael Pilato [mailto:cmpil...@collab.net]
 Sent: Wednesday, June 13, 2012 9:34 PM
 To: dev@subversion.apache.org
 Cc: Hyrum K Wright; comm...@subversion.apache.org
 Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py

 On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
  On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
  Author: rhuijben
  Date: Wed Jun 13 16:10:25 2012
  New Revision: 1349944
 
  URL: http://svn.apache.org/viewvc?rev=1349944view=rev
  Log:
  * gen-make.py
   Make the --with-neon= and --without-neon arguments on gen-make.py
 optional,
   just like how ./configure handles those. Windows doesn't use ./configure
 and
   this breaks tools that are friendly enough to provide hints.
 
  I don't like this change.  ./configure *doesn't* work this way: it
  errors when attempting to provide the now-defunct neon options.

 Perhaps Bert meant only that, in general, configure allows you to specify
 options that it doesn't itself understand (while printing a warning about
 this fact).

 I think most distributions at least share some build code between versions.

 The buildbots only have a single set of dependencies for all the branches we 
 are building. Only once we released 1.9.0 neon will be gone and before that 
 we still have to support it (and even after that we still have to support all 
 the Subversion 1.0-1.7 clients that still use neon)

So, what you're saying is that we have single slaves, with single sets
of scripts building multiple branches.  And because of this, we can't
change the dependencies or script arguments on trunk, for fear of
breaking other branches.  That sounds a bit like the tail wagging the
dog.

What would happen if we added a flag on trunk that one of the slaves
needed to build, but didn't exist (and hence error'd) on other
branches?  Would we need to backport that flag as a no-op, simply to
make the build slaves happen?  That's exactly what this commit does,
only in the forward direction.

 Things get very easy if you just break the few remaining buildbots without 
 caring about the consequences, but it doesn’t make Subversion a better 
 product.

Making decisions simply to please the bots doesn't make Subversion a
better product, either.  They exist to help facilitate development.
If there is a problem with the bots, then FIX THE BOTS, rather than
introducing hacks in an attempt to please them.

In this specific case that might mean a slightly more complex setup,
which build each branch with a separate set of dependencies / scripts
/ inputs, since that's what end users will be doing anyway.

-Hyrum


-- 

uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/


RE: svn commit: r1349944 - /subversion/trunk/gen-make.py

2012-06-13 Thread Bert Huijben


 -Original Message-
 From: Hyrum K Wright [mailto:hyrum.wri...@wandisco.com]
 Sent: Thursday, June 14, 2012 12:33 AM
 To: Bert Huijben
 Cc: Michael Pilato; Subversion Development
 Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py
 
 On Wed, Jun 13, 2012 at 9:45 PM, Bert Huijben b...@qqmail.nl wrote:
 
 
  -Original Message-
  From: C. Michael Pilato [mailto:cmpil...@collab.net]
  Sent: Wednesday, June 13, 2012 9:34 PM
  To: dev@subversion.apache.org
  Cc: Hyrum K Wright; comm...@subversion.apache.org
  Subject: Re: svn commit: r1349944 - /subversion/trunk/gen-make.py
 
  On 06/13/2012 07:36 PM, Hyrum K Wright wrote:
   On Wed, Jun 13, 2012 at 6:10 PM,  rhuij...@apache.org wrote:
   Author: rhuijben
   Date: Wed Jun 13 16:10:25 2012
   New Revision: 1349944
  
   URL: http://svn.apache.org/viewvc?rev=1349944view=rev
   Log:
   * gen-make.py
Make the --with-neon= and --without-neon arguments on gen-
 make.py
  optional,
just like how ./configure handles those. Windows doesn't use
 ./configure
  and
this breaks tools that are friendly enough to provide hints.
  
   I don't like this change.  ./configure *doesn't* work this way: it
   errors when attempting to provide the now-defunct neon options.
 
  Perhaps Bert meant only that, in general, configure allows you to specify
  options that it doesn't itself understand (while printing a warning about
  this fact).
 
  I think most distributions at least share some build code between versions.
 
  The buildbots only have a single set of dependencies for all the branches
 we are building. Only once we released 1.9.0 neon will be gone and before
 that we still have to support it (and even after that we still have to 
 support all
 the Subversion 1.0-1.7 clients that still use neon)
 
 So, what you're saying is that we have single slaves, with single sets
 of scripts building multiple branches.  And because of this, we can't
 change the dependencies or script arguments on trunk, for fear of
 breaking other branches.  That sounds a bit like the tail wagging the
 dog.
 
 What would happen if we added a flag on trunk that one of the slaves
 needed to build, but didn't exist (and hence error'd) on other
 branches?  Would we need to backport that flag as a no-op, simply to
 make the build slaves happen?  That's exactly what this commit does,
 only in the forward direction.
 
  Things get very easy if you just break the few remaining buildbots without
 caring about the consequences, but it doesn’t make Subversion a better
 product.
 
 Making decisions simply to please the bots doesn't make Subversion a
 better product, either.  They exist to help facilitate development.
 If there is a problem with the bots, then FIX THE BOTS, rather than
 introducing hacks in an attempt to please them.
 
 In this specific case that might mean a slightly more complex setup,
 which build each branch with a separate set of dependencies / scripts
 / inputs, since that's what end users will be doing anyway.

Well, maybe you could help writing these scripts instead of breaking them 
because they have to broken anyway in the future.

Breaking them 2 minutes after telling you that breaking them will cause huge 
problems that take much time to solve isn't helping things.

Why do you prefer 2 of the 3 buildbots to be broken for at least the rest of 
the hackathon?

Fixing the scripts for the bots, for SharpSvn, for the Slik distribution, for 
CollabNet's build and several test scenarios takes time certainly more time 
than the 5 minutes you provided. 

And probably more than a few weeks if I'm not delaying other work, which I 
would have to do if as all my build environments are broken by this change.

Bert